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.
9 @chapter LM32 Dependent Features
13 @node Machine Dependencies
14 @chapter LMĀ£" Dependent Features
19 * LM32 Options:: Options
20 * LM32 Syntax:: Syntax
21 * LM32 Opcodes:: Opcodes
26 @cindex LM32 options (none)
27 @cindex options for LM32 (none)
31 @cindex @code{-mmultiply-enabled} command line option, LM32
32 @item -mmultiply-enabled
33 Enable multiply instructions.
35 @cindex @code{-mdivide-enabled} command line option, LM32
36 @item -mdivide-enabled
37 Enable divide instructions.
39 @cindex @code{-mbarrel-shift-enabled} command line option, LM32
40 @item -mbarrel-shift-enabled
41 Enable barrel-shift instructions.
43 @cindex @code{-msign-extend-enabled} command line option, LM32
44 @item -msign-extend-enabled
45 Enable sign extend instructions.
47 @cindex @code{-muser-enabled} command line option, LM32
49 Enable user defined instructions.
51 @cindex @code{-micache-enabled} command line option, LM32
52 @item -micache-enabled
53 Enable instruction cache related CSRs.
55 @cindex @code{-mdcache-enabled} command line option, LM32
56 @item -mdcache-enabled
57 Enable data cache related CSRs.
59 @cindex @code{-mbreak-enabled} command line option, LM32
61 Enable break instructions.
63 @cindex @code{-mall-enabled} command line option, LM32
65 Enable all instructions and CSRs.
73 * LM32-Regs:: Register Names
74 * LM32-Modifiers:: Relocatable Expression Modifiers
78 @subsection Register Names
80 @cindex LM32 register names
81 @cindex register names, LM32
83 LM32 has 32 x 32-bit general purpose registers @samp{r0},
84 @samp{r1}, ... @samp{r31}.
86 The following aliases are defined: @samp{gp} - @samp{r26},
87 @samp{fp} - @samp{r27}, @samp{sp} - @samp{r28},
88 @samp{ra} - @samp{r29}, @samp{ea} - @samp{r30},
89 @samp{ba} - @samp{r31}.
91 LM32 has the following Control and Status Registers (CSRs).
101 Instruction cache control.
109 Exception base address.
113 Debug exception base address.
137 @subsection Relocatable Expression Modifiers
139 @cindex LM32 modifiers
142 The assembler supports several modifiers when using relocatable addresses
143 in LM32 instruction operands. The general syntax is the following:
146 modifier(relocatable-expression)
150 @cindex symbol modifiers
154 This modifier allows you to use bits 0 through 15 of
155 an address expression as 16 bit relocatable expression.
159 This modifier allows you to use bits 16 through 23 of an address expression
160 as 16 bit relocatable expression.
165 ori r4, r4, lo(sym+10)
166 orhi r4, r4, hi(sym+10)
171 This modified creates a 16-bit relocatable expression that is
172 the offset of the symbol from the global pointer.
180 This modifier places a symbol in the GOT and creates a 16-bit
181 relocatable expression that is the offset into the GOT of this
190 This modifier allows you to use the bits 0 through 15 of an
191 address which is an offset from the GOT.
195 This modifier allows you to use the bits 16 through 31 of an
196 address which is an offset from the GOT.
199 orhi r4, r4, gotoffhi16(lsym)
200 addi r4, r4, gotofflo16(lsym)
208 @cindex LM32 opcode summary
209 @cindex opcode summary, LM32
210 @cindex mnemonics, LM32
211 @cindex instruction summary, LM32
212 For detailed information on the LM32 machine instruction set, see
213 @url{http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/}.
215 @code{@value{AS}} implements all the standard LM32 opcodes.