OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gas/] [doc/] [c-lm32.texi] - Blame information for rev 179

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 179 jshamlet
@c Copyright 2008, 2011
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
 
6
@ifset GENERIC
7
@page
8
@node LM32-Dependent
9
@chapter LM32 Dependent Features
10
@end ifset
11
 
12
@ifclear GENERIC
13
@node Machine Dependencies
14
@chapter LM£" Dependent Features
15
@end ifclear
16
 
17
@cindex LM32 support
18
@menu
19
* LM32 Options::              Options
20
* LM32 Syntax::               Syntax
21
* LM32 Opcodes::              Opcodes
22
@end menu
23
 
24
@node LM32 Options
25
@section Options
26
@cindex LM32 options (none)
27
@cindex options for LM32 (none)
28
 
29
@table @code
30
 
31
@cindex @code{-mmultiply-enabled} command line option, LM32
32
@item -mmultiply-enabled
33
Enable multiply instructions.
34
 
35
@cindex @code{-mdivide-enabled} command line option, LM32
36
@item -mdivide-enabled
37
Enable divide instructions.
38
 
39
@cindex @code{-mbarrel-shift-enabled} command line option, LM32
40
@item -mbarrel-shift-enabled
41
Enable barrel-shift instructions.
42
 
43
@cindex @code{-msign-extend-enabled} command line option, LM32
44
@item -msign-extend-enabled
45
Enable sign extend instructions.
46
 
47
@cindex @code{-muser-enabled} command line option, LM32
48
@item -muser-enabled
49
Enable user defined instructions.
50
 
51
@cindex @code{-micache-enabled} command line option, LM32
52
@item -micache-enabled
53
Enable instruction cache related CSRs.
54
 
55
@cindex @code{-mdcache-enabled} command line option, LM32
56
@item -mdcache-enabled
57
Enable data cache related CSRs.
58
 
59
@cindex @code{-mbreak-enabled} command line option, LM32
60
@item -mbreak-enabled
61
Enable break instructions.
62
 
63
@cindex @code{-mall-enabled} command line option, LM32
64
@item -mall-enabled
65
Enable all instructions and CSRs.
66
 
67
@end table
68
 
69
 
70
@node LM32 Syntax
71
@section Syntax
72
@menu
73
* LM32-Regs::                 Register Names
74
* LM32-Modifiers::            Relocatable Expression Modifiers
75
* LM32-Chars::                Special Characters
76
@end menu
77
 
78
@node LM32-Regs
79
@subsection Register Names
80
 
81
@cindex LM32 register names
82
@cindex register names, LM32
83
 
84
LM32 has 32 x 32-bit general purpose registers @samp{r0},
85
@samp{r1}, ... @samp{r31}.
86
 
87
The following aliases are defined: @samp{gp} - @samp{r26},
88
@samp{fp} - @samp{r27}, @samp{sp} - @samp{r28},
89
@samp{ra} - @samp{r29}, @samp{ea} - @samp{r30},
90
@samp{ba} - @samp{r31}.
91
 
92
LM32 has the following Control and Status Registers (CSRs).
93
 
94
@table @code
95
@item IE
96
Interrupt enable.
97
@item IM
98
Interrupt mask.
99
@item IP
100
Interrupt pending.
101
@item ICC
102
Instruction cache control.
103
@item DCC
104
Data cache control.
105
@item CC
106
Cycle counter.
107
@item CFG
108
Configuration.
109
@item EBA
110
Exception base address.
111
@item DC
112
Debug control.
113
@item DEBA
114
Debug exception base address.
115
@item JTX
116
JTAG transmit.
117
@item JRX
118
JTAG receive.
119
@item BP0
120
Breakpoint 0.
121
@item BP1
122
Breakpoint 1.
123
@item BP2
124
Breakpoint 2.
125
@item BP3
126
Breakpoint 3.
127
@item WP0
128
Watchpoint 0.
129
@item WP1
130
Watchpoint 1.
131
@item WP2
132
Watchpoint 2.
133
@item WP3
134
Watchpoint 3.
135
@end table
136
 
137
@node LM32-Modifiers
138
@subsection Relocatable Expression Modifiers
139
 
140
@cindex LM32 modifiers
141
@cindex syntax, LM32
142
 
143
The assembler supports several modifiers when using relocatable addresses
144
in LM32 instruction operands.  The general syntax is the following:
145
 
146
@smallexample
147
modifier(relocatable-expression)
148
@end smallexample
149
 
150
@table @code
151
@cindex symbol modifiers
152
 
153
@item lo
154
 
155
This modifier allows you to use bits 0 through 15 of
156
an address expression as 16 bit relocatable expression.
157
 
158
@item hi
159
 
160
This modifier allows you to use bits 16 through 23 of an address expression
161
as 16 bit relocatable expression.
162
 
163
For example
164
 
165
@smallexample
166
ori  r4, r4, lo(sym+10)
167
orhi r4, r4, hi(sym+10)
168
@end smallexample
169
 
170
@item gp
171
 
172
This modified creates a 16-bit relocatable expression that is
173
the offset of the symbol from the global pointer.
174
 
175
@smallexample
176
mva r4, gp(sym)
177
@end smallexample
178
 
179
@item got
180
 
181
This modifier places a symbol in the GOT and creates a 16-bit
182
relocatable expression that is the offset into the GOT of this
183
symbol.
184
 
185
@smallexample
186
lw r4, (gp+got(sym))
187
@end smallexample
188
 
189
@item gotofflo16
190
 
191
This modifier allows you to use the bits 0 through 15 of an
192
address which is an offset from the GOT.
193
 
194
@item gotoffhi16
195
 
196
This modifier allows you to use the bits 16 through 31 of an
197
address which is an offset from the GOT.
198
 
199
@smallexample
200
orhi r4, r4, gotoffhi16(lsym)
201
addi r4, r4, gotofflo16(lsym)
202
@end smallexample
203
 
204
@end table
205
 
206
@node LM32-Chars
207
@subsection Special Characters
208
 
209
@cindex line comment character, LM32
210
@cindex LM32 line comment character
211
The presence of a @samp{#} on a line indicates the start of a comment
212
that extends to the end of the current line.  Note that if a line
213
starts with a @samp{#} character then it can also be a logical line
214
number directive (@pxref{Comments}) or a preprocessor
215
control command (@pxref{Preprocessing}).
216
 
217
@cindex line separator, LM32
218
@cindex statement separator, LM32
219
@cindex LM32 line separator
220
A semicolon (@samp{;}) can be used to separate multiple statements on
221
the same line.
222
 
223
@node LM32 Opcodes
224
@section Opcodes
225
 
226
@cindex LM32 opcode summary
227
@cindex opcode summary, LM32
228
@cindex mnemonics, LM32
229
@cindex instruction summary, LM32
230
For detailed information on the LM32 machine instruction set, see
231
@url{http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/}.
232
 
233
@code{@value{AS}} implements all the standard LM32 opcodes.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.