~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/gas/doc/c-cr16.texi

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@c Copyright 2007-2013 Free Software Foundation, Inc.
 
2
@c This is part of the GAS manual.
 
3
@c For copying conditions, see the file as.texinfo.
 
4
 
 
5
@ifset GENERIC
 
6
@page
 
7
@node CR16-Dependent
 
8
@chapter CR16 Dependent Features
 
9
@end ifset
 
10
@ifclear GENERIC
 
11
@node Machine Dependencies
 
12
@chapter CR16 Dependent Features
 
13
@end ifclear
 
14
 
 
15
@cindex CR16 support
 
16
@menu
 
17
* CR16 Operand Qualifiers::     CR16 Machine Operand Qualifiers
 
18
* CR16 Syntax::                 Syntax for the CR16
 
19
@end menu
 
20
 
 
21
@node CR16 Operand Qualifiers
 
22
@section CR16 Operand Qualifiers
 
23
@cindex CR16 Operand Qualifiers
 
24
 
 
25
The National Semiconductor CR16 target of @code{@value{AS}} has a few machine dependent operand qualifiers.
 
26
 
 
27
Operand expression type qualifier is an optional field in the instruction operand, to determines the type of the expression field of an operand. The @code{@@} is required. CR16 architecture uses one of the following expression qualifiers:
 
28
 
 
29
@table @code
 
30
@item  s
 
31
- @code{Specifies expression operand type as small}
 
32
@item  m
 
33
- @code{Specifies expression operand type as medium}
 
34
@item  l
 
35
- @code{Specifies expression operand type as large}
 
36
@item  c
 
37
- @code{Specifies the CR16 Assembler generates a relocation entry for the operand, where pc has implied bit, the expression is adjusted accordingly. The linker uses the relocation entry to update the operand address at link time.}
 
38
@item  got/GOT
 
39
- @code{Specifies the CR16 Assembler generates a relocation entry for the operand, offset from Global Offset Table. The linker uses this relocation entry to update the operand address at link time}
 
40
@item  cgot/cGOT
 
41
- @code{Specifies the CompactRISC Assembler generates a relocation entry for the operand, where pc has implied bit, the expression is adjusted accordingly. The linker uses the relocation entry to update the operand address at link time.}
 
42
@end table
 
43
 
 
44
CR16 target operand qualifiers and its size (in bits):
 
45
 
 
46
@table @samp
 
47
@item Immediate Operand: s
 
48
4 bits.
 
49
 
 
50
@item Immediate Operand: m
 
51
16 bits, for movb and movw instructions.
 
52
 
 
53
@item Immediate Operand: m
 
54
20 bits, movd instructions.
 
55
 
 
56
@item Immediate Operand: l
 
57
32 bits.
 
58
 
 
59
@item Absolute Operand: s
 
60
Illegal specifier for this operand.
 
61
 
 
62
@item Absolute Operand: m
 
63
20 bits, movd instructions.
 
64
 
 
65
@item Displacement Operand: s
 
66
8 bits.
 
67
 
 
68
@item Displacement Operand: m
 
69
16 bits.
 
70
 
 
71
@item Displacement Operand: l
 
72
24 bits.
 
73
 
 
74
@end table
 
75
 
 
76
For example:
 
77
@example
 
78
1   @code{movw $_myfun@@c,r1}
 
79
 
 
80
    This loads the address of _myfun, shifted right by 1, into r1.
 
81
 
 
82
2   @code{movd $_myfun@@c,(r2,r1)}
 
83
 
 
84
    This loads the address of _myfun, shifted right by 1, into register-pair r2-r1.
 
85
 
 
86
3   @code{_myfun_ptr:}
 
87
    @code{.long _myfun@@c}
 
88
    @code{loadd _myfun_ptr, (r1,r0)}
 
89
    @code{jal (r1,r0)}
 
90
 
 
91
    This .long directive, the address of _myfunc, shifted right by 1 at link time.
 
92
 
 
93
4   @code{loadd  _data1@@GOT(r12), (r1,r0)}
 
94
 
 
95
    This loads the address of _data1, into global offset table (ie GOT) and its offset value from GOT loads into register-pair r2-r1.
 
96
 
 
97
5   @code{loadd  _myfunc@@cGOT(r12), (r1,r0)}
 
98
 
 
99
    This loads the address of _myfun, shifted right by 1, into global offset table (ie GOT) and its offset value from GOT loads into register-pair r1-r0.
 
100
@end example
 
101
 
 
102
@node CR16 Syntax
 
103
@section CR16 Syntax
 
104
@menu
 
105
* CR16-Chars::                Special Characters
 
106
@end menu
 
107
 
 
108
@node CR16-Chars
 
109
@subsection Special Characters
 
110
 
 
111
@cindex line comment character, CR16
 
112
@cindex CR16 line comment character
 
113
The presence of a @samp{#} on a line indicates the start of a comment
 
114
that extends to the end of the current line.  If the @samp{#} appears
 
115
as the first character of a line, the whole line is treated as a
 
116
comment, but in this case the line can also be a logical line number
 
117
directive (@pxref{Comments}) or a preprocessor control command
 
118
(@pxref{Preprocessing}).
 
119
 
 
120
@cindex line separator, CR16
 
121
@cindex statement separator, CR16
 
122
@cindex CR16 line separator
 
123
The @samp{;} character can be used to separate statements on the same
 
124
line.