Add support for v850E2 and v850E2V3
[deliverable/binutils-gdb.git] / gas / doc / c-bfin.texi
CommitLineData
aa820537 1@c Copyright 2005, 2006, 2009
07c1b327
CM
2@c Free Software Foundation, Inc.
3@c This is part of the GAS manual.
4@c For copying conditions, see the file as.texinfo.
5@ifset GENERIC
6@page
3b4e1885 7@node Blackfin-Dependent
07c1b327
CM
8@chapter Blackfin Dependent Features
9@end ifset
10@ifclear GENERIC
11@node Machine Dependencies
12@chapter Blackfin Dependent Features
13@end ifclear
14
15@cindex Blackfin support
16@menu
6306cd85
BS
17* Blackfin Options:: Blackfin Options
18* Blackfin Syntax:: Blackfin Syntax
19* Blackfin Directives:: Blackfin Directives
07c1b327
CM
20@end menu
21
6306cd85
BS
22@node Blackfin Options
23@section Options
24@cindex Blackfin options (none)
25@cindex options for Blackfin (none)
26
27@table @code
28
29@cindex @code{-mcpu=} command line option, Blackfin
30@item -mcpu=@var{processor}@r{[}-@var{sirevision}@r{]}
31This option specifies the target processor. The optional @var{sirevision}
32is not used in assembler. It's here such that GCC can easily pass down its
33@code{-mcpu=} option. The assembler will issue an
34error message if an attempt is made to assemble an instruction which
35will not execute on the target processor. The following processor names are
36recognized:
a23c851a
MF
37@code{bf504},
38@code{bf506},
3b4e1885
JZ
39@code{bf512},
40@code{bf514},
41@code{bf516},
42@code{bf518},
6306cd85
BS
43@code{bf522},
44@code{bf523},
45@code{bf524},
46@code{bf525},
47@code{bf526},
48@code{bf527},
49@code{bf531},
50@code{bf532},
51@code{bf533},
52@code{bf534},
53@code{bf535} (not implemented yet),
54@code{bf536},
55@code{bf537},
56@code{bf538},
57@code{bf539},
58@code{bf542},
59@code{bf542m},
60@code{bf544},
61@code{bf544m},
62@code{bf547},
63@code{bf547m},
64@code{bf548},
65@code{bf548m},
66@code{bf549},
67@code{bf549m},
68and
69@code{bf561}.
70
9982501a
JZ
71@cindex @code{-mfdpic} command line option, Blackfin
72@item -mfdpic
73Assemble for the FDPIC ABI.
74
75@cindex @code{-mno-fdpic} command line option, Blackfin
76@cindex @code{-mnopic} command line option, Blackfin
1f9bb1ca
AS
77@item -mno-fdpic
78@itemx -mnopic
9982501a 79Disable -mfdpic.
6306cd85
BS
80@end table
81
82@node Blackfin Syntax
07c1b327 83@section Syntax
6306cd85
BS
84@cindex Blackfin syntax
85@cindex syntax, Blackfin
07c1b327
CM
86
87@table @code
88@item Special Characters
89Assembler input is free format and may appear anywhere on the line.
90One instruction may extend across multiple lines or more than one
91instruction may appear on the same line. White space (space, tab,
92comments or newline) may appear anywhere between tokens. A token must
93not have embedded spaces. Tokens include numbers, register names,
94keywords, user identifiers, and also some multicharacter special
95symbols like "+=", "/*" or "||".
96
97@item Instruction Delimiting
98A semicolon must terminate every instruction. Sometimes a complete
99instruction will consist of more than one operation. There are two
100cases where this occurs. The first is when two general operations
101are combined. Normally a comma separates the different parts, as in
102
103@smallexample
104a0= r3.h * r2.l, a1 = r3.l * r2.h ;
105@end smallexample
106
107The second case occurs when a general instruction is combined with one
108or two memory references for joint issue. The latter portions are
109set off by a "||" token.
110
111@smallexample
112a0 = r3.h * r2.l || r1 = [p3++] || r4 = [i2++];
113@end smallexample
114
115@item Register Names
116
117The assembler treats register names and instruction keywords in a case
118insensitive manner. User identifiers are case sensitive. Thus, R3.l,
119R3.L, r3.l and r3.L are all equivalent input to the assembler.
120
121Register names are reserved and may not be used as program identifiers.
122
123Some operations (such as "Move Register") require a register pair.
124Register pairs are always data registers and are denoted using a colon,
125eg., R3:2. The larger number must be written firsts. Note that the
126hardware only supports odd-even pairs, eg., R7:6, R5:4, R3:2, and R1:0.
127
128Some instructions (such as --SP (Push Multiple)) require a group of
129adjacent registers. Adjacent registers are denoted in the syntax by
130the range enclosed in parentheses and separated by a colon, eg., (R7:3).
131Again, the larger number appears first.
132
133Portions of a particular register may be individually specified. This
134is written with a dot (".") following the register name and then a
135letter denoting the desired portion. For 32-bit registers, ".H"
136denotes the most significant ("High") portion. ".L" denotes the
137least-significant portion. The subdivisions of the 40-bit registers
138are described later.
139
140@item Accumulators
141The set of 40-bit registers A1 and A0 that normally contain data that
142is being manipulated. Each accumulator can be accessed in four ways.
143
144@table @code
145@item one 40-bit register
146The register will be referred to as A1 or A0.
147@item one 32-bit register
148The registers are designated as A1.W or A0.W.
149@item two 16-bit registers
150The registers are designated as A1.H, A1.L, A0.H or A0.L.
151@item one 8-bit register
152The registers are designated as A1.X or A0.X for the bits that
153extend beyond bit 31.
154@end table
155
156@item Data Registers
157The set of 32-bit registers (R0, R1, R2, R3, R4, R5, R6 and R7) that
158normally contain data for manipulation. These are abbreviated as
159D-register or Dreg. Data registers can be accessed as 32-bit registers
160or as two independent 16-bit registers. The least significant 16 bits
b45619c0 161of each register is called the "low" half and is designated with ".L"
07c1b327 162following the register name. The most significant 16 bits are called
b45619c0 163the "high" half and is designated with ".H" following the name.
07c1b327
CM
164
165@smallexample
166 R7.L, r2.h, r4.L, R0.H
167@end smallexample
168
169@item Pointer Registers
170The set of 32-bit registers (P0, P1, P2, P3, P4, P5, SP and FP) that
171normally contain byte addresses of data structures. These are
172abbreviated as P-register or Preg.
173
174@smallexample
175p2, p5, fp, sp
176@end smallexample
177
178@item Stack Pointer SP
179The stack pointer contains the 32-bit address of the last occupied
180byte location in the stack. The stack grows by decrementing the
181stack pointer.
182
183@item Frame Pointer FP
184The frame pointer contains the 32-bit address of the previous frame
185pointer in the stack. It is located at the top of a frame.
186
187@item Loop Top
188LT0 and LT1. These registers contain the 32-bit address of the top of
189a zero overhead loop.
190
191@item Loop Count
192LC0 and LC1. These registers contain the 32-bit counter of the zero
193overhead loop executions.
194
195@item Loop Bottom
196LB0 and LB1. These registers contain the 32-bit address of the bottom
197of a zero overhead loop.
198
199@item Index Registers
200The set of 32-bit registers (I0, I1, I2, I3) that normally contain byte
201addresses of data structures. Abbreviated I-register or Ireg.
202
203@item Modify Registers
204The set of 32-bit registers (M0, M1, M2, M3) that normally contain
205offset values that are added and subracted to one of the index
206registers. Abbreviated as Mreg.
207
208@item Length Registers
209The set of 32-bit registers (L0, L1, L2, L3) that normally contain the
210length in bytes of the circular buffer. Abbreviated as Lreg. Clear
211the Lreg to disable circular addressing for the corresponding Ireg.
212
213@item Base Registers
214The set of 32-bit registers (B0, B1, B2, B3) that normally contain the
215base address in bytes of the circular buffer. Abbreviated as Breg.
216
217@item Floating Point
218The Blackfin family has no hardware floating point but the .float
219directive generates ieee floating point numbers for use with software
220floating point libraries.
221
222@item Blackfin Opcodes
223For detailed information on the Blackfin machine instruction set, see
224the Blackfin(r) Processor Instruction Set Reference.
225
226@end table
227
6306cd85 228@node Blackfin Directives
07c1b327 229@section Directives
6306cd85
BS
230@cindex Blackfin directives
231@cindex directives, Blackfin
07c1b327
CM
232
233The following directives are provided for compatibility with the VDSP assembler.
234
235@table @code
236@item .byte2
237Initializes a four byte data object.
238@item .byte4
239Initializes a two byte data object.
240@item .db
241TBD
242@item .dd
243TBD
244@item .dw
245TBD
246@item .var
247Define and initialize a 32 bit data object.
248@end table
This page took 0.195352 seconds and 4 git commands to generate.