Rev 5191 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5191 | Rev 6324 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | /* Definitions for opcode table for the sparc. |
1 | /* Definitions for opcode table for the sparc. |
2 | Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002, |
- | |
3 | 2003, 2005, 2010, 2011 Free Software Foundation, Inc. |
2 | Copyright (C) 1989-2015 Free Software Foundation, Inc. |
Line 4... | Line 3... | ||
4 | 3 | ||
5 | This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and |
4 | This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and |
Line 6... | Line 5... | ||
6 | the GNU Binutils. |
5 | the GNU Binutils. |
Line 99... | Line 98... | ||
99 | unsigned long lose; /* Bits that must not be set. */ |
98 | unsigned long lose; /* Bits that must not be set. */ |
100 | const char *args; |
99 | const char *args; |
101 | /* This was called "delayed" in versions before the flags. */ |
100 | /* This was called "delayed" in versions before the flags. */ |
102 | unsigned int flags; |
101 | unsigned int flags; |
103 | unsigned int hwcaps; |
102 | unsigned int hwcaps; |
- | 103 | unsigned int hwcaps2; |
|
104 | short architecture; /* Bitmask of sparc_opcode_arch_val's. */ |
104 | short architecture; /* Bitmask of sparc_opcode_arch_val's. */ |
105 | } sparc_opcode; |
105 | } sparc_opcode; |
Line 106... | Line 106... | ||
106 | 106 | ||
107 | /* FIXME: Add F_ANACHRONISTIC flag for v9. */ |
107 | /* FIXME: Add F_ANACHRONISTIC flag for v9. */ |
Line 114... | Line 114... | ||
114 | #define F_FBR 0x00000040 /* Floating point branch. */ |
114 | #define F_FBR 0x00000040 /* Floating point branch. */ |
115 | #define F_PREFERRED 0x00000080 /* A preferred alias. */ |
115 | #define F_PREFERRED 0x00000080 /* A preferred alias. */ |
Line 116... | Line 116... | ||
116 | 116 | ||
Line 117... | Line 117... | ||
117 | #define F_PREF_ALIAS (F_ALIAS|F_PREFERRED) |
117 | #define F_PREF_ALIAS (F_ALIAS|F_PREFERRED) |
- | 118 | ||
118 | 119 | /* These must match the ELF_SPARC_HWCAP_* and ELF_SPARC_HWCAP2_* |
|
119 | /* These must match the HWCAP_* values precisely. */ |
120 | values precisely. See include/elf/sparc.h. */ |
120 | #define HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */ |
121 | #define HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */ |
121 | #define HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */ |
122 | #define HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */ |
122 | #define HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */ |
123 | #define HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */ |
Line 147... | Line 148... | ||
147 | #define HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */ |
148 | #define HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */ |
148 | #define HWCAP_PAUSE 0x08000000 /* Pause insn */ |
149 | #define HWCAP_PAUSE 0x08000000 /* Pause insn */ |
149 | #define HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */ |
150 | #define HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */ |
150 | #define HWCAP_CRC32C 0x20000000 /* CRC32C insn */ |
151 | #define HWCAP_CRC32C 0x20000000 /* CRC32C insn */ |
Line -... | Line 152... | ||
- | 152 | ||
- | 153 | #define HWCAP2_FJATHPLUS 0x00000001 /* Fujitsu Athena+ */ |
|
- | 154 | #define HWCAP2_VIS3B 0x00000002 /* Subset of VIS3 present on sparc64 X+. */ |
|
- | 155 | #define HWCAP2_ADP 0x00000004 /* Application Data Protection */ |
|
- | 156 | #define HWCAP2_SPARC5 0x00000008 /* The 29 new fp and sub instructions */ |
|
- | 157 | #define HWCAP2_MWAIT 0x00000010 /* mwait instruction and load/monitor ASIs */ |
|
- | 158 | #define HWCAP2_XMPMUL 0x00000020 /* XOR multiple precision multiply */ |
|
- | 159 | #define HWCAP2_XMONT 0x00000040 /* XOR Montgomery mult/sqr instructions */ |
|
- | 160 | #define HWCAP2_NSEC \ |
|
- | 161 | 0x00000080 /* pause insn with support for nsec timings */ |
|
- | 162 | #define HWCAP2_FJATHHPC 0x00001000 /* Fujitsu HPC instrs */ |
|
- | 163 | #define HWCAP2_FJDES 0x00002000 /* Fujitsu DES instrs */ |
|
- | 164 | #define HWCAP2_FJAES 0x00010000 /* Fujitsu AES instrs */ |
|
- | 165 | ||
151 | 166 | ||
152 | /* All sparc opcodes are 32 bits, except for the `set' instruction (really a |
167 | /* All sparc opcodes are 32 bits, except for the `set' instruction (really a |
Line 153... | Line 168... | ||
153 | macro), which is 64 bits. It is handled as a special case. |
168 | macro), which is 64 bits. It is handled as a special case. |
154 | 169 | ||
Line 172... | Line 187... | ||
172 | 4 frs3 floating point register. |
187 | 4 frs3 floating point register. |
173 | 5 frs3 floating point register (doube/even). |
188 | 5 frs3 floating point register (doube/even). |
174 | g frsd floating point register. |
189 | g frsd floating point register. |
175 | H frsd floating point register (double/even). |
190 | H frsd floating point register (double/even). |
176 | J frsd floating point register (quad/multiple of 4). |
191 | J frsd floating point register (quad/multiple of 4). |
- | 192 | } frsd floating point register (double/even) that is == frs2 |
|
177 | b crs1 coprocessor register |
193 | b crs1 coprocessor register |
178 | c crs2 coprocessor register |
194 | c crs2 coprocessor register |
179 | D crsd coprocessor register |
195 | D crsd coprocessor register |
180 | m alternate space register (asr) in rd |
196 | m alternate space register (asr) in rd |
181 | M alternate space register (asr) in rs1 |
197 | M alternate space register (asr) in rs1 |
Line 213... | Line 229... | ||
213 | U sparclet coprocessor registers in rs1 position |
229 | U sparclet coprocessor registers in rs1 position |
214 | E %ccr. (v9) |
230 | E %ccr. (v9) |
215 | s %fprs. (v9) |
231 | s %fprs. (v9) |
216 | P %pc. (v9) |
232 | P %pc. (v9) |
217 | W %tick. (v9) |
233 | W %tick. (v9) |
- | 234 | { %mcdper. (v9b) |
|
218 | o %asi. (v9) |
235 | o %asi. (v9) |
219 | 6 %fcc0. (v9) |
236 | 6 %fcc0. (v9) |
220 | 7 %fcc1. (v9) |
237 | 7 %fcc1. (v9) |
221 | 8 %fcc2. (v9) |
238 | 8 %fcc2. (v9) |
222 | 9 %fcc3. (v9) |
239 | 9 %fcc3. (v9) |