History

Revert "switch from binutils only to binutils-gdb, tag gdb-10.1-release"

This reverts commit 6c5c652ee12028f75cf95f9901979e53fbe22f8b.

Wolfgang Thaller committed 4 years ago

Commit 6ea1bcd1 parent 6c5c65220676 files · +514858 −5012976Browse files

Showing the changes to binutils/include/opcode (71 of 20676 files). Show all

Unified · Split

71 files
  1. binutils/include/opcode/aarch64.h +44 −189
  2. binutils/include/opcode/alpha.h +1 −1
  3. binutils/include/opcode/arc-attrs.h +1 −1
  4. binutils/include/opcode/arc-func.h +1 −1
  5. binutils/include/opcode/arc.h +1 −6
  6. binutils/include/opcode/arm.h +252 −328
  7. binutils/include/opcode/avr.h +1 −1
  8. binutils/include/opcode/bfin.h +1 −1
  9. binutils/include/opcode/cgen.h +3 −10
  10. binutils/include/opcode/convex.h +1 −1
  11. binutils/include/opcode/cr16.h +1 −1
  12. binutils/include/opcode/cris.h +1 −1
  13. binutils/include/opcode/crx.h +2 −2
  14. binutils/include/opcode/csky.h +0 −123
  15. binutils/include/opcode/d10v.h +1 −1
  16. binutils/include/opcode/d30v.h +2 −2
  17. binutils/include/opcode/dlx.h +1 −1
  18. binutils/include/opcode/ft32.h +1 −1
  19. binutils/include/opcode/h8300.h +48 −48
  20. binutils/include/opcode/hppa.h +1 −1
  21. binutils/include/opcode/i386.h +1 −2
  22. binutils/include/opcode/ia64.h +1 −1
  23. binutils/include/opcode/m68hc11.h +1 −1
  24. binutils/include/opcode/m68k.h +1 −1
  25. binutils/include/opcode/metag.h +1 −1
  26. binutils/include/opcode/mips.h +10 −24
  27. binutils/include/opcode/mmix.h +9 −9
  28. binutils/include/opcode/mn10200.h +1 −1
  29. binutils/include/opcode/mn10300.h +1 −1
  30. binutils/include/opcode/moxie.h +1 −1
  31. binutils/include/opcode/msp430-decode.h +1 −1
  32. binutils/include/opcode/msp430.h +1 −16
  33. binutils/include/opcode/nds32.h +27 −186
  34. binutils/include/opcode/nfp.h +1 −1
  35. binutils/include/opcode/nios2.h +1 −1
  36. binutils/include/opcode/nios2r1.h +1 −1
  37. binutils/include/opcode/nios2r2.h +1 −1
  38. binutils/include/opcode/np1.h +1 −1
  39. binutils/include/opcode/ns32k.h +1 −1
  40. binutils/include/opcode/pdp11.h +1 −1
  41. binutils/include/opcode/pj.h +1 −1
  42. binutils/include/opcode/pn.h +1 −1
  43. binutils/include/opcode/ppc.h +42 −67
  44. binutils/include/opcode/pru.h +1 −1
  45. binutils/include/opcode/pyr.h +1 −1
  46. binutils/include/opcode/riscv-opc.h +293 −305
  47. binutils/include/opcode/riscv.h +7 −137
  48. binutils/include/opcode/rl78.h +1 −1
  49. binutils/include/opcode/rx.h +1 −33
  50. binutils/include/opcode/s12z.h +0 −75
  51. binutils/include/opcode/s390.h +1 −2
  52. binutils/include/opcode/score-datadep.h +1 −1
  53. binutils/include/opcode/score-inst.h +1 −1
  54. binutils/include/opcode/sparc.h +1 −1
  55. binutils/include/opcode/spu-insns.h +1 −1
  56. binutils/include/opcode/spu.h +18 −21
  57. binutils/include/opcode/tic30.h +1 −1
  58. binutils/include/opcode/tic4x.h +6 −8
  59. binutils/include/opcode/tic54x.h +1 −1
  60. binutils/include/opcode/tic6x-control-registers.h +1 −1
  61. binutils/include/opcode/tic6x-insn-formats.h +1 −1
  62. binutils/include/opcode/tic6x-opcode-table.h +1 −1
  63. binutils/include/opcode/tic6x.h +1 −1
  64. binutils/include/opcode/tic80.h +283 −0
  65. binutils/include/opcode/tilegx.h +1 −1
  66. binutils/include/opcode/tilepro.h +4 −2
  67. binutils/include/opcode/v850.h +2 −2
  68. binutils/include/opcode/vax.h +1 −1
  69. binutils/include/opcode/visium.h +1 −1
  70. binutils/include/opcode/wasm.h +1 −1
  71. binutils/include/opcode/xgate.h +1 −1
binutils/include/opcode/aarch64.h+44−189
@@ -1,6 +1,6 @@
11 /* AArch64 assembler/disassembler support.
22
3− Copyright (C) 2009-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
44 Contributed by ARM Ltd.
55
66 This file is part of GNU Binutils.
@@ -37,63 +37,35 @@ extern "C" { · 30 unmodified lines
3737 typedef uint32_t aarch64_insn;
3838
3939 /* The following bitmasks control CPU features. */
40−#define AARCH64_FEATURE_V8 (1ULL << 0) /* All processors. */
41−#define AARCH64_FEATURE_V8_6 (1ULL << 1) /* ARMv8.6 processors. */
42−#define AARCH64_FEATURE_BFLOAT16 (1ULL << 2) /* Bfloat16 insns. */
43−#define AARCH64_FEATURE_V8_A (1ULL << 3) /* Armv8-A processors. */
44−#define AARCH64_FEATURE_SVE2 (1ULL << 4) /* SVE2 instructions. */
45−#define AARCH64_FEATURE_V8_2 (1ULL << 5) /* ARMv8.2 processors. */
46−#define AARCH64_FEATURE_V8_3 (1ULL << 6) /* ARMv8.3 processors. */
47−#define AARCH64_FEATURE_SVE2_AES (1ULL << 7)
48−#define AARCH64_FEATURE_SVE2_BITPERM (1ULL << 8)
49−#define AARCH64_FEATURE_SVE2_SM4 (1ULL << 9)
50−#define AARCH64_FEATURE_SVE2_SHA3 (1ULL << 10)
51−#define AARCH64_FEATURE_V8_4 (1ULL << 11) /* ARMv8.4 processors. */
52−#define AARCH64_FEATURE_V8_R (1ULL << 12) /* Armv8-R processors. */
53−#define AARCH64_FEATURE_FP (1ULL << 17) /* FP instructions. */
54−#define AARCH64_FEATURE_SIMD (1ULL << 18) /* SIMD instructions. */
55−#define AARCH64_FEATURE_CRC (1ULL << 19) /* CRC instructions. */
56−#define AARCH64_FEATURE_LSE (1ULL << 20) /* LSE instructions. */
57−#define AARCH64_FEATURE_PAN (1ULL << 21) /* PAN instructions. */
58−#define AARCH64_FEATURE_LOR (1ULL << 22) /* LOR instructions. */
59−#define AARCH64_FEATURE_RDMA (1ULL << 23) /* v8.1 SIMD instructions. */
60−#define AARCH64_FEATURE_V8_1 (1ULL << 24) /* v8.1 features. */
61−#define AARCH64_FEATURE_F16 (1ULL << 25) /* v8.2 FP16 instructions. */
62−#define AARCH64_FEATURE_RAS (1ULL << 26) /* RAS Extensions. */
63−#define AARCH64_FEATURE_PROFILE (1ULL << 27) /* Statistical Profiling. */
64−#define AARCH64_FEATURE_SVE (1ULL << 28) /* SVE instructions. */
65−#define AARCH64_FEATURE_RCPC (1ULL << 29) /* RCPC instructions. */
66−#define AARCH64_FEATURE_COMPNUM (1ULL << 30) /* Complex # instructions. */
67−#define AARCH64_FEATURE_DOTPROD (1ULL << 31) /* Dot Product instructions. */
68−#define AARCH64_FEATURE_SM4 (1ULL << 32) /* SM3 & SM4 instructions. */
69−#define AARCH64_FEATURE_SHA2 (1ULL << 33) /* SHA2 instructions. */
70−#define AARCH64_FEATURE_SHA3 (1ULL << 34) /* SHA3 instructions. */
71−#define AARCH64_FEATURE_AES (1ULL << 35) /* AES instructions. */
72−#define AARCH64_FEATURE_F16_FML (1ULL << 36) /* v8.2 FP16FML ins. */
73−#define AARCH64_FEATURE_V8_5 (1ULL << 37) /* ARMv8.5 processors. */
74−#define AARCH64_FEATURE_FLAGMANIP (1ULL << 38) /* Flag Manipulation insns. */
75−#define AARCH64_FEATURE_FRINTTS (1ULL << 39) /* FRINT[32,64][Z,X] insns. */
76−#define AARCH64_FEATURE_SB (1ULL << 40) /* SB instruction. */
77−#define AARCH64_FEATURE_PREDRES (1ULL << 41) /* Execution and Data Prediction Restriction instructions. */
78−#define AARCH64_FEATURE_CVADP (1ULL << 42) /* DC CVADP. */
79−#define AARCH64_FEATURE_RNG (1ULL << 43) /* Random Number instructions. */
80−#define AARCH64_FEATURE_BTI (1ULL << 44) /* BTI instructions. */
81−#define AARCH64_FEATURE_SCXTNUM (1ULL << 45) /* SCXTNUM_ELx. */
82−#define AARCH64_FEATURE_ID_PFR2 (1ULL << 46) /* ID_PFR2 instructions. */
83−#define AARCH64_FEATURE_SSBS (1ULL << 47) /* SSBS mechanism enabled. */
84−#define AARCH64_FEATURE_MEMTAG (1ULL << 48) /* Memory Tagging Extension. */
85−#define AARCH64_FEATURE_TME (1ULL << 49) /* Transactional Memory Extension. */
86−#define AARCH64_FEATURE_I8MM (1ULL << 52) /* Matrix Multiply instructions. */
87−#define AARCH64_FEATURE_F32MM (1ULL << 53)
88−#define AARCH64_FEATURE_F64MM (1ULL << 54)
89−
90−/* Crypto instructions are the combination of AES and SHA2. */
91−#define AARCH64_FEATURE_CRYPTO (AARCH64_FEATURE_SHA2 | AARCH64_FEATURE_AES)
40+#define AARCH64_FEATURE_SHA2 0x200000000ULL /* SHA2 instructions. */
41+#define AARCH64_FEATURE_AES 0x800000000ULL /* AES instructions. */
42+#define AARCH64_FEATURE_V8_4 0x000000800ULL /* ARMv8.4 processors. */
43+#define AARCH64_FEATURE_SM4 0x100000000ULL /* SM3 & SM4 instructions. */
44+#define AARCH64_FEATURE_SHA3 0x400000000ULL /* SHA3 instructions. */
45+#define AARCH64_FEATURE_V8 0x00000001 /* All processors. */
46+#define AARCH64_FEATURE_V8_2 0x00000020 /* ARMv8.2 processors. */
47+#define AARCH64_FEATURE_V8_3 0x00000040 /* ARMv8.3 processors. */
48+#define AARCH64_FEATURE_CRYPTO 0x00010000 /* Crypto instructions. */
49+#define AARCH64_FEATURE_FP 0x00020000 /* FP instructions. */
50+#define AARCH64_FEATURE_SIMD 0x00040000 /* SIMD instructions. */
51+#define AARCH64_FEATURE_CRC 0x00080000 /* CRC instructions. */
52+#define AARCH64_FEATURE_LSE 0x00100000 /* LSE instructions. */
53+#define AARCH64_FEATURE_PAN 0x00200000 /* PAN instructions. */
54+#define AARCH64_FEATURE_LOR 0x00400000 /* LOR instructions. */
55+#define AARCH64_FEATURE_RDMA 0x00800000 /* v8.1 SIMD instructions. */
56+#define AARCH64_FEATURE_V8_1 0x01000000 /* v8.1 features. */
57+#define AARCH64_FEATURE_F16 0x02000000 /* v8.2 FP16 instructions. */
58+#define AARCH64_FEATURE_RAS 0x04000000 /* RAS Extensions. */
59+#define AARCH64_FEATURE_PROFILE 0x08000000 /* Statistical Profiling. */
60+#define AARCH64_FEATURE_SVE 0x10000000 /* SVE instructions. */
61+#define AARCH64_FEATURE_RCPC 0x20000000 /* RCPC instructions. */
62+#define AARCH64_FEATURE_COMPNUM 0x40000000 /* Complex # instructions. */
63+#define AARCH64_FEATURE_DOTPROD 0x080000000 /* Dot Product instructions. */
64+#define AARCH64_FEATURE_F16_FML 0x1000000000ULL /* v8.2 FP16FML ins. */
9265
9366 /* Architectures are the sum of the base and extensions. */
9467 #define AARCH64_ARCH_V8 AARCH64_FEATURE (AARCH64_FEATURE_V8, \
95− AARCH64_FEATURE_V8_A \
96− | AARCH64_FEATURE_FP \
68+ AARCH64_FEATURE_FP \
9769 | AARCH64_FEATURE_SIMD)
9870 #define AARCH64_ARCH_V8_1 AARCH64_FEATURE (AARCH64_ARCH_V8, \
9971 AARCH64_FEATURE_CRC \
@@ -113,24 +85,6 @@ typedef uint32_t aarch64_insn; · 13 unmodified lines
11385 AARCH64_FEATURE_V8_4 \
11486 | AARCH64_FEATURE_DOTPROD \
11587 | AARCH64_FEATURE_F16_FML)
116−#define AARCH64_ARCH_V8_5 AARCH64_FEATURE (AARCH64_ARCH_V8_4, \
117− AARCH64_FEATURE_V8_5 \
118− | AARCH64_FEATURE_FLAGMANIP \
119− | AARCH64_FEATURE_FRINTTS \
120− | AARCH64_FEATURE_SB \
121− | AARCH64_FEATURE_PREDRES \
122− | AARCH64_FEATURE_CVADP \
123− | AARCH64_FEATURE_BTI \
124− | AARCH64_FEATURE_SCXTNUM \
125− | AARCH64_FEATURE_ID_PFR2 \
126− | AARCH64_FEATURE_SSBS)
127−#define AARCH64_ARCH_V8_6 AARCH64_FEATURE (AARCH64_ARCH_V8_5, \
128− AARCH64_FEATURE_V8_6 \
129− | AARCH64_FEATURE_BFLOAT16 \
130− | AARCH64_FEATURE_I8MM)
131−#define AARCH64_ARCH_V8_R (AARCH64_FEATURE (AARCH64_ARCH_V8_4, \
132− AARCH64_FEATURE_V8_R) \
133− & ~(AARCH64_FEATURE_V8_A | AARCH64_FEATURE_LOR))
13488
13589 #define AARCH64_ARCH_NONE AARCH64_FEATURE (0, 0)
13690 #define AARCH64_ANY AARCH64_FEATURE (-1, 0) /* Any basic core. */
@@ -193,7 +147,6 @@ enum aarch64_opnd · 56 unmodified lines
193147 AARCH64_OPND_Rm, /* Integer register as source. */
194148 AARCH64_OPND_Rt, /* Integer register used in ld/st instructions. */
195149 AARCH64_OPND_Rt2, /* Integer register used in ld/st pair instructions. */
196− AARCH64_OPND_Rt_SP, /* Integer Rt or SP used in STG instructions. */
197150 AARCH64_OPND_Rs, /* Integer register used in ld/st exclusive. */
198151 AARCH64_OPND_Ra, /* Integer register used in ddp_3src instructions. */
199152 AARCH64_OPND_Rt_SYS, /* Integer register used in system instructions. */
@@ -256,12 +209,9 @@ enum aarch64_opnd · 56 unmodified lines
256209 AARCH64_OPND_UIMM3_OP1,/* Unsigned 3-bit immediate in the op1 field. */
257210 AARCH64_OPND_UIMM3_OP2,/* Unsigned 3-bit immediate in the op2 field. */
258211 AARCH64_OPND_UIMM4, /* Unsigned 4-bit immediate in the CRm field. */
259− AARCH64_OPND_UIMM4_ADDG,/* Unsigned 4-bit immediate in addg/subg. */
260212 AARCH64_OPND_UIMM7, /* Unsigned 7-bit immediate in the CRm:op2 fields. */
261− AARCH64_OPND_UIMM10, /* Unsigned 10-bit immediate in addg/subg. */
262213 AARCH64_OPND_BIT_NUM, /* Immediate. */
263214 AARCH64_OPND_EXCEPTION,/* imm16 operand in exception instructions. */
264− AARCH64_OPND_UNDEFINED,/* imm16 operand in undefined instruction. */
265215 AARCH64_OPND_CCMP_IMM,/* Immediate in conditional compare instructions. */
266216 AARCH64_OPND_SIMM5, /* 5-bit signed immediate in the imm5 field. */
267217 AARCH64_OPND_NZCV, /* Flag bit specifier giving an alternative value for
@@ -297,11 +247,7 @@ enum aarch64_opnd · 29 unmodified lines
297247 the mnemonic name for LDUR/STUR instructions
298248 wherever there is no ambiguity. */
299249 AARCH64_OPND_ADDR_SIMM10, /* Address of signed 10-bit immediate. */
300− AARCH64_OPND_ADDR_SIMM11, /* Address with a signed 11-bit (multiple of
301− 16) immediate. */
302250 AARCH64_OPND_ADDR_UIMM12, /* Address of unsigned 12-bit immediate. */
303− AARCH64_OPND_ADDR_SIMM13, /* Address with a signed 13-bit (multiple of
304− 16) immediate. */
305251 AARCH64_OPND_SIMD_ADDR_SIMPLE,/* Address of ld/st multiple structures. */
306252 AARCH64_OPND_ADDR_OFFSET, /* Address with an optional 9-bit immediate. */
307253 AARCH64_OPND_SIMD_ADDR_POST, /* Address of ld/st multiple post-indexed. */
@@ -312,15 +258,12 @@ enum aarch64_opnd · 4 unmodified lines
312258 AARCH64_OPND_SYSREG_DC, /* System register <dc_op> operand. */
313259 AARCH64_OPND_SYSREG_IC, /* System register <ic_op> operand. */
314260 AARCH64_OPND_SYSREG_TLBI, /* System register <tlbi_op> operand. */
315− AARCH64_OPND_SYSREG_SR, /* System register RCTX operand. */
316261 AARCH64_OPND_BARRIER, /* Barrier operand. */
317262 AARCH64_OPND_BARRIER_ISB, /* Barrier operand for ISB. */
318263 AARCH64_OPND_PRFOP, /* Prefetch operation. */
319264 AARCH64_OPND_BARRIER_PSB, /* Barrier operand for PSB. */
320− AARCH64_OPND_BTI_TARGET, /* BTI {<target>}. */
321265
322266 AARCH64_OPND_SVE_ADDR_RI_S4x16, /* SVE [<Xn|SP>, #<simm4>*16]. */
323− AARCH64_OPND_SVE_ADDR_RI_S4x32, /* SVE [<Xn|SP>, #<simm4>*32]. */
324267 AARCH64_OPND_SVE_ADDR_RI_S4xVL, /* SVE [<Xn|SP>, #<simm4>, MUL VL]. */
325268 AARCH64_OPND_SVE_ADDR_RI_S4x2xVL, /* SVE [<Xn|SP>, #<simm4>*2, MUL VL]. */
326269 AARCH64_OPND_SVE_ADDR_RI_S4x3xVL, /* SVE [<Xn|SP>, #<simm4>*3, MUL VL]. */
@@ -340,7 +283,6 @@ enum aarch64_opnd · 13 unmodified lines
340283 AARCH64_OPND_SVE_ADDR_RX_LSL1, /* SVE [<Xn|SP>, <Xm>, LSL #1]. */
341284 AARCH64_OPND_SVE_ADDR_RX_LSL2, /* SVE [<Xn|SP>, <Xm>, LSL #2]. */
342285 AARCH64_OPND_SVE_ADDR_RX_LSL3, /* SVE [<Xn|SP>, <Xm>, LSL #3]. */
343− AARCH64_OPND_SVE_ADDR_ZX, /* SVE [Zn.<T>{, <Xm>}]. */
344286 AARCH64_OPND_SVE_ADDR_RZ, /* SVE [<Xn|SP>, Zm.D]. */
345287 AARCH64_OPND_SVE_ADDR_RZ_LSL1, /* SVE [<Xn|SP>, Zm.D, LSL #1]. */
346288 AARCH64_OPND_SVE_ADDR_RZ_LSL2, /* SVE [<Xn|SP>, Zm.D, LSL #2]. */
@@ -376,7 +318,6 @@ enum aarch64_opnd · 29 unmodified lines
376318 AARCH64_OPND_SVE_I1_ZERO_ONE, /* SVE choice between 0.0 and 1.0. */
377319 AARCH64_OPND_SVE_IMM_ROT1, /* SVE 1-bit rotate operand (90 or 270). */
378320 AARCH64_OPND_SVE_IMM_ROT2, /* SVE 2-bit rotate operand (N*90). */
379− AARCH64_OPND_SVE_IMM_ROT3, /* SVE cadd 1-bit rotate (90 or 270). */
380321 AARCH64_OPND_SVE_INV_LIMM, /* SVE inverted logical immediate. */
381322 AARCH64_OPND_SVE_LIMM, /* SVE logical immediate. */
382323 AARCH64_OPND_SVE_LIMM_MOV, /* SVE logical immediate for MOV. */
@@ -395,10 +336,8 @@ enum aarch64_opnd · 12 unmodified lines
395336 AARCH64_OPND_SVE_Rn_SP, /* Integer Rn or SP, alt. SVE position. */
396337 AARCH64_OPND_SVE_SHLIMM_PRED, /* SVE shift left amount (predicated). */
397338 AARCH64_OPND_SVE_SHLIMM_UNPRED, /* SVE shift left amount (unpredicated). */
398− AARCH64_OPND_SVE_SHLIMM_UNPRED_22, /* SVE 3 bit shift left unpred. */
399339 AARCH64_OPND_SVE_SHRIMM_PRED, /* SVE shift right amount (predicated). */
400340 AARCH64_OPND_SVE_SHRIMM_UNPRED, /* SVE shift right amount (unpredicated). */
401− AARCH64_OPND_SVE_SHRIMM_UNPRED_22, /* SVE 3 bit shift right unpred. */
402341 AARCH64_OPND_SVE_SIMM5, /* SVE signed 5-bit immediate. */
403342 AARCH64_OPND_SVE_SIMM5B, /* SVE secondary signed 5-bit immediate. */
404343 AARCH64_OPND_SVE_SIMM6, /* SVE signed 6-bit immediate. */
@@ -418,15 +357,12 @@ enum aarch64_opnd · 13 unmodified lines
418357 AARCH64_OPND_SVE_Zm_16, /* SVE vector register in Zm, bits [20,16]. */
419358 AARCH64_OPND_SVE_Zm3_INDEX, /* z0-z7[0-3] in Zm, bits [20,16]. */
420359 AARCH64_OPND_SVE_Zm3_22_INDEX, /* z0-z7[0-7] in Zm3_INDEX plus bit 22. */
421− AARCH64_OPND_SVE_Zm3_11_INDEX, /* z0-z7[0-7] in Zm3_INDEX plus bit 11. */
422− AARCH64_OPND_SVE_Zm4_11_INDEX, /* z0-z15[0-3] in Zm plus bit 11. */
423360 AARCH64_OPND_SVE_Zm4_INDEX, /* z0-z15[0-1] in Zm, bits [20,16]. */
424361 AARCH64_OPND_SVE_Zn, /* SVE vector register in Zn. */
425362 AARCH64_OPND_SVE_Zn_INDEX, /* Indexed SVE vector register, for DUP. */
426363 AARCH64_OPND_SVE_ZnxN, /* SVE vector register list in Zn. */
427364 AARCH64_OPND_SVE_Zt, /* SVE vector register in Zt. */
428365 AARCH64_OPND_SVE_ZtxN, /* SVE vector register list in Zt. */
429− AARCH64_OPND_TME_UIMM16, /* TME unsigned 16-bit immediate. */
430366 AARCH64_OPND_SM3_IMM2, /* SM3 encodes lane in bits [13, 14]. */
431367 };
432368
@@ -463,13 +399,11 @@ enum aarch64_opnd_qualifier · 30 unmodified lines
463399 AARCH64_OPND_QLF_S_S,
464400 AARCH64_OPND_QLF_S_D,
465401 AARCH64_OPND_QLF_S_Q,
466− /* These type qualifiers have a special meaning in that they mean 4 x 1 byte
467− or 2 x 2 byte are selected by the instruction. Other than that they have
468− no difference with AARCH64_OPND_QLF_S_B in encoding. They are here purely
469− for syntactical reasons and is an exception from normal AArch64
470− disassembly scheme. */
402+ /* This type qualifier has a special meaning in that it means that 4 x 1 byte
403+ are selected by the instruction. Other than that it has no difference
404+ with AARCH64_OPND_QLF_S_B in encoding. It is here purely for syntactical
405+ reasons and is an exception from normal AArch64 disassembly scheme. */
471406 AARCH64_OPND_QLF_S_4B,
472− AARCH64_OPND_QLF_S_2H,
473407
474408 /* Qualifying an operand which is a SIMD vector register or a SIMD vector
475409 register list; indicating register shape.
@@ -492,10 +426,6 @@ enum aarch64_opnd_qualifier · 16 unmodified lines
492426 AARCH64_OPND_QLF_P_Z,
493427 AARCH64_OPND_QLF_P_M,
494428
495− /* Used in scaled signed immediate that are scaled by a Tag granule
496− like in stg, st2g, etc. */
497− AARCH64_OPND_QLF_imm_tag,
498−
499429 /* Constraint on value. */
500430 AARCH64_OPND_QLF_CR, /* CRn, CRm. */
501431 AARCH64_OPND_QLF_imm_0_7,
@@ -519,7 +449,6 @@ enum aarch64_opnd_qualifier · 17 unmodified lines
519449
520450 enum aarch64_insn_class
521451 {
522− aarch64_misc,
523452 addsub_carry,
524453 addsub_ext,
525454 addsub_imm,
@@ -601,19 +530,11 @@ enum aarch64_insn_class · 75 unmodified lines
601530 sve_size_bhs,
602531 sve_size_bhsd,
603532 sve_size_hsd,
604− sve_size_hsd2,
605533 sve_size_sd,
606− sve_size_bh,
607− sve_size_sd2,
608− sve_size_13,
609− sve_shift_tsz_hsd,
610− sve_shift_tsz_bhsd,
611− sve_size_tsz_bhs,
612534 testbranch,
613535 cryptosm3,
614536 cryptosm4,
615537 dotproduct,
616− bfloat16,
617538 };
618539
619540 /* Opcode enumerators. */
@@ -720,17 +641,6 @@ enum aarch64_op · 100 unmodified lines
720641 OP_TOTAL_NUM, /* Pseudo. */
721642 };
722643
723−/* Error types. */
724−enum err_type
725−{
726− ERR_OK,
727− ERR_UND,
728− ERR_UNP,
729− ERR_NYI,
730− ERR_VFI,
731− ERR_NR_ENTRIES
732−};
733−
734644 /* Maximum number of operands an instruction can have. */
735645 #define AARCH64_MAX_OPND_NUM 6
736646 /* Maximum number of qualifier sequences an instruction can have. */
@@ -752,13 +662,6 @@ empty_qualifier_sequence_p (const aarch64_opnd_qualifier_t *qualifiers) · 15 unmodified lines
752662 return TRUE;
753663 }
754664
755−/* Forward declare error reporting type. */
756−typedef struct aarch64_operand_error aarch64_operand_error;
757−/* Forward declare instruction sequence type. */
758−typedef struct aarch64_instr_sequence aarch64_instr_sequence;
759−/* Forward declare instruction definition. */
760−typedef struct aarch64_inst aarch64_inst;
761−
762665 /* This structure holds information for a particular opcode. */
763666
764667 struct aarch64_opcode
@@ -797,19 +700,14 @@ struct aarch64_opcode · 32 unmodified lines
797700 aarch64_opnd_qualifier_seq_t qualifiers_list[AARCH64_MAX_QLF_SEQ_NUM];
798701
799702 /* Flags providing information about this instruction */
800− uint64_t flags;
801−
802− /* Extra constraints on the instruction that the verifier checks. */
803− uint32_t constraints;
703+ uint32_t flags;
804704
805705 /* If nonzero, this operand and operand 0 are both registers and
806706 are required to have the same register number. */
807707 unsigned char tied_operand;
808708
809709 /* If non-NULL, a function to verify that a given instruction is valid. */
810− enum err_type (* verifier) (const struct aarch64_inst *, const aarch64_insn,
811− bfd_vma, bfd_boolean, aarch64_operand_error *,
812− struct aarch64_instr_sequence *);
710+ bfd_boolean (* verifier) (const struct aarch64_opcode *, const aarch64_insn);
813711 };
814712
815713 typedef struct aarch64_opcode aarch64_opcode;
@@ -873,18 +771,7 @@ extern aarch64_opcode aarch64_opcode_table[]; · 57 unmodified lines
873771 #define F_SYS_READ (1ULL << 29)
874772 /* This system instruction is used to write system registers. */
875773 #define F_SYS_WRITE (1ULL << 30)
876−/* This instruction has an extra constraint on it that imposes a requirement on
877− subsequent instructions. */
878−#define F_SCAN (1ULL << 31)
879−/* Next bit is 32. */
880−
881−/* Instruction constraints. */
882−/* This instruction has a predication constraint on the instruction at PC+4. */
883−#define C_SCAN_MOVPRFX (1U << 0)
884−/* This instruction's operation width is determined by the operand with the
885− largest element size. */
886−#define C_MAX_ELEM (1U << 1)
887−/* Next bit is 2. */
774+/* Next bit is 31. */
888775
889776 static inline bfd_boolean
890777 alias_opcode_p (const aarch64_opcode *opcode)
@@ -949,22 +836,18 @@ extern const struct aarch64_name_value_pair aarch64_barrier_options [16]; · 58 unmodified lines
949836 extern const struct aarch64_name_value_pair aarch64_prfops [32];
950837 extern const struct aarch64_name_value_pair aarch64_hint_options [];
951838
952−#define AARCH64_MAX_SYSREG_NAME_LEN 32
953−
954839 typedef struct
955840 {
956841 const char * name;
957842 aarch64_insn value;
958843 uint32_t flags;
959−
960− /* A set of features, all of which are required for this system register to be
961− available. */
962− aarch64_feature_set features;
963844 } aarch64_sys_reg;
964845
965846 extern const aarch64_sys_reg aarch64_sys_regs [];
966847 extern const aarch64_sys_reg aarch64_pstatefields [];
967−extern bfd_boolean aarch64_sys_reg_deprecated_p (const uint32_t);
848+extern bfd_boolean aarch64_sys_reg_deprecated_p (const aarch64_sys_reg *);
849+extern bfd_boolean aarch64_sys_reg_supported_p (const aarch64_feature_set,
850+ const aarch64_sys_reg *);
968851 extern bfd_boolean aarch64_pstatefield_supported_p (const aarch64_feature_set,
969852 const aarch64_sys_reg *);
970853
@@ -978,14 +861,12 @@ typedef struct · 7 unmodified lines
978861 extern bfd_boolean aarch64_sys_ins_reg_has_xt (const aarch64_sys_ins_reg *);
979862 extern bfd_boolean
980863 aarch64_sys_ins_reg_supported_p (const aarch64_feature_set,
981− const char *reg_name, aarch64_insn,
982− uint32_t, aarch64_feature_set);
864+ const aarch64_sys_ins_reg *);
983865
984866 extern const aarch64_sys_ins_reg aarch64_sys_regs_ic [];
985867 extern const aarch64_sys_ins_reg aarch64_sys_regs_dc [];
986868 extern const aarch64_sys_ins_reg aarch64_sys_regs_at [];
987869 extern const aarch64_sys_ins_reg aarch64_sys_regs_tlbi [];
988−extern const aarch64_sys_ins_reg aarch64_sys_regs_sr [];
989870
990871 /* Shift/extending operator kinds.
991872 N.B. order is important; keep aarch64_operand_modifiers synced. */
@@ -1151,13 +1032,7 @@ struct aarch64_inst · 159 unmodified lines
11511032 aarch64_opnd_info operands[AARCH64_MAX_OPND_NUM];
11521033 };
11531034
1154−/* Defining the HINT #imm values for the aarch64_hint_options. */
1155−#define HINT_OPD_CSYNC 0x11
1156−#define HINT_OPD_C 0x22
1157−#define HINT_OPD_J 0x24
1158−#define HINT_OPD_JC 0x26
1159−#define HINT_OPD_NULL 0x00
1160−
1035+typedef struct aarch64_inst aarch64_inst;
11611036
11621037 /* Diagnosis related declaration and interface. */
11631038
@@ -1235,27 +1110,14 @@ struct aarch64_operand_error · 71 unmodified lines
12351110 bfd_boolean non_fatal;
12361111 };
12371112
1238−/* AArch64 sequence structure used to track instructions with F_SCAN
1239− dependencies for both assembler and disassembler. */
1240−struct aarch64_instr_sequence
1241−{
1242− /* The instruction that caused this sequence to be opened. */
1243− aarch64_inst *instr;
1244− /* The number of instructions the above instruction allows to be kept in the
1245− sequence before an automatic close is done. */
1246− int num_insns;
1247− /* The instructions currently added to the sequence. */
1248− aarch64_inst **current_insns;
1249− /* The number of instructions already in the sequence. */
1250− int next_insn;
1251−};
1113+typedef struct aarch64_operand_error aarch64_operand_error;
12521114
12531115 /* Encoding entrypoint. */
12541116
12551117 extern int
12561118 aarch64_opcode_encode (const aarch64_opcode *, const aarch64_inst *,
12571119 aarch64_insn *, aarch64_opnd_qualifier_t *,
1258− aarch64_operand_error *, aarch64_instr_sequence *);
1120+ aarch64_operand_error *);
12591121
12601122 extern const aarch64_opcode *
12611123 aarch64_replace_opcode (struct aarch64_inst *,
@@ -1271,8 +1133,7 @@ aarch64_get_opcode (enum aarch64_op); · 9 unmodified lines
12711133 extern void
12721134 aarch64_print_operand (char *, size_t, bfd_vma, const aarch64_opcode *,
12731135 const aarch64_opnd_info *, int, int *, bfd_vma *,
1274− char **,
1275− aarch64_feature_set features);
1136+ char **);
12761137
12771138 /* Miscellaneous interface. */
12781139
@@ -1283,9 +1144,6 @@ extern aarch64_opnd_qualifier_t · 4 unmodified lines
12831144 aarch64_get_expected_qualifier (const aarch64_opnd_qualifier_seq_t *, int,
12841145 const aarch64_opnd_qualifier_t, int);
12851146
1286−extern bfd_boolean
1287−aarch64_is_destructive_by_operands (const aarch64_opcode *);
1288−
12891147 extern int
12901148 aarch64_num_of_operands (const aarch64_opcode *);
12911149
@@ -1295,12 +1153,9 @@ aarch64_stack_pointer_p (const aarch64_opnd_info *); · 3 unmodified lines
12951153 extern int
12961154 aarch64_zero_register_p (const aarch64_opnd_info *);
12971155
1298−extern enum err_type
1156+extern int
12991157 aarch64_decode_insn (aarch64_insn, aarch64_inst *, bfd_boolean,
1300− aarch64_operand_error *);
1301−
1302−extern void
1303−init_insn_sequence (const struct aarch64_inst *, aarch64_instr_sequence *);
1158+ aarch64_operand_error *errors);
13041159
13051160 /* Given an operand qualifier, return the expected data element size
13061161 of a qualified operand. */
binutils/include/opcode/alpha.h+1−1
@@ -1,5 +1,5 @@
11 /* alpha.h -- Header file for Alpha opcode table
2− Copyright (C) 1996-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
33 Contributed by Richard Henderson <rth@tamu.edu>,
44 patterned after the PPC opcode table written by Ian Lance Taylor.
55
binutils/include/opcode/arc-attrs.h+1−1
@@ -1,4 +1,4 @@
1−/* Copyright (C) 1994-2020 Free Software Foundation, Inc.
1+/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
22
33 Contributed by Claudiu Zissulescu (claziss@synopsys.com)
44
binutils/include/opcode/arc-func.h+1−1
@@ -1,5 +1,5 @@
11 /* Replace functions for the ARC relocs.
2− Copyright (C) 2015-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2015-2018 Free Software Foundation, Inc.
33
44 This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
55 the GNU Binutils.
binutils/include/opcode/arc.h+1−6
@@ -1,5 +1,5 @@
11 /* Opcode table for the ARC.
2− Copyright (C) 1994-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1994-2018 Free Software Foundation, Inc.
33
44 Contributed by Claudiu Zissulescu (claziss@synopsys.com)
55
@@ -64,7 +64,6 @@ typedef enum · 58 unmodified lines
6464 JUMP,
6565 KERNEL,
6666 LEAVE,
67− LLOCK,
6867 LOAD,
6968 LOGICAL,
7069 LOOP,
@@ -77,11 +76,9 @@ typedef enum · 6 unmodified lines
7776 PMU,
7877 POP,
7978 PUSH,
80− SCOND,
8179 SJLI,
8280 STORE,
8381 SUB,
84− SWITCH,
8582 ULTRAIP,
8683 XY
8784 } insn_class_t;
@@ -100,7 +97,6 @@ typedef enum · 12 unmodified lines
10097 DP = (1U << 6),
10198 DPA = (1U << 7),
10299 DPX = (1U << 8),
103− FASTMATH = (1U << 23),
104100 LL64 = (1U << 9),
105101 MPY1E = (1U << 10),
106102 MPY6E = (1U << 11),
@@ -204,7 +200,6 @@ extern int arc_opcode_len (const struct arc_opcode *opcode); · 97 unmodified lines
204200 #define ARC_OPCODE_ARCALL (ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 \
205201 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS)
206202 #define ARC_OPCODE_ARCFPX (ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM)
207−#define ARC_OPCODE_ARCV1 (ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700)
208203 #define ARC_OPCODE_ARCV2 (ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS)
209204 #define ARC_OPCODE_ARCMPY6E (ARC_OPCODE_ARC700 | ARC_OPCODE_ARCV2)
210205
binutils/include/opcode/arm.h+252−328
@@ -1,5 +1,5 @@
11 /* ARM assembler/disassembler support.
2− Copyright (C) 2004-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2004-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB and GAS.
55
@@ -19,183 +19,154 @@ · 13 unmodified lines
1919 MA 02110-1301, USA. */
2020
2121 /* The following bitmasks control CPU extensions: */
22−#define ARM_EXT_V1 0x00000001 /* All processors (core set). */
23−#define ARM_EXT_V2 0x00000002 /* Multiply instructions. */
24−#define ARM_EXT_V2S 0x00000004 /* SWP instructions. */
25−#define ARM_EXT_V3 0x00000008 /* MSR MRS. */
26−#define ARM_EXT_V3M 0x00000010 /* Allow long multiplies. */
27−#define ARM_EXT_V4 0x00000020 /* Allow half word loads. */
28−#define ARM_EXT_V4T 0x00000040 /* Thumb. */
29−#define ARM_EXT_V5 0x00000080 /* Allow CLZ, etc. */
30−#define ARM_EXT_V5T 0x00000100 /* Improved interworking. */
31−#define ARM_EXT_V5ExP 0x00000200 /* DSP core set. */
32−#define ARM_EXT_V5E 0x00000400 /* DSP Double transfers. */
33−#define ARM_EXT_V5J 0x00000800 /* Jazelle extension. */
34−#define ARM_EXT_V6 0x00001000 /* ARM V6. */
35−#define ARM_EXT_V6K 0x00002000 /* ARM V6K. */
36−#define ARM_EXT_V8 0x00004000 /* ARMv8 w/o atomics. */
37−#define ARM_EXT_V6T2 0x00008000 /* Thumb-2. */
38−#define ARM_EXT_DIV 0x00010000 /* Integer division. */
22+#define ARM_EXT_V1 0x00000001 /* All processors (core set). */
23+#define ARM_EXT_V2 0x00000002 /* Multiply instructions. */
24+#define ARM_EXT_V2S 0x00000004 /* SWP instructions. */
25+#define ARM_EXT_V3 0x00000008 /* MSR MRS. */
26+#define ARM_EXT_V3M 0x00000010 /* Allow long multiplies. */
27+#define ARM_EXT_V4 0x00000020 /* Allow half word loads. */
28+#define ARM_EXT_V4T 0x00000040 /* Thumb. */
29+#define ARM_EXT_V5 0x00000080 /* Allow CLZ, etc. */
30+#define ARM_EXT_V5T 0x00000100 /* Improved interworking. */
31+#define ARM_EXT_V5ExP 0x00000200 /* DSP core set. */
32+#define ARM_EXT_V5E 0x00000400 /* DSP Double transfers. */
33+#define ARM_EXT_V5J 0x00000800 /* Jazelle extension. */
34+#define ARM_EXT_V6 0x00001000 /* ARM V6. */
35+#define ARM_EXT_V6K 0x00002000 /* ARM V6K. */
36+#define ARM_EXT_V8 0x00004000 /* ARMv8 w/o atomics. */
37+#define ARM_EXT_V6T2 0x00008000 /* Thumb-2. */
38+#define ARM_EXT_DIV 0x00010000 /* Integer division. */
3939 /* The 'M' in Arm V7M stands for Microcontroller.
4040 On earlier architecture variants it stands for Multiply. */
41−#define ARM_EXT_V5E_NOTM 0x00020000 /* Arm V5E but not Arm V7M. */
42−#define ARM_EXT_V6_NOTM 0x00040000 /* Arm V6 but not Arm V7M. */
43−#define ARM_EXT_V7 0x00080000 /* Arm V7. */
44−#define ARM_EXT_V7A 0x00100000 /* Arm V7A. */
45−#define ARM_EXT_V7R 0x00200000 /* Arm V7R. */
46−#define ARM_EXT_V7M 0x00400000 /* Arm V7M. */
47−#define ARM_EXT_V6M 0x00800000 /* ARM V6M. */
48−#define ARM_EXT_BARRIER 0x01000000 /* DSB/DMB/ISB. */
49−#define ARM_EXT_THUMB_MSR 0x02000000 /* Thumb MSR/MRS. */
50−#define ARM_EXT_V6_DSP 0x04000000 /* ARM v6 (DSP-related),
51− not in v7-M. */
52−#define ARM_EXT_MP 0x08000000 /* Multiprocessing Extensions. */
53−#define ARM_EXT_SEC 0x10000000 /* Security extensions. */
54−#define ARM_EXT_OS 0x20000000 /* OS Extensions. */
55−#define ARM_EXT_ADIV 0x40000000 /* Integer divide extensions in ARM
56− state. */
57−#define ARM_EXT_VIRT 0x80000000 /* Virtualization extensions. */
58−
59−#define ARM_EXT2_PAN 0x00000001 /* PAN extension. */
60−#define ARM_EXT2_V8_2A 0x00000002 /* ARM V8.2A. */
61−#define ARM_EXT2_V8M 0x00000004 /* ARM V8M. */
62−#define ARM_EXT2_ATOMICS 0x00000008 /* ARMv8 atomics. */
63−#define ARM_EXT2_V6T2_V8M 0x00000010 /* V8M Baseline from V6T2. */
64−#define ARM_EXT2_FP16_INST 0x00000020 /* ARM V8.2A FP16 instructions. */
65−#define ARM_EXT2_V8M_MAIN 0x00000040 /* ARMv8-M Mainline. */
66−#define ARM_EXT2_RAS 0x00000080 /* RAS extension. */
67−#define ARM_EXT2_V8_3A 0x00000100 /* ARM V8.3A. */
68−#define ARM_EXT2_V8A 0x00000200 /* ARMv8-A. */
69−#define ARM_EXT2_V8_4A 0x00000400 /* ARM V8.4A. */
70−#define ARM_EXT2_FP16_FML 0x00000800 /* ARM V8.2A FP16-FML
71− instructions. */
72−#define ARM_EXT2_V8_5A 0x00001000 /* ARM V8.5A. */
73−#define ARM_EXT2_SB 0x00002000 /* Speculation Barrier instruction. */
74−#define ARM_EXT2_PREDRES 0x00004000 /* Prediction Restriction insns. */
75−#define ARM_EXT2_V8_1M_MAIN 0x00008000 /* ARMv8.1-M Mainline. */
76−#define ARM_EXT2_V8_6A 0x00010000 /* ARM V8.6A. */
77−#define ARM_EXT2_BF16 0x00020000 /* ARMv8 bfloat16. */
78−#define ARM_EXT2_I8MM 0x00040000 /* ARMv8.6A i8mm. */
79−#define ARM_EXT2_CRC 0x00080000 /* ARMv8 CRC32 */
80−#define ARM_EXT2_MVE 0x00100000 /* MVE Integer extension. */
81−#define ARM_EXT2_MVE_FP 0x00200000 /* MVE Floating Point extension. */
82−#define ARM_EXT2_CDE 0x00400000 /* Custom Datapath Extension. */
83−#define ARM_EXT2_CDE0 0x00800000 /* Using CDE coproc 0. */
84−#define ARM_EXT2_CDE1 0x01000000 /* Using CDE coproc 1. */
85−#define ARM_EXT2_CDE2 0x02000000 /* Using CDE coproc 2. */
86−#define ARM_EXT2_CDE3 0x04000000 /* Using CDE coproc 3. */
87−#define ARM_EXT2_CDE4 0x08000000 /* Using CDE coproc 4. */
88−#define ARM_EXT2_CDE5 0x10000000 /* Using CDE coproc 5. */
89−#define ARM_EXT2_CDE6 0x20000000 /* Using CDE coproc 6. */
90−#define ARM_EXT2_CDE7 0x40000000 /* Using CDE coproc 7. */
91−#define ARM_EXT2_V8R 0x80000000 /* Arm V8R. */
41+#define ARM_EXT_V5E_NOTM 0x00020000 /* Arm V5E but not Arm V7M. */
42+#define ARM_EXT_V6_NOTM 0x00040000 /* Arm V6 but not Arm V7M. */
43+#define ARM_EXT_V7 0x00080000 /* Arm V7. */
44+#define ARM_EXT_V7A 0x00100000 /* Arm V7A. */
45+#define ARM_EXT_V7R 0x00200000 /* Arm V7R. */
46+#define ARM_EXT_V7M 0x00400000 /* Arm V7M. */
47+#define ARM_EXT_V6M 0x00800000 /* ARM V6M. */
48+#define ARM_EXT_BARRIER 0x01000000 /* DSB/DMB/ISB. */
49+#define ARM_EXT_THUMB_MSR 0x02000000 /* Thumb MSR/MRS. */
50+#define ARM_EXT_V6_DSP 0x04000000 /* ARM v6 (DSP-related),
51+ not in v7-M. */
52+#define ARM_EXT_MP 0x08000000 /* Multiprocessing Extensions. */
53+#define ARM_EXT_SEC 0x10000000 /* Security extensions. */
54+#define ARM_EXT_OS 0x20000000 /* OS Extensions. */
55+#define ARM_EXT_ADIV 0x40000000 /* Integer divide extensions in ARM
56+ state. */
57+#define ARM_EXT_VIRT 0x80000000 /* Virtualization extensions. */
58+
59+#define ARM_EXT2_PAN 0x00000001 /* PAN extension. */
60+#define ARM_EXT2_V8_2A 0x00000002 /* ARM V8.2A. */
61+#define ARM_EXT2_V8M 0x00000004 /* ARM V8M. */
62+#define ARM_EXT2_ATOMICS 0x00000008 /* ARMv8 atomics. */
63+#define ARM_EXT2_V6T2_V8M 0x00000010 /* V8M Baseline from V6T2. */
64+#define ARM_EXT2_FP16_INST 0x00000020 /* ARM V8.2A FP16 instructions. */
65+#define ARM_EXT2_V8M_MAIN 0x00000040 /* ARMv8-M Mainline. */
66+#define ARM_EXT2_RAS 0x00000080 /* RAS extension. */
67+#define ARM_EXT2_V8_3A 0x00000100 /* ARM V8.3A. */
68+#define ARM_EXT2_V8A 0x00000200 /* ARMv8-A. */
69+#define ARM_EXT2_V8_4A 0x00000400 /* ARM V8.4A. */
70+#define ARM_EXT2_FP16_FML 0x00000800 /* ARM V8.2A FP16-FML instructions. */
9271
9372 /* Co-processor space extensions. */
94−#define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */
95−#define ARM_CEXT_MAVERICK 0x00000002 /* Use Cirrus/DSP coprocessor. */
96−#define ARM_CEXT_IWMMXT 0x00000004 /* Intel Wireless MMX technology
97− coprocessor. */
98−#define ARM_CEXT_IWMMXT2 0x00000008 /* Intel Wireless MMX technology
99− coprocessor version 2. */
100−
101−#define FPU_ENDIAN_PURE 0x80000000 /* Pure-endian doubles. */
102−#define FPU_FPA_EXT_V1 0x40000000 /* Base FPA instruction set. */
103−#define FPU_FPA_EXT_V2 0x20000000 /* LFM/SFM. */
104−#define FPU_MAVERICK 0x10000000 /* Cirrus Maverick. */
105−#define FPU_VFP_EXT_V1xD 0x08000000 /* Base VFP instruction set. */
106−#define FPU_VFP_EXT_V1 0x04000000 /* Double-precision insns. */
107−#define FPU_VFP_EXT_V2 0x02000000 /* ARM10E VFPr1. */
108−#define FPU_VFP_EXT_V3xD 0x01000000 /* VFPv3 single-precision. */
109−#define FPU_VFP_EXT_V3 0x00800000 /* VFPv3 double-precision. */
110−#define FPU_NEON_EXT_V1 0x00400000 /* Neon (SIMD) insns. */
111−#define FPU_VFP_EXT_D32 0x00200000 /* Registers D16-D31. */
112−#define FPU_VFP_EXT_FP16 0x00100000 /* Half-precision extensions. */
113−#define FPU_NEON_EXT_FMA 0x00080000 /* Neon fused multiply-add. */
114−#define FPU_VFP_EXT_FMA 0x00040000 /* VFP fused multiply-add. */
115−#define FPU_VFP_EXT_ARMV8 0x00020000 /* Double-precision FP for ARMv8. */
116−#define FPU_NEON_EXT_ARMV8 0x00010000 /* Neon for ARMv8. */
117−#define FPU_CRYPTO_EXT_ARMV8 0x00008000 /* Crypto for ARMv8. */
118−/* Unused 0x00004000 */
119−#define FPU_VFP_EXT_ARMV8xD 0x00002000 /* Single-precision FP for ARMv8. */
120−#define FPU_NEON_EXT_RDMA 0x00001000 /* v8.1 Adv.SIMD extensions. */
121−#define FPU_NEON_EXT_DOTPROD 0x00000800 /* Dot Product extension. */
73+#define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */
74+#define ARM_CEXT_MAVERICK 0x00000002 /* Use Cirrus/DSP coprocessor. */
75+#define ARM_CEXT_IWMMXT 0x00000004 /* Intel Wireless MMX technology coprocessor. */
76+#define ARM_CEXT_IWMMXT2 0x00000008 /* Intel Wireless MMX technology coprocessor version 2. */
77+
78+#define FPU_ENDIAN_PURE 0x80000000 /* Pure-endian doubles. */
79+#define FPU_ENDIAN_BIG 0 /* Double words-big-endian. */
80+#define FPU_FPA_EXT_V1 0x40000000 /* Base FPA instruction set. */
81+#define FPU_FPA_EXT_V2 0x20000000 /* LFM/SFM. */
82+#define FPU_MAVERICK 0x10000000 /* Cirrus Maverick. */
83+#define FPU_VFP_EXT_V1xD 0x08000000 /* Base VFP instruction set. */
84+#define FPU_VFP_EXT_V1 0x04000000 /* Double-precision insns. */
85+#define FPU_VFP_EXT_V2 0x02000000 /* ARM10E VFPr1. */
86+#define FPU_VFP_EXT_V3xD 0x01000000 /* VFPv3 single-precision. */
87+#define FPU_VFP_EXT_V3 0x00800000 /* VFPv3 double-precision. */
88+#define FPU_NEON_EXT_V1 0x00400000 /* Neon (SIMD) insns. */
89+#define FPU_VFP_EXT_D32 0x00200000 /* Registers D16-D31. */
90+#define FPU_VFP_EXT_FP16 0x00100000 /* Half-precision extensions. */
91+#define FPU_NEON_EXT_FMA 0x00080000 /* Neon fused multiply-add */
92+#define FPU_VFP_EXT_FMA 0x00040000 /* VFP fused multiply-add */
93+#define FPU_VFP_EXT_ARMV8 0x00020000 /* Double-precision FP for ARMv8. */
94+#define FPU_NEON_EXT_ARMV8 0x00010000 /* Neon for ARMv8. */
95+#define FPU_CRYPTO_EXT_ARMV8 0x00008000 /* Crypto for ARMv8. */
96+#define CRC_EXT_ARMV8 0x00004000 /* CRC32 for ARMv8. */
97+#define FPU_VFP_EXT_ARMV8xD 0x00002000 /* Single-precision FP for ARMv8. */
98+#define FPU_NEON_EXT_RDMA 0x00001000 /* v8.1 Adv.SIMD extensions. */
99+#define FPU_NEON_EXT_DOTPROD 0x00000800 /* Dot Product extension. */
122100
123101 /* Architectures are the sum of the base and extensions. The ARM ARM (rev E)
124102 defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T,
125103 ARMv5xM, ARMv5, ARMv5TxM, ARMv5T, ARMv5TExP, ARMv5TE. To these we add
126104 three more to cover cores prior to ARM6. Finally, there are cores which
127105 implement further extensions in the co-processor space. */
128−#define ARM_AEXT_V1 ARM_EXT_V1
129−#define ARM_AEXT_V2 (ARM_AEXT_V1 | ARM_EXT_V2)
130−#define ARM_AEXT_V2S (ARM_AEXT_V2 | ARM_EXT_V2S)
131−#define ARM_AEXT_V3 (ARM_AEXT_V2S | ARM_EXT_V3)
132−#define ARM_AEXT_V3M (ARM_AEXT_V3 | ARM_EXT_V3M)
133−#define ARM_AEXT_V4xM (ARM_AEXT_V3 | ARM_EXT_V4)
134−#define ARM_AEXT_V4 (ARM_AEXT_V3M | ARM_EXT_V4)
135−#define ARM_AEXT_V4TxM (ARM_AEXT_V4xM | ARM_EXT_V4T | ARM_EXT_OS)
136−#define ARM_AEXT_V4T (ARM_AEXT_V4 | ARM_EXT_V4T | ARM_EXT_OS)
137−#define ARM_AEXT_V5xM (ARM_AEXT_V4xM | ARM_EXT_V5)
138−#define ARM_AEXT_V5 (ARM_AEXT_V4 | ARM_EXT_V5)
139−#define ARM_AEXT_V5TxM (ARM_AEXT_V5xM | ARM_EXT_V4T | ARM_EXT_V5T \
140− | ARM_EXT_OS)
141−#define ARM_AEXT_V5T (ARM_AEXT_V5 | ARM_EXT_V4T | ARM_EXT_V5T \
142− | ARM_EXT_OS)
143−#define ARM_AEXT_V5TExP (ARM_AEXT_V5T | ARM_EXT_V5ExP)
144−#define ARM_AEXT_V5TE (ARM_AEXT_V5TExP | ARM_EXT_V5E)
145−#define ARM_AEXT_V5TEJ (ARM_AEXT_V5TE | ARM_EXT_V5J)
146−#define ARM_AEXT_V6 (ARM_AEXT_V5TEJ | ARM_EXT_V6)
147−#define ARM_AEXT_V6K (ARM_AEXT_V6 | ARM_EXT_V6K)
148−#define ARM_AEXT_V6Z (ARM_AEXT_V6K | ARM_EXT_SEC)
149−#define ARM_AEXT_V6KZ (ARM_AEXT_V6K | ARM_EXT_SEC)
150−#define ARM_AEXT_V6T2 (ARM_AEXT_V6 | ARM_EXT_V6T2 | ARM_EXT_V6_NOTM \
151− | ARM_EXT_THUMB_MSR \
152− | ARM_EXT_V6_DSP )
153−#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K)
154−#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC)
155−#define ARM_AEXT_V6KZT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC)
156−#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER)
157−#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A)
158−#define ARM_AEXT_V7VE (ARM_AEXT_V7A | ARM_EXT_DIV | ARM_EXT_ADIV \
159− | ARM_EXT_VIRT | ARM_EXT_SEC \
160− | ARM_EXT_MP)
161−#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
162−#define ARM_AEXT_NOTM (ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J \
163− | ARM_EXT_V6_DSP \
164− | ARM_EXT_V6_NOTM)
165−#define ARM_AEXT_V6M ((ARM_AEXT_V6K | ARM_EXT_V6M | ARM_EXT_BARRIER \
166− | ARM_EXT_THUMB_MSR) \
167− & ~(ARM_AEXT_NOTM | ARM_EXT_OS))
168−#define ARM_AEXT_V6SM (ARM_AEXT_V6M | ARM_EXT_OS)
169−#define ARM_AEXT_V7M ((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M \
170− | ARM_EXT_DIV) \
171− & ~ARM_AEXT_NOTM)
172−#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M)
173−#define ARM_AEXT_V7EM (ARM_AEXT_V7M | ARM_EXT_V5ExP | ARM_EXT_V6_DSP)
174−#define ARM_AEXT_V8A (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC \
175− | ARM_EXT_DIV | ARM_EXT_ADIV \
176− | ARM_EXT_VIRT | ARM_EXT_V8)
106+#define ARM_AEXT_V1 ARM_EXT_V1
107+#define ARM_AEXT_V2 (ARM_AEXT_V1 | ARM_EXT_V2)
108+#define ARM_AEXT_V2S (ARM_AEXT_V2 | ARM_EXT_V2S)
109+#define ARM_AEXT_V3 (ARM_AEXT_V2S | ARM_EXT_V3)
110+#define ARM_AEXT_V3M (ARM_AEXT_V3 | ARM_EXT_V3M)
111+#define ARM_AEXT_V4xM (ARM_AEXT_V3 | ARM_EXT_V4)
112+#define ARM_AEXT_V4 (ARM_AEXT_V3M | ARM_EXT_V4)
113+#define ARM_AEXT_V4TxM (ARM_AEXT_V4xM | ARM_EXT_V4T | ARM_EXT_OS)
114+#define ARM_AEXT_V4T (ARM_AEXT_V4 | ARM_EXT_V4T | ARM_EXT_OS)
115+#define ARM_AEXT_V5xM (ARM_AEXT_V4xM | ARM_EXT_V5)
116+#define ARM_AEXT_V5 (ARM_AEXT_V4 | ARM_EXT_V5)
117+#define ARM_AEXT_V5TxM (ARM_AEXT_V5xM | ARM_EXT_V4T | ARM_EXT_V5T \
118+ | ARM_EXT_OS)
119+#define ARM_AEXT_V5T (ARM_AEXT_V5 | ARM_EXT_V4T | ARM_EXT_V5T \
120+ | ARM_EXT_OS)
121+#define ARM_AEXT_V5TExP (ARM_AEXT_V5T | ARM_EXT_V5ExP)
122+#define ARM_AEXT_V5TE (ARM_AEXT_V5TExP | ARM_EXT_V5E)
123+#define ARM_AEXT_V5TEJ (ARM_AEXT_V5TE | ARM_EXT_V5J)
124+#define ARM_AEXT_V6 (ARM_AEXT_V5TEJ | ARM_EXT_V6)
125+#define ARM_AEXT_V6K (ARM_AEXT_V6 | ARM_EXT_V6K)
126+#define ARM_AEXT_V6Z (ARM_AEXT_V6K | ARM_EXT_SEC)
127+#define ARM_AEXT_V6KZ (ARM_AEXT_V6K | ARM_EXT_SEC)
128+#define ARM_AEXT_V6T2 (ARM_AEXT_V6 \
129+ | ARM_EXT_V6T2 | ARM_EXT_V6_NOTM | ARM_EXT_THUMB_MSR \
130+ | ARM_EXT_V6_DSP )
131+#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K)
132+#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC)
133+#define ARM_AEXT_V6KZT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC)
134+#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER)
135+#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A)
136+#define ARM_AEXT_V7VE (ARM_AEXT_V7A | ARM_EXT_DIV | ARM_EXT_ADIV \
137+ | ARM_EXT_VIRT | ARM_EXT_SEC | ARM_EXT_MP)
138+#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
139+#define ARM_AEXT_NOTM \
140+ (ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J | ARM_EXT_V6_NOTM \
141+ | ARM_EXT_V6_DSP )
142+#define ARM_AEXT_V6M_ONLY \
143+ ((ARM_EXT_BARRIER | ARM_EXT_V6M | ARM_EXT_THUMB_MSR) & ~(ARM_AEXT_NOTM))
144+#define ARM_AEXT_V6M \
145+ ((ARM_AEXT_V6K | ARM_AEXT_V6M_ONLY) & ~(ARM_AEXT_NOTM | ARM_EXT_OS))
146+#define ARM_AEXT_V6SM (ARM_AEXT_V6M | ARM_EXT_OS)
147+#define ARM_AEXT_V7M \
148+ ((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M | ARM_EXT_DIV) \
149+ & ~(ARM_AEXT_NOTM))
150+#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M)
151+#define ARM_AEXT_V7EM \
152+ (ARM_AEXT_V7M | ARM_EXT_V5ExP | ARM_EXT_V6_DSP)
153+#define ARM_AEXT_V8A \
154+ (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC | ARM_EXT_DIV | ARM_EXT_ADIV \
155+ | ARM_EXT_VIRT | ARM_EXT_V8)
177156 #define ARM_AEXT2_V8AR (ARM_EXT2_V6T2_V8M | ARM_EXT2_ATOMICS)
178−#define ARM_AEXT2_V8A (ARM_AEXT2_V8AR | ARM_EXT2_V8A)
179−#define ARM_AEXT2_V8_1A (ARM_AEXT2_V8A | ARM_EXT2_PAN)
180−#define ARM_AEXT2_V8_2A (ARM_AEXT2_V8_1A | ARM_EXT2_V8_2A | ARM_EXT2_RAS)
181−#define ARM_AEXT2_V8_3A (ARM_AEXT2_V8_2A | ARM_EXT2_V8_3A)
182−#define ARM_AEXT2_V8_4A (ARM_AEXT2_V8_3A | ARM_EXT2_FP16_FML \
183− | ARM_EXT2_V8_4A)
184−#define ARM_AEXT2_V8_5A (ARM_AEXT2_V8_4A | ARM_EXT2_V8_5A | ARM_EXT2_SB \
185− | ARM_EXT2_PREDRES)
186−#define ARM_AEXT2_V8_6A (ARM_AEXT2_V8_5A | ARM_EXT2_V8_6A | ARM_EXT2_BF16)
187−#define ARM_AEXT_V8M_BASE (ARM_AEXT_V6SM | ARM_EXT_DIV)
188−#define ARM_AEXT_V8M_MAIN ARM_AEXT_V7M
189−#define ARM_AEXT_V8M_MAIN_DSP ARM_AEXT_V7EM
190−#define ARM_AEXT2_V8M_BASE (ARM_EXT2_V8M | ARM_EXT2_ATOMICS \
191− | ARM_EXT2_V6T2_V8M)
192−#define ARM_AEXT2_V8M_MAIN (ARM_AEXT2_V8M_BASE | ARM_EXT2_V8M_MAIN)
193−#define ARM_AEXT2_V8M_MAIN_DSP ARM_AEXT2_V8M_MAIN
194−#define ARM_AEXT_V8R ARM_AEXT_V8A
195−#define ARM_AEXT2_V8R (ARM_EXT2_V8R | ARM_AEXT2_V8AR)
196−#define ARM_AEXT_V8_1M_MAIN ARM_AEXT_V8M_MAIN
197−#define ARM_AEXT2_V8_1M_MAIN (ARM_AEXT2_V8M_MAIN | ARM_EXT2_V8_1M_MAIN \
198− | ARM_EXT2_FP16_INST)
157+#define ARM_AEXT2_V8A (ARM_AEXT2_V8AR | ARM_EXT2_V8A)
158+#define ARM_AEXT2_V8_1A (ARM_AEXT2_V8A | ARM_EXT2_PAN)
159+#define ARM_AEXT2_V8_2A (ARM_AEXT2_V8_1A | ARM_EXT2_V8_2A | ARM_EXT2_RAS)
160+#define ARM_AEXT2_V8_3A (ARM_AEXT2_V8_2A | ARM_EXT2_V8_3A)
161+#define ARM_AEXT2_V8_4A (ARM_AEXT2_V8_3A | ARM_EXT2_FP16_FML | ARM_EXT2_V8_4A)
162+#define ARM_AEXT_V8M_BASE (ARM_AEXT_V6SM | ARM_EXT_DIV)
163+#define ARM_AEXT_V8M_MAIN ARM_AEXT_V7M
164+#define ARM_AEXT_V8M_MAIN_DSP ARM_AEXT_V7EM
165+#define ARM_AEXT2_V8M (ARM_EXT2_V8M | ARM_EXT2_ATOMICS | ARM_EXT2_V6T2_V8M)
166+#define ARM_AEXT2_V8M_MAIN (ARM_AEXT2_V8M | ARM_EXT2_V8M_MAIN)
167+#define ARM_AEXT2_V8M_MAIN_DSP ARM_AEXT2_V8M_MAIN
168+#define ARM_AEXT_V8R ARM_AEXT_V8A
169+#define ARM_AEXT2_V8R ARM_AEXT2_V8AR
199170
200171 /* Processors with specific extensions in the co-processor space. */
201172 #define ARM_ARCH_XSCALE ARM_FEATURE_LOW (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
@@ -205,185 +176,136 @@ · 3 unmodified lines
205176 ARM_FEATURE_LOW (ARM_AEXT_V5TE, ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT \
206177 | ARM_CEXT_IWMMXT2)
207178
208−#define FPU_VFP_V1xD (FPU_VFP_EXT_V1xD | FPU_ENDIAN_PURE)
209−#define FPU_VFP_V1 (FPU_VFP_V1xD | FPU_VFP_EXT_V1)
210−#define FPU_VFP_V2 (FPU_VFP_V1 | FPU_VFP_EXT_V2)
211−#define FPU_VFP_V3D16 (FPU_VFP_V2 | FPU_VFP_EXT_V3xD \
212− | FPU_VFP_EXT_V3)
213−#define FPU_VFP_V3 (FPU_VFP_V3D16 | FPU_VFP_EXT_D32)
214−#define FPU_VFP_V3xD (FPU_VFP_V1xD | FPU_VFP_EXT_V2 \
215− | FPU_VFP_EXT_V3xD)
216−#define FPU_VFP_V4D16 (FPU_VFP_V3D16 | FPU_VFP_EXT_FP16 \
217− | FPU_VFP_EXT_FMA)
218−#define FPU_VFP_V4 (FPU_VFP_V3 | FPU_VFP_EXT_FP16 \
219− | FPU_VFP_EXT_FMA)
220−#define FPU_VFP_V4_SP_D16 (FPU_VFP_V3xD | FPU_VFP_EXT_FP16 \
221− | FPU_VFP_EXT_FMA)
222−#define FPU_VFP_V5D16 (FPU_VFP_V4D16 | FPU_VFP_EXT_ARMV8xD \
223− | FPU_VFP_EXT_ARMV8)
179+#define FPU_VFP_V1xD (FPU_VFP_EXT_V1xD | FPU_ENDIAN_PURE)
180+#define FPU_VFP_V1 (FPU_VFP_V1xD | FPU_VFP_EXT_V1)
181+#define FPU_VFP_V2 (FPU_VFP_V1 | FPU_VFP_EXT_V2)
182+#define FPU_VFP_V3D16 (FPU_VFP_V2 | FPU_VFP_EXT_V3xD | FPU_VFP_EXT_V3)
183+#define FPU_VFP_V3 (FPU_VFP_V3D16 | FPU_VFP_EXT_D32)
184+#define FPU_VFP_V3xD (FPU_VFP_V1xD | FPU_VFP_EXT_V2 | FPU_VFP_EXT_V3xD)
185+#define FPU_VFP_V4D16 (FPU_VFP_V3D16 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)
186+#define FPU_VFP_V4 (FPU_VFP_V3 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)
187+#define FPU_VFP_V4_SP_D16 (FPU_VFP_V3xD | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)
188+#define FPU_VFP_V5D16 (FPU_VFP_V4D16 | FPU_VFP_EXT_ARMV8xD | FPU_VFP_EXT_ARMV8)
224189 #define FPU_VFP_V5_SP_D16 (FPU_VFP_V4_SP_D16 | FPU_VFP_EXT_ARMV8xD)
225−#define FPU_VFP_ARMV8 (FPU_VFP_V4 | FPU_VFP_EXT_ARMV8 \
226− | FPU_VFP_EXT_ARMV8xD)
227−#define FPU_NEON_ARMV8 (FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA \
228− | FPU_NEON_EXT_ARMV8)
229−#define FPU_NEON_ARMV8_1 (FPU_NEON_ARMV8 | FPU_NEON_EXT_RDMA)
230−#define FPU_CRYPTO_ARMV8 (FPU_CRYPTO_EXT_ARMV8)
231−#define FPU_VFP_HARD (FPU_VFP_EXT_V1xD | FPU_VFP_EXT_V1 \
232− | FPU_VFP_EXT_V2 \
233− | FPU_VFP_EXT_V3xD \
234− | FPU_VFP_EXT_FMA \
235− | FPU_NEON_EXT_FMA \
236− | FPU_VFP_EXT_V3 \
237− | FPU_NEON_EXT_V1 \
238− | FPU_VFP_EXT_D32)
239−#define FPU_FPA (FPU_FPA_EXT_V1 | FPU_FPA_EXT_V2)
190+#define FPU_VFP_ARMV8 (FPU_VFP_V4 | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)
191+#define FPU_NEON_ARMV8 (FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA | FPU_NEON_EXT_ARMV8)
192+#define FPU_CRYPTO_ARMV8 (FPU_CRYPTO_EXT_ARMV8)
193+#define FPU_VFP_HARD (FPU_VFP_EXT_V1xD | FPU_VFP_EXT_V1 | FPU_VFP_EXT_V2 \
194+ | FPU_VFP_EXT_V3xD | FPU_VFP_EXT_FMA | FPU_NEON_EXT_FMA \
195+ | FPU_VFP_EXT_V3 | FPU_NEON_EXT_V1 | FPU_VFP_EXT_D32)
196+#define FPU_FPA (FPU_FPA_EXT_V1 | FPU_FPA_EXT_V2)
240197
241198 /* Deprecated. */
242−#define FPU_ARCH_VFP ARM_FEATURE_COPROC (FPU_ENDIAN_PURE)
199+#define FPU_ARCH_VFP ARM_FEATURE_COPROC (FPU_ENDIAN_PURE)
243200
244−#define FPU_ARCH_FPE ARM_FEATURE_COPROC (FPU_FPA_EXT_V1)
245−#define FPU_ARCH_FPA ARM_FEATURE_COPROC (FPU_FPA)
201+#define FPU_ARCH_FPE ARM_FEATURE_COPROC (FPU_FPA_EXT_V1)
202+#define FPU_ARCH_FPA ARM_FEATURE_COPROC (FPU_FPA)
246203
247−#define FPU_ARCH_VFP_V1xD ARM_FEATURE_COPROC (FPU_VFP_V1xD)
248−#define FPU_ARCH_VFP_V1 ARM_FEATURE_COPROC (FPU_VFP_V1)
249−#define FPU_ARCH_VFP_V2 ARM_FEATURE_COPROC (FPU_VFP_V2)
204+#define FPU_ARCH_VFP_V1xD ARM_FEATURE_COPROC (FPU_VFP_V1xD)
205+#define FPU_ARCH_VFP_V1 ARM_FEATURE_COPROC (FPU_VFP_V1)
206+#define FPU_ARCH_VFP_V2 ARM_FEATURE_COPROC (FPU_VFP_V2)
250207 #define FPU_ARCH_VFP_V3D16 ARM_FEATURE_COPROC (FPU_VFP_V3D16)
251−#define FPU_ARCH_VFP_V3D16_FP16 ARM_FEATURE_COPROC (FPU_VFP_V3D16 \
252− | FPU_VFP_EXT_FP16)
253−#define FPU_ARCH_VFP_V3 ARM_FEATURE_COPROC (FPU_VFP_V3)
254−#define FPU_ARCH_VFP_V3_FP16 ARM_FEATURE_COPROC (FPU_VFP_V3 \
255− | FPU_VFP_EXT_FP16)
208+#define FPU_ARCH_VFP_V3D16_FP16 \
209+ ARM_FEATURE_COPROC (FPU_VFP_V3D16 | FPU_VFP_EXT_FP16)
210+#define FPU_ARCH_VFP_V3 ARM_FEATURE_COPROC (FPU_VFP_V3)
211+#define FPU_ARCH_VFP_V3_FP16 ARM_FEATURE_COPROC (FPU_VFP_V3 | FPU_VFP_EXT_FP16)
256212 #define FPU_ARCH_VFP_V3xD ARM_FEATURE_COPROC (FPU_VFP_V3xD)
257−#define FPU_ARCH_VFP_V3xD_FP16 ARM_FEATURE_COPROC (FPU_VFP_V3xD \
258− | FPU_VFP_EXT_FP16)
259−#define FPU_ARCH_NEON_V1 ARM_FEATURE_COPROC (FPU_NEON_EXT_V1)
260−#define FPU_ARCH_VFP_V3_PLUS_NEON_V1 \
261− ARM_FEATURE_COPROC (FPU_VFP_V3 \
262− | FPU_NEON_EXT_V1)
263−#define FPU_ARCH_NEON_FP16 ARM_FEATURE_COPROC (FPU_VFP_V3 \
264− | FPU_NEON_EXT_V1 \
265− | FPU_VFP_EXT_FP16)
266−#define FPU_ARCH_VFP_HARD ARM_FEATURE_COPROC (FPU_VFP_HARD)
267−#define FPU_ARCH_VFP_V4 ARM_FEATURE_COPROC (FPU_VFP_V4)
268−#define FPU_ARCH_VFP_V4D16 ARM_FEATURE_COPROC (FPU_VFP_V4D16)
269−#define FPU_ARCH_VFP_V4_SP_D16 ARM_FEATURE_COPROC (FPU_VFP_V4_SP_D16)
270−#define FPU_ARCH_VFP_V5D16 ARM_FEATURE_COPROC (FPU_VFP_V5D16)
271−#define FPU_ARCH_VFP_V5_SP_D16 ARM_FEATURE_COPROC (FPU_VFP_V5_SP_D16)
272−#define FPU_ARCH_NEON_VFP_V4 ARM_FEATURE_COPROC (FPU_VFP_V4 \
273− | FPU_NEON_EXT_V1 \
274− | FPU_NEON_EXT_FMA)
275−#define FPU_ARCH_VFP_ARMV8 ARM_FEATURE_COPROC (FPU_VFP_ARMV8)
276−#define FPU_ARCH_NEON_VFP_ARMV8 ARM_FEATURE_COPROC (FPU_NEON_ARMV8 \
277− | FPU_VFP_ARMV8)
278−#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8 \
279− ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 \
280− | FPU_NEON_ARMV8 \
281− | FPU_VFP_ARMV8)
282−#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD \
283− ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 \
284− | FPU_NEON_ARMV8 \
285− | FPU_VFP_ARMV8 \
286− | FPU_NEON_EXT_DOTPROD)
287−#define FPU_ARCH_NEON_VFP_ARMV8_1 \
288− ARM_FEATURE_COPROC (FPU_NEON_ARMV8_1 \
289− | FPU_VFP_ARMV8)
290−#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \
291− ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 \
292− | FPU_NEON_ARMV8_1 \
293− | FPU_VFP_ARMV8)
294−
295−#define FPU_ARCH_DOTPROD_NEON_VFP_ARMV8 \
296− ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD \
297− | FPU_NEON_ARMV8_1 \
298− | FPU_VFP_ARMV8)
299−
300−#define FPU_ARCH_NEON_VFP_ARMV8_2_FP16 \
301− ARM_FEATURE (0, ARM_EXT2_FP16_INST, \
302− FPU_NEON_ARMV8_1 | FPU_VFP_ARMV8)
303−
304−#define FPU_ARCH_NEON_VFP_ARMV8_2_FP16FML \
305− ARM_FEATURE (0, ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML, \
306− FPU_NEON_ARMV8_1 | FPU_VFP_ARMV8)
307−
308−#define FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML \
309− ARM_FEATURE (0, ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML, \
310− FPU_NEON_ARMV8_1 | FPU_VFP_ARMV8 | FPU_NEON_EXT_DOTPROD)
213+#define FPU_ARCH_VFP_V3xD_FP16 ARM_FEATURE_COPROC (FPU_VFP_V3xD \
214+ | FPU_VFP_EXT_FP16)
215+#define FPU_ARCH_NEON_V1 ARM_FEATURE_COPROC (FPU_NEON_EXT_V1)
216+#define FPU_ARCH_VFP_V3_PLUS_NEON_V1 \
217+ ARM_FEATURE_COPROC (FPU_VFP_V3 | FPU_NEON_EXT_V1)
218+#define FPU_ARCH_NEON_FP16 \
219+ ARM_FEATURE_COPROC (FPU_VFP_V3 | FPU_NEON_EXT_V1 | FPU_VFP_EXT_FP16)
220+#define FPU_ARCH_VFP_HARD ARM_FEATURE_COPROC (FPU_VFP_HARD)
221+#define FPU_ARCH_VFP_V4 ARM_FEATURE_COPROC (FPU_VFP_V4)
222+#define FPU_ARCH_VFP_V4D16 ARM_FEATURE_COPROC (FPU_VFP_V4D16)
223+#define FPU_ARCH_VFP_V4_SP_D16 ARM_FEATURE_COPROC (FPU_VFP_V4_SP_D16)
224+#define FPU_ARCH_VFP_V5D16 ARM_FEATURE_COPROC (FPU_VFP_V5D16)
225+#define FPU_ARCH_VFP_V5_SP_D16 ARM_FEATURE_COPROC (FPU_VFP_V5_SP_D16)
226+#define FPU_ARCH_NEON_VFP_V4 \
227+ ARM_FEATURE_COPROC (FPU_VFP_V4 | FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA)
228+#define FPU_ARCH_VFP_ARMV8 ARM_FEATURE_COPROC (FPU_VFP_ARMV8)
229+#define FPU_ARCH_NEON_VFP_ARMV8 ARM_FEATURE_COPROC (FPU_NEON_ARMV8 \
230+ | FPU_VFP_ARMV8)
231+#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8 \
232+ ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8)
233+#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD \
234+ ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \
235+ | FPU_NEON_EXT_DOTPROD)
236+#define ARCH_CRC_ARMV8 ARM_FEATURE_COPROC (CRC_EXT_ARMV8)
237+#define FPU_ARCH_NEON_VFP_ARMV8_1 \
238+ ARM_FEATURE_COPROC (FPU_NEON_ARMV8 \
239+ | FPU_VFP_ARMV8 \
240+ | FPU_NEON_EXT_RDMA)
241+#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \
242+ ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \
243+ | FPU_NEON_EXT_RDMA)
244+#define FPU_ARCH_DOTPROD_NEON_VFP_ARMV8 \
245+ ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD | FPU_NEON_ARMV8 | FPU_VFP_ARMV8)
311246
312−#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_4 \
313− ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 \
314− | FPU_NEON_ARMV8_1 \
315− | FPU_VFP_ARMV8 \
316− | FPU_NEON_EXT_DOTPROD)
317247
318248 #define FPU_ARCH_ENDIAN_PURE ARM_FEATURE_COPROC (FPU_ENDIAN_PURE)
319249
320250 #define FPU_ARCH_MAVERICK ARM_FEATURE_COPROC (FPU_MAVERICK)
321251
322−#define ARM_ARCH_V1 ARM_FEATURE_CORE_LOW (ARM_AEXT_V1)
323−#define ARM_ARCH_V2 ARM_FEATURE_CORE_LOW (ARM_AEXT_V2)
324−#define ARM_ARCH_V2S ARM_FEATURE_CORE_LOW (ARM_AEXT_V2S)
325−#define ARM_ARCH_V3 ARM_FEATURE_CORE_LOW (ARM_AEXT_V3)
326−#define ARM_ARCH_V3M ARM_FEATURE_CORE_LOW (ARM_AEXT_V3M)
327−#define ARM_ARCH_V4xM ARM_FEATURE_CORE_LOW (ARM_AEXT_V4xM)
328−#define ARM_ARCH_V4 ARM_FEATURE_CORE_LOW (ARM_AEXT_V4)
329−#define ARM_ARCH_V4TxM ARM_FEATURE_CORE_LOW (ARM_AEXT_V4TxM)
330−#define ARM_ARCH_V4T ARM_FEATURE_CORE_LOW (ARM_AEXT_V4T)
331−#define ARM_ARCH_V5xM ARM_FEATURE_CORE_LOW (ARM_AEXT_V5xM)
332−#define ARM_ARCH_V5 ARM_FEATURE_CORE_LOW (ARM_AEXT_V5)
333−#define ARM_ARCH_V5TxM ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TxM)
334−#define ARM_ARCH_V5T ARM_FEATURE_CORE_LOW (ARM_AEXT_V5T)
335−#define ARM_ARCH_V5TExP ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TExP)
336−#define ARM_ARCH_V5TE ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TE)
337−#define ARM_ARCH_V5TEJ ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TEJ)
338−#define ARM_ARCH_V6 ARM_FEATURE_CORE_LOW (ARM_AEXT_V6)
339−#define ARM_ARCH_V6K ARM_FEATURE_CORE_LOW (ARM_AEXT_V6K)
340−#define ARM_ARCH_V6Z ARM_FEATURE_CORE_LOW (ARM_AEXT_V6Z)
341−#define ARM_ARCH_V6KZ ARM_FEATURE_CORE_LOW (ARM_AEXT_V6KZ)
342−#define ARM_ARCH_V6T2 ARM_FEATURE_CORE (ARM_AEXT_V6T2, ARM_EXT2_V6T2_V8M)
343−#define ARM_ARCH_V6KT2 ARM_FEATURE_CORE (ARM_AEXT_V6KT2, ARM_EXT2_V6T2_V8M)
344−#define ARM_ARCH_V6ZT2 ARM_FEATURE_CORE (ARM_AEXT_V6ZT2, ARM_EXT2_V6T2_V8M)
345−#define ARM_ARCH_V6KZT2 ARM_FEATURE_CORE (ARM_AEXT_V6KZT2, ARM_EXT2_V6T2_V8M)
346−#define ARM_ARCH_V6M ARM_FEATURE_CORE_LOW (ARM_AEXT_V6M)
347−#define ARM_ARCH_V6SM ARM_FEATURE_CORE_LOW (ARM_AEXT_V6SM)
348−#define ARM_ARCH_V7 ARM_FEATURE_CORE (ARM_AEXT_V7, ARM_EXT2_V6T2_V8M)
349−#define ARM_ARCH_V7A ARM_FEATURE_CORE (ARM_AEXT_V7A, ARM_EXT2_V6T2_V8M)
350−#define ARM_ARCH_V7VE ARM_FEATURE_CORE (ARM_AEXT_V7VE, ARM_EXT2_V6T2_V8M)
351−#define ARM_ARCH_V7R ARM_FEATURE_CORE (ARM_AEXT_V7R, ARM_EXT2_V6T2_V8M)
352−#define ARM_ARCH_V7M ARM_FEATURE_CORE (ARM_AEXT_V7M, ARM_EXT2_V6T2_V8M)
353−#define ARM_ARCH_V7EM ARM_FEATURE_CORE (ARM_AEXT_V7EM, ARM_EXT2_V6T2_V8M)
354−#define ARM_ARCH_V8A ARM_FEATURE_CORE (ARM_AEXT_V8A, ARM_AEXT2_V8A)
355−#define ARM_ARCH_V8A_CRC ARM_FEATURE (ARM_AEXT_V8A, \
356− ARM_AEXT2_V8A | ARM_EXT2_CRC)
357−#define ARM_ARCH_V8_1A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_1A \
358− | ARM_EXT2_CRC, FPU_NEON_EXT_RDMA)
359−#define ARM_ARCH_V8_2A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_2A \
360− | ARM_EXT2_CRC, FPU_NEON_EXT_RDMA)
361−#define ARM_ARCH_V8_3A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_3A \
362− | ARM_EXT2_CRC, FPU_NEON_EXT_RDMA)
363−#define ARM_ARCH_V8_4A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_4A \
364− | ARM_EXT2_CRC, FPU_NEON_EXT_RDMA \
365− | FPU_NEON_EXT_DOTPROD)
366−#define ARM_ARCH_V8_5A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_5A \
367− | ARM_EXT2_CRC, FPU_NEON_EXT_RDMA \
368− | FPU_NEON_EXT_DOTPROD)
369−#define ARM_ARCH_V8_6A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_6A \
370− | ARM_EXT2_CRC, FPU_NEON_EXT_RDMA \
371− | FPU_NEON_EXT_DOTPROD)
372−#define ARM_ARCH_V8M_BASE ARM_FEATURE_CORE (ARM_AEXT_V8M_BASE, \
373− ARM_AEXT2_V8M_BASE)
374−#define ARM_ARCH_V8M_MAIN ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN, \
375− ARM_AEXT2_V8M_MAIN)
376−#define ARM_ARCH_V8M_MAIN_DSP ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN_DSP, \
377− ARM_AEXT2_V8M_MAIN_DSP)
378−#define ARM_ARCH_V8R ARM_FEATURE_CORE (ARM_AEXT_V8R, ARM_AEXT2_V8R)
379−#define ARM_ARCH_V8_1M_MAIN ARM_FEATURE_CORE (ARM_AEXT_V8_1M_MAIN, \
380− ARM_AEXT2_V8_1M_MAIN)
252+#define ARM_ARCH_V1 ARM_FEATURE_CORE_LOW (ARM_AEXT_V1)
253+#define ARM_ARCH_V2 ARM_FEATURE_CORE_LOW (ARM_AEXT_V2)
254+#define ARM_ARCH_V2S ARM_FEATURE_CORE_LOW (ARM_AEXT_V2S)
255+#define ARM_ARCH_V3 ARM_FEATURE_CORE_LOW (ARM_AEXT_V3)
256+#define ARM_ARCH_V3M ARM_FEATURE_CORE_LOW (ARM_AEXT_V3M)
257+#define ARM_ARCH_V4xM ARM_FEATURE_CORE_LOW (ARM_AEXT_V4xM)
258+#define ARM_ARCH_V4 ARM_FEATURE_CORE_LOW (ARM_AEXT_V4)
259+#define ARM_ARCH_V4TxM ARM_FEATURE_CORE_LOW (ARM_AEXT_V4TxM)
260+#define ARM_ARCH_V4T ARM_FEATURE_CORE_LOW (ARM_AEXT_V4T)
261+#define ARM_ARCH_V5xM ARM_FEATURE_CORE_LOW (ARM_AEXT_V5xM)
262+#define ARM_ARCH_V5 ARM_FEATURE_CORE_LOW (ARM_AEXT_V5)
263+#define ARM_ARCH_V5TxM ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TxM)
264+#define ARM_ARCH_V5T ARM_FEATURE_CORE_LOW (ARM_AEXT_V5T)
265+#define ARM_ARCH_V5TExP ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TExP)
266+#define ARM_ARCH_V5TE ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TE)
267+#define ARM_ARCH_V5TEJ ARM_FEATURE_CORE_LOW (ARM_AEXT_V5TEJ)
268+#define ARM_ARCH_V6 ARM_FEATURE_CORE_LOW (ARM_AEXT_V6)
269+#define ARM_ARCH_V6K ARM_FEATURE_CORE_LOW (ARM_AEXT_V6K)
270+#define ARM_ARCH_V6Z ARM_FEATURE_CORE_LOW (ARM_AEXT_V6Z)
271+#define ARM_ARCH_V6KZ ARM_FEATURE_CORE_LOW (ARM_AEXT_V6KZ)
272+#define ARM_ARCH_V6T2 ARM_FEATURE_CORE (ARM_AEXT_V6T2, ARM_EXT2_V6T2_V8M)
273+#define ARM_ARCH_V6KT2 ARM_FEATURE_CORE (ARM_AEXT_V6KT2, ARM_EXT2_V6T2_V8M)
274+#define ARM_ARCH_V6ZT2 ARM_FEATURE_CORE (ARM_AEXT_V6ZT2, ARM_EXT2_V6T2_V8M)
275+#define ARM_ARCH_V6KZT2 ARM_FEATURE_CORE (ARM_AEXT_V6KZT2, ARM_EXT2_V6T2_V8M)
276+#define ARM_ARCH_V6M ARM_FEATURE_CORE_LOW (ARM_AEXT_V6M)
277+#define ARM_ARCH_V6SM ARM_FEATURE_CORE_LOW (ARM_AEXT_V6SM)
278+#define ARM_ARCH_V7 ARM_FEATURE_CORE (ARM_AEXT_V7, ARM_EXT2_V6T2_V8M)
279+#define ARM_ARCH_V7A ARM_FEATURE_CORE (ARM_AEXT_V7A, ARM_EXT2_V6T2_V8M)
280+#define ARM_ARCH_V7VE ARM_FEATURE_CORE (ARM_AEXT_V7VE, ARM_EXT2_V6T2_V8M)
281+#define ARM_ARCH_V7R ARM_FEATURE_CORE (ARM_AEXT_V7R, ARM_EXT2_V6T2_V8M)
282+#define ARM_ARCH_V7M ARM_FEATURE_CORE (ARM_AEXT_V7M, ARM_EXT2_V6T2_V8M)
283+#define ARM_ARCH_V7EM ARM_FEATURE_CORE (ARM_AEXT_V7EM, ARM_EXT2_V6T2_V8M)
284+#define ARM_ARCH_V8A ARM_FEATURE_CORE (ARM_AEXT_V8A, ARM_AEXT2_V8A)
285+#define ARM_ARCH_V8A_CRC ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8A, \
286+ CRC_EXT_ARMV8)
287+#define ARM_ARCH_V8_1A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_1A, \
288+ CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
289+#define ARM_ARCH_V8_2A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_2A, \
290+ CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
291+#define ARM_ARCH_V8_3A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_3A, \
292+ CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
293+#define ARM_ARCH_V8_4A ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_4A, \
294+ CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA \
295+ | FPU_NEON_EXT_DOTPROD)
296+#define ARM_ARCH_V8M_BASE ARM_FEATURE_CORE (ARM_AEXT_V8M_BASE, ARM_AEXT2_V8M)
297+#define ARM_ARCH_V8M_MAIN ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN, \
298+ ARM_AEXT2_V8M_MAIN)
299+#define ARM_ARCH_V8M_MAIN_DSP ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN_DSP, \
300+ ARM_AEXT2_V8M_MAIN_DSP)
301+#define ARM_ARCH_V8R ARM_FEATURE_CORE (ARM_AEXT_V8R, ARM_AEXT2_V8R)
381302
382303 /* Some useful combinations: */
383304 #define ARM_ARCH_NONE ARM_FEATURE_LOW (0, 0)
384305 #define FPU_NONE ARM_FEATURE_LOW (0, 0)
385−#define ARM_ANY ARM_FEATURE (-1, -1 & ~ (ARM_EXT2_MVE | ARM_EXT2_MVE_FP), 0) /* Any basic core. */
306+#define ARM_ANY ARM_FEATURE (-1, -1, 0) /* Any basic core. */
386307 #define FPU_ANY ARM_FEATURE_COPROC (-1) /* Any FPU. */
308+#define ARM_FEATURE_ALL ARM_FEATURE (-1, -1, -1)/* All CPU and FPU features. */
387309 #define FPU_ANY_HARD ARM_FEATURE_COPROC (FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK)
388310 /* Extensions containing some Thumb-2 instructions. If any is present, Thumb
389311 ISA is Thumb-2. */
@@ -399,6 +321,8 @@ · 9 unmodified lines
399321 /* v7-r+idiv. */
400322 #define ARM_ARCH_V7R_IDIV \
401323 ARM_FEATURE_CORE (ARM_AEXT_V7R | ARM_EXT_ADIV, ARM_EXT2_V6T2_V8M)
324+/* Features that are present in v6M and v6S-M but not other v6 cores. */
325+#define ARM_ARCH_V6M_ONLY ARM_FEATURE_CORE_LOW (ARM_AEXT_V6M_ONLY)
402326 /* v8-a+fp. */
403327 #define ARM_ARCH_V8A_FP \
404328 ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8A, FPU_ARCH_VFP_ARMV8)
binutils/include/opcode/avr.h+1−1
@@ -1,6 +1,6 @@
11 /* Opcode table for the Atmel AVR micro controllers.
22
3− Copyright (C) 2000-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
44 Contributed by Denis Chertykov <denisc@overta.ru>
55
66 This program is free software; you can redistribute it and/or modify
binutils/include/opcode/bfin.h+1−1
@@ -1,5 +1,5 @@
11 /* bfin.h -- Header file for ADI Blackfin opcode table
2− Copyright (C) 2005-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB, GAS, and the GNU binutils.
55
binutils/include/opcode/cgen.h+3−10
@@ -1,6 +1,6 @@
11 /* Header file for targets using CGEN: Cpu tools GENerator.
22
3− Copyright (C) 1996-2020 Free Software Foundation, Inc.
3+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
44
55 This file is part of GDB, the GNU debugger, and the GNU Binutils.
66
@@ -1392,9 +1392,7 @@ enum cgen_cpu_open_arg { · 1385 unmodified lines
13921392 Multiple machines can be specified by repeated use. */
13931393 CGEN_CPU_OPEN_BFDMACH,
13941394 /* Select endian, arg is CGEN_ENDIAN_*. */
1395− CGEN_CPU_OPEN_ENDIAN,
1396− /* Select instruction endian, arg is CGEN_ENDIAN_*. */
1397− CGEN_CPU_OPEN_INSN_ENDIAN,
1395+ CGEN_CPU_OPEN_ENDIAN
13981396 };
13991397
14001398 /* Open a cpu descriptor table for use.
@@ -1463,13 +1461,8 @@ extern const CGEN_INSN * cgen_lookup_get_insn_operands · 62 unmodified lines
14631461 /* Cover fns to bfd_get/set. */
14641462
14651463 extern CGEN_INSN_INT cgen_get_insn_value
1466− (CGEN_CPU_DESC, unsigned char *, int, int);
1467−extern void cgen_put_insn_value
1468− (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT, int);
1469−
1470−extern CGEN_INSN_INT cgen_get_base_insn_value
14711464 (CGEN_CPU_DESC, unsigned char *, int);
1472−extern void cgen_put_base_insn_value
1465+extern void cgen_put_insn_value
14731466 (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT);
14741467
14751468 /* Read in a cpu description file.
binutils/include/opcode/convex.h+1−1
@@ -1,5 +1,5 @@
11 /* Information for instruction disassembly on the Convex.
2− Copyright (C) 1989-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB.
55
binutils/include/opcode/cr16.h+1−1
@@ -1,5 +1,5 @@
11 /* cr16.h -- Header file for CR16 opcode and register tables.
2− Copyright (C) 2007-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2007-2018 Free Software Foundation, Inc.
33 Contributed by M R Swami Reddy
44
55 This file is part of GAS, GDB and the GNU binutils.
binutils/include/opcode/cris.h+1−1
@@ -1,5 +1,5 @@
11 /* cris.h -- Header file for CRIS opcode and register tables.
2− Copyright (C) 2000-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
33 Contributed by Axis Communications AB, Lund, Sweden.
44 Originally written for GAS 1.38.1 by Mikael Asker.
55 Updated, BFDized and GNUified by Hans-Peter Nilsson.
binutils/include/opcode/crx.h+2−2
@@ -1,5 +1,5 @@
11 /* crx.h -- Header file for CRX opcode and register tables.
2− Copyright (C) 2004-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2004-2018 Free Software Foundation, Inc.
33 Contributed by Tomer Levi, NSC, Israel.
44 Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
55 Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
@@ -260,7 +260,7 @@ typedef struct · 254 unmodified lines
260260 /* Size (in words). */
261261 unsigned int size;
262262 /* Constant prefix (matched by the disassembler). */
263− unsigned int match;
263+ unsigned long match;
264264 /* Match size (in bits). */
265265 int match_bits;
266266 /* Attributes. */
binutils/include/opcode/csky.h+0−123
@@ -1,123 +0,0 @@
1−/* C-SKY assembler/disassembler support.
2− Copyright (C) 2004-2020 Free Software Foundation, Inc.
3− Contributed by C-SKY Microsystems and Mentor Graphics.
4−
5− This file is part of GDB and GAS.
6−
7− GDB and GAS are free software; you can redistribute it and/or
8− modify it under the terms of the GNU General Public License as
9− published by the Free Software Foundation; either version 3, or (at
10− your option) any later version.
11−
12− GDB and GAS are distributed in the hope that it will be useful, but
13− WITHOUT ANY WARRANTY; without even the implied warranty of
14− MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15− General Public License for more details.
16−
17− You should have received a copy of the GNU General Public License
18− along with GDB or GAS; see the file COPYING3. If not, write to the
19− Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
20− MA 02110-1301, USA. */
21−
22−#include "dis-asm.h"
23−
24−/* The following bitmasks control instruction set architecture. */
25−#define CSKYV1_ISA_E1 ((bfd_uint64_t)1 << 0)
26−#define CSKYV2_ISA_E1 ((bfd_uint64_t)1 << 1)
27−#define CSKYV2_ISA_1E2 ((bfd_uint64_t)1 << 2)
28−#define CSKYV2_ISA_2E3 ((bfd_uint64_t)1 << 3)
29−#define CSKYV2_ISA_3E7 ((bfd_uint64_t)1 << 4)
30−#define CSKYV2_ISA_7E10 ((bfd_uint64_t)1 << 5)
31−#define CSKYV2_ISA_3E3R1 ((bfd_uint64_t)1 << 6)
32−#define CSKYV2_ISA_3E3R2 ((bfd_uint64_t)1 << 7)
33−#define CSKYV2_ISA_10E60 ((bfd_uint64_t)1 << 8)
34−#define CSKYV2_ISA_3E3R3 ((bfd_uint64_t)1 << 9)
35−
36−#define CSKY_ISA_TRUST ((bfd_uint64_t)1 << 11)
37−#define CSKY_ISA_CACHE ((bfd_uint64_t)1 << 12)
38−#define CSKY_ISA_NVIC ((bfd_uint64_t)1 << 13)
39−#define CSKY_ISA_CP ((bfd_uint64_t)1 << 14)
40−#define CSKY_ISA_MP ((bfd_uint64_t)1 << 15)
41−#define CSKY_ISA_MP_1E2 ((bfd_uint64_t)1 << 16)
42−#define CSKY_ISA_JAVA ((bfd_uint64_t)1 << 17)
43−#define CSKY_ISA_MAC ((bfd_uint64_t)1 << 18)
44−#define CSKY_ISA_MAC_DSP ((bfd_uint64_t)1 << 19)
45−
46−/* Base ISA for csky v1 and v2. */
47−#define CSKY_ISA_DSP ((bfd_uint64_t)1 << 20)
48−#define CSKY_ISA_DSP_1E2 ((bfd_uint64_t)1 << 21)
49−#define CSKY_ISA_DSP_ENHANCE ((bfd_uint64_t)1 << 22)
50−#define CSKY_ISA_DSPE60 ((bfd_uint64_t)1 << 23)
51−
52−/* Base float instruction (803f & 810f). */
53−#define CSKY_ISA_FLOAT_E1 ((bfd_uint64_t)1 << 25)
54−/* M_FLOAT support (810f). */
55−#define CSKY_ISA_FLOAT_1E2 ((bfd_uint64_t)1 << 26)
56−/* 803 support (803f). */
57−#define CSKY_ISA_FLOAT_1E3 ((bfd_uint64_t)1 << 27)
58−/* 807 support (803f & 807f). */
59−#define CSKY_ISA_FLOAT_3E4 ((bfd_uint64_t)1 << 28)
60−/* 860 support. */
61−#define CSKY_ISA_FLOAT_7E60 ((bfd_uint64_t)1 << 36)
62−/* Vector DSP support. */
63−#define CSKY_ISA_VDSP ((bfd_uint64_t)1 << 29)
64−#define CSKY_ISA_VDSP_2 ((bfd_uint64_t)1 << 30)
65−
66−/* The following bitmasks control cpu architecture for CSKY. */
67−#define CSKY_ABI_V1 (1 << 28)
68−#define CSKY_ABI_V2 (2 << 28)
69−#define CSKY_ARCH_MASK 0x0000001F
70−#define CSKY_ABI_MASK 0xF0000000
71−
72−#define CSKY_ARCH_510 0x1
73−#define CSKY_ARCH_610 0x2
74−#define CSKY_ARCH_801 0xa
75−#define CSKY_ARCH_802 0x10
76−#define CSKY_ARCH_803 0x9
77−/* 804 use the same arch flag as 803 yet. */
78−#define CSKY_ARCH_804 0x9
79−#define CSKY_ARCH_805 0x11
80−#define CSKY_ARCH_807 0x6
81−#define CSKY_ARCH_810 0x8
82−#define CSKY_ARCH_860 0xb
83−/* 800 is a special arch supporting all instructions for ABIV2. */
84−#define CSKY_ARCH_800 0x1f
85−
86−#define CSKY_ARCH_MAC (1 << 15)
87−#define CSKY_ARCH_DSP (1 << 14)
88−#define CSKY_ARCH_FLOAT (1 << 13)
89−#define CSKY_ARCH_SIMD (1 << 12)
90−#define CSKY_ARCH_CP (1 << 11)
91−#define CSKY_ARCH_MP (1 << 10)
92−#define CSKY_ARCH_CACHE (1 << 9)
93−#define CSKY_ARCH_JAVA (1 << 8)
94−#define CSKY_ARCH_APS (1 << 7)
95−
96−#define IS_CSKY_V1(a) \
97− (((a) & CSKY_ABI_MASK) == CSKY_ABI_V1)
98−#define IS_CSKY_V2(a) \
99− (((a) & CSKY_ABI_MASK) == CSKY_ABI_V2)
100−#define IS_CSKY_ARCH_V1(a) \
101− (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_510 \
102− || ((a) & CSKY_ARCH_MASK) == CSKY_ARCH_610)
103−#define IS_CSKY_ARCH_V2(a) \
104− (!(IS_CSKY_ARCH_V1 (a)))
105−
106−#define IS_CSKY_ARCH_510(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_510)
107−#define IS_CSKY_ARCH_610(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_610)
108−#define IS_CSKY_ARCH_801(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_801)
109−#define IS_CSKY_ARCH_802(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_802)
110−#define IS_CSKY_ARCH_803(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_803)
111−#define IS_CSKY_ARCH_807(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_807)
112−#define IS_CSKY_ARCH_810(a) (((a) & CSKY_ARCH_MASK) == CSKY_ARCH_810)
113−
114−#define CPU_ARCH_MASK \
115− (CSKY_ARCH_JAVA | CSKY_ARCH_FLOAT | CSKY_ARCH_DSP | CSKY_ARCH_MASK)
116−
117−#ifdef __cplusplus
118−extern "C" {
119−#endif
120−extern int print_insn_csky (bfd_vma memaddr, struct disassemble_info *info);
121−#ifdef __cplusplus
122−}
123−#endif
binutils/include/opcode/d10v.h+1−1
@@ -1,5 +1,5 @@
11 /* d10v.h -- Header file for D10V opcode table
2− Copyright (C) 1996-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
33 Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
44
55 This file is part of GDB, GAS, and the GNU binutils.
binutils/include/opcode/d30v.h+2−2
@@ -1,5 +1,5 @@
11 /* d30v.h -- Header file for D30V opcode table
2− Copyright (C) 1997-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1997-2018 Free Software Foundation, Inc.
33 Written by Martin Hunt (hunt@cygnus.com), Cygnus Solutions
44
55 This file is part of GDB, GAS, and the GNU binutils.
@@ -33,7 +33,7 @@ struct pd_reg · 27 unmodified lines
3333 {
3434 char *name; /* name to recognize */
3535 char *pname; /* name to print for this register */
36− unsigned int value;
36+ int value;
3737 };
3838
3939 extern const struct pd_reg pre_defined_registers[];
binutils/include/opcode/dlx.h+1−1
@@ -1,5 +1,5 @@
11 /* Table of opcodes for the DLX microprocess.
2− Copyright (C) 2002-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB and GAS.
55
binutils/include/opcode/ft32.h+1−1
@@ -1,5 +1,5 @@
11 /* Definitions for decoding the ft32 opcode table.
2− Copyright (C) 2013-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2013-2018 Free Software Foundation, Inc.
33 Contributed by FTDI (support@ftdichip.com)
44
55 This program is free software; you can redistribute it and/or modify
binutils/include/opcode/h8300.h+48−48
@@ -1,5 +1,5 @@
11 /* Opcode table for the H8/300
2− Copyright (C) 1991-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1991-2018 Free Software Foundation, Inc.
33 Written by Steve Chamberlain <sac@cygnus.com>.
44
55 This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
@@ -980,8 +980,8 @@ struct h8_opcode · 974 unmodified lines
980980 {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
981981 {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}
982982
983−#define EXPAND_UNOP_EXTENDED_B(CODE, MODEL, NAME, CONST, PREFIX, OP1, OP2, OP3) \
984− {CODE, MODEL, 2, NAME, {{CONST, RD8, E}}, {{ OP1, OP2, OP3, RD8, E}}}, \
983+#define EXPAND_UNOP_EXTENDED_B(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \
984+ {CODE, AV_H8, 2, NAME, {{CONST, RD8, E}}, {{ OP1, OP2, OP3, RD8, E}}}, \
985985 {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B30 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
986986 {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
987987 {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
@@ -1000,8 +1000,8 @@ struct h8_opcode · 12 unmodified lines
10001000 {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 10, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
10011001 {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 10, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}}
10021002
1003−#define EXPAND_UNOP_EXTENDED_W(CODE, MODEL, NAME, CONST, PREFIX, OP1, OP2, OP3) \
1004− {CODE, MODEL, 2, NAME, {{CONST, RD16, E}}, {{ OP1, OP2, OP3, RD16, E}}}, \
1003+#define EXPAND_UNOP_EXTENDED_W(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \
1004+ {CODE, AV_H8, 2, NAME, {{CONST, RD16, E}}, {{ OP1, OP2, OP3, RD16, E}}}, \
10051005 {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B31 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
10061006 {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
10071007 {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
@@ -1019,8 +1019,8 @@ struct h8_opcode · 11 unmodified lines
10191019 {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 11, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
10201020 {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 11, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}}
10211021
1022−#define EXPAND_UNOP_EXTENDED_L(CODE, MODEL, NAME, CONST, PREFIX, OP1, OP2, OP3, BIT) \
1023− {CODE, MODEL, 2, NAME, {{CONST, RD32, E}}, {{ OP1, OP2, OP3, BIT | RD32, E}}}, \
1022+#define EXPAND_UNOP_EXTENDED_L(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3, BIT) \
1023+ {CODE, AV_H8, 2, NAME, {{CONST, RD32, E}}, {{ OP1, OP2, OP3, BIT | RD32, E}}}, \
10241024 {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{PREFIX, 4, 6, 9, B30 | RDIND, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
10251025 {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
10261026 {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
@@ -1393,10 +1393,10 @@ struct h8_opcode h8_opcodes[] = · 366 unmodified lines
13931393
13941394 EXPAND_UNOP_STD_W (O (O_EXTS, SW), "exts.w", PREFIX_015, 0x1, 0x7, 0xd),
13951395 EXPAND_UNOP_STD_L (O (O_EXTS, SL), "exts.l", PREFIX_010, 0x1, 0x7, 0xf),
1396− EXPAND_UNOP_EXTENDED_L (O (O_EXTS, SL), AV_H8SX, "exts.l", CONST_2, PREFIX_010, 0x1, 0x7, 0xe, 0),
1396+ EXPAND_UNOP_EXTENDED_L (O (O_EXTS, SL), "exts.l", CONST_2, PREFIX_010, 0x1, 0x7, 0xe, 0),
13971397 EXPAND_UNOP_STD_W (O (O_EXTU, SW), "extu.w", PREFIX_015, 0x1, 0x7, 0x5),
13981398 EXPAND_UNOP_STD_L (O (O_EXTU, SL), "extu.l", PREFIX_010, 0x1, 0x7, 0x7),
1399− EXPAND_UNOP_EXTENDED_L (O (O_EXTU, SL), AV_H8SX, "extu.l", CONST_2, PREFIX_010, 0x1, 0x7, 0x6, 0),
1399+ EXPAND_UNOP_EXTENDED_L (O (O_EXTU, SL), "extu.l", CONST_2, PREFIX_010, 0x1, 0x7, 0x6, 0),
14001400
14011401 UNOP (O (O_INC, SB), "inc", 0x0, 0xA),
14021402
@@ -1698,29 +1698,29 @@ struct h8_opcode h8_opcodes[] = · 295 unmodified lines
16981698 {O (O_MOV, SL), AV_H8H, 6, "push.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0xF, OR32 | B30, E}}},
16991699
17001700 EXPAND_UNOP_STD_B (O (O_ROTL, SB), "rotl.b", PREFIX_017, 0x1, 0x2, 0x8),
1701− EXPAND_UNOP_EXTENDED_B (O (O_ROTL, SB), AV_H8S, "rotl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0xc),
1701+ EXPAND_UNOP_EXTENDED_B (O (O_ROTL, SB), "rotl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0xc),
17021702 EXPAND_UNOP_STD_W (O (O_ROTL, SW), "rotl.w", PREFIX_015, 0x1, 0x2, 0x9),
1703− EXPAND_UNOP_EXTENDED_W (O (O_ROTL, SW), AV_H8S, "rotl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0xd),
1703+ EXPAND_UNOP_EXTENDED_W (O (O_ROTL, SW), "rotl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0xd),
17041704 EXPAND_UNOP_STD_L (O (O_ROTL, SL), "rotl.l", PREFIX_010, 0x1, 0x2, 0xb),
1705− EXPAND_UNOP_EXTENDED_L (O (O_ROTL, SL), AV_H8S, "rotl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0xf, B30),
1705+ EXPAND_UNOP_EXTENDED_L (O (O_ROTL, SL), "rotl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0xf, B30),
17061706 EXPAND_UNOP_STD_B (O (O_ROTR, SB), "rotr.b", PREFIX_017, 0x1, 0x3, 0x8),
1707− EXPAND_UNOP_EXTENDED_B (O (O_ROTR, SB), AV_H8S, "rotr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0xc),
1707+ EXPAND_UNOP_EXTENDED_B (O (O_ROTR, SB), "rotr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0xc),
17081708 EXPAND_UNOP_STD_W (O (O_ROTR, SW), "rotr.w", PREFIX_015, 0x1, 0x3, 0x9),
1709− EXPAND_UNOP_EXTENDED_W (O (O_ROTR, SW), AV_H8S, "rotr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0xd),
1709+ EXPAND_UNOP_EXTENDED_W (O (O_ROTR, SW), "rotr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0xd),
17101710 EXPAND_UNOP_STD_L (O (O_ROTR, SL), "rotr.l", PREFIX_010, 0x1, 0x3, 0xb),
1711− EXPAND_UNOP_EXTENDED_L (O (O_ROTR, SL), AV_H8S, "rotr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0xf, B30),
1711+ EXPAND_UNOP_EXTENDED_L (O (O_ROTR, SL), "rotr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0xf, B30),
17121712 EXPAND_UNOP_STD_B (O (O_ROTXL, SB), "rotxl.b", PREFIX_017, 0x1, 0x2, 0x0),
1713− EXPAND_UNOP_EXTENDED_B (O (O_ROTXL, SB), AV_H8S, "rotxl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0x4),
1713+ EXPAND_UNOP_EXTENDED_B (O (O_ROTXL, SB), "rotxl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0x4),
17141714 EXPAND_UNOP_STD_W (O (O_ROTXL, SW), "rotxl.w", PREFIX_015, 0x1, 0x2, 0x1),
1715− EXPAND_UNOP_EXTENDED_W (O (O_ROTXL, SW), AV_H8S, "rotxl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0x5),
1715+ EXPAND_UNOP_EXTENDED_W (O (O_ROTXL, SW), "rotxl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0x5),
17161716 EXPAND_UNOP_STD_L (O (O_ROTXL, SL), "rotxl.l", PREFIX_010, 0x1, 0x2, 0x3),
1717− EXPAND_UNOP_EXTENDED_L (O (O_ROTXL, SL), AV_H8S, "rotxl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0x7, B30),
1717+ EXPAND_UNOP_EXTENDED_L (O (O_ROTXL, SL), "rotxl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0x7, B30),
17181718 EXPAND_UNOP_STD_B (O (O_ROTXR, SB), "rotxr.b", PREFIX_017, 0x1, 0x3, 0x0),
1719− EXPAND_UNOP_EXTENDED_B (O (O_ROTXR, SB), AV_H8S, "rotxr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0x4),
1719+ EXPAND_UNOP_EXTENDED_B (O (O_ROTXR, SB), "rotxr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0x4),
17201720 EXPAND_UNOP_STD_W (O (O_ROTXR, SW), "rotxr.w", PREFIX_015, 0x1, 0x3, 0x1),
1721− EXPAND_UNOP_EXTENDED_W (O (O_ROTXR, SW), AV_H8S, "rotxr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0x5),
1721+ EXPAND_UNOP_EXTENDED_W (O (O_ROTXR, SW), "rotxr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0x5),
17221722 EXPAND_UNOP_STD_L (O (O_ROTXR, SL), "rotxr.l", PREFIX_010, 0x1, 0x3, 0x3),
1723− EXPAND_UNOP_EXTENDED_L (O (O_ROTXR, SL), AV_H8S, "rotxr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0x7, B30),
1723+ EXPAND_UNOP_EXTENDED_L (O (O_ROTXR, SL), "rotxr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0x7, B30),
17241724
17251725
17261726 {O (O_BPT, SN), AV_H8, 10, "bpt", {{E}}, {{0x7, 0xA, 0xF, 0xF, E}}},
@@ -1730,70 +1730,70 @@ struct h8_opcode h8_opcodes[] = · 3 unmodified lines
17301730 {O (O_RTSL, SN), AV_H8SX, 0, "rts/l", {{RS32, RD32, E}}, {{0x5, 0x4, RS32 | B30, RD32 | B30, E}}},
17311731
17321732 EXPAND_UNOP_STD_B (O (O_SHAL, SB), "shal.b", PREFIX_017, 0x1, 0x0, 0x8),
1733− EXPAND_UNOP_EXTENDED_B (O (O_SHAL, SB), AV_H8S, "shal.b", CONST_2, PREFIX_017, 0x1, 0x0, 0xc),
1733+ EXPAND_UNOP_EXTENDED_B (O (O_SHAL, SB), "shal.b", CONST_2, PREFIX_017, 0x1, 0x0, 0xc),
17341734 EXPAND_UNOP_STD_W (O (O_SHAL, SW), "shal.w", PREFIX_015, 0x1, 0x0, 0x9),
1735− EXPAND_UNOP_EXTENDED_W (O (O_SHAL, SW), AV_H8S, "shal.w", CONST_2, PREFIX_015, 0x1, 0x0, 0xd),
1735+ EXPAND_UNOP_EXTENDED_W (O (O_SHAL, SW), "shal.w", CONST_2, PREFIX_015, 0x1, 0x0, 0xd),
17361736 EXPAND_UNOP_STD_L (O (O_SHAL, SL), "shal.l", PREFIX_010, 0x1, 0x0, 0xb),
1737− EXPAND_UNOP_EXTENDED_L (O (O_SHAL, SL), AV_H8S, "shal.l", CONST_2, PREFIX_010, 0x1, 0x0, 0xf, B30),
1737+ EXPAND_UNOP_EXTENDED_L (O (O_SHAL, SL), "shal.l", CONST_2, PREFIX_010, 0x1, 0x0, 0xf, B30),
17381738 EXPAND_UNOP_STD_B (O (O_SHAR, SB), "shar.b", PREFIX_017, 0x1, 0x1, 0x8),
1739− EXPAND_UNOP_EXTENDED_B (O (O_SHAR, SB), AV_H8S, "shar.b", CONST_2, PREFIX_017, 0x1, 0x1, 0xc),
1739+ EXPAND_UNOP_EXTENDED_B (O (O_SHAR, SB), "shar.b", CONST_2, PREFIX_017, 0x1, 0x1, 0xc),
17401740 EXPAND_UNOP_STD_W (O (O_SHAR, SW), "shar.w", PREFIX_015, 0x1, 0x1, 0x9),
1741− EXPAND_UNOP_EXTENDED_W (O (O_SHAR, SW), AV_H8S, "shar.w", CONST_2, PREFIX_015, 0x1, 0x1, 0xd),
1741+ EXPAND_UNOP_EXTENDED_W (O (O_SHAR, SW), "shar.w", CONST_2, PREFIX_015, 0x1, 0x1, 0xd),
17421742 EXPAND_UNOP_STD_L (O (O_SHAR, SL), "shar.l", PREFIX_010, 0x1, 0x1, 0xb),
1743− EXPAND_UNOP_EXTENDED_L (O (O_SHAR, SL), AV_H8S, "shar.l", CONST_2, PREFIX_010, 0x1, 0x1, 0xf, B30),
1743+ EXPAND_UNOP_EXTENDED_L (O (O_SHAR, SL), "shar.l", CONST_2, PREFIX_010, 0x1, 0x1, 0xf, B30),
17441744
17451745 EXPAND_UNOP_STD_B (O (O_SHLL, SB), "shll.b", PREFIX_017, 0x1, 0x0, 0x0),
17461746
17471747 {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x0, RD8, E}}},
17481748
1749− EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), AV_H8S, "shll.b", CONST_2, PREFIX_017, 0x1, 0x0, 0x4),
1750− EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), AV_H8SX, "shll.b", CONST_4, PREFIX_017, 0x1, 0x0, 0xa),
1749+ EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_2, PREFIX_017, 0x1, 0x0, 0x4),
1750+ EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_4, PREFIX_017, 0x1, 0x0, 0xa),
17511751 {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x0, RD8, E}}},
17521752
17531753 EXPAND_UNOP_STD_W (O (O_SHLL, SW), "shll.w", PREFIX_015, 0x1, 0x0, 0x1),
17541754
17551755 {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x1, RD16, E}}},
17561756
1757− EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), AV_H8S, "shll.w", CONST_2, PREFIX_015, 0x1, 0x0, 0x5),
1758− EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), AV_H8SX, "shll.w", CONST_4, PREFIX_015, 0x1, 0x0, 0x2),
1759− EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), AV_H8SX, "shll.w", CONST_8, PREFIX_015, 0x1, 0x0, 0x6),
1757+ EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_2, PREFIX_015, 0x1, 0x0, 0x5),
1758+ EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_4, PREFIX_015, 0x1, 0x0, 0x2),
1759+ EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_8, PREFIX_015, 0x1, 0x0, 0x6),
17601760 {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x1, RD16, E}}},
17611761
17621762 EXPAND_UNOP_STD_L (O (O_SHLL, SL), "shll.l", PREFIX_010, 0x1, 0x0, 0x3),
17631763
17641764 {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x3, B30 | RD32, E}}},
17651765
1766− EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8S, "shll.l", CONST_2, PREFIX_010, 0x1, 0x0, 0x7, B30),
1767− EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8SX, "shll.l", CONST_4, PREFIX_010, 0x1, 0x0, 0x3, B31),
1768− EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8SX, "shll.l", CONST_8, PREFIX_010, 0x1, 0x0, 0x7, B31),
1769− EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8SX, "shll.l", CONST_16, PREFIX_010, 0x1, 0x0, 0xf, B31),
1766+ EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_2, PREFIX_010, 0x1, 0x0, 0x7, B30),
1767+ EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_4, PREFIX_010, 0x1, 0x0, 0x3, B31),
1768+ EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_8, PREFIX_010, 0x1, 0x0, 0x7, B31),
1769+ EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_16, PREFIX_010, 0x1, 0x0, 0xf, B31),
17701770 {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x3, B30 | RD32, E}}},
17711771
17721772 EXPAND_UNOP_STD_B (O (O_SHLR, SB), "shlr.b", PREFIX_017, 0x1, 0x1, 0x0),
17731773
17741774 {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x0, RD8, E}}},
17751775
1776− EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), AV_H8S, "shlr.b", CONST_2, PREFIX_017, 0x1, 0x1, 0x4),
1777− EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), AV_H8SX, "shlr.b", CONST_4, PREFIX_017, 0x1, 0x1, 0xa),
1776+ EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_2, PREFIX_017, 0x1, 0x1, 0x4),
1777+ EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_4, PREFIX_017, 0x1, 0x1, 0xa),
17781778 {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x0, RD8, E}}},
17791779
17801780 EXPAND_UNOP_STD_W (O (O_SHLR, SW), "shlr.w", PREFIX_015, 0x1, 0x1, 0x1),
17811781
17821782 {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x1, RD16, E}}},
17831783
1784− EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), AV_H8S, "shlr.w", CONST_2, PREFIX_015, 0x1, 0x1, 0x5),
1785− EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), AV_H8SX, "shlr.w", CONST_4, PREFIX_015, 0x1, 0x1, 0x2),
1786− EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), AV_H8SX, "shlr.w", CONST_8, PREFIX_015, 0x1, 0x1, 0x6),
1784+ EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_2, PREFIX_015, 0x1, 0x1, 0x5),
1785+ EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_4, PREFIX_015, 0x1, 0x1, 0x2),
1786+ EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_8, PREFIX_015, 0x1, 0x1, 0x6),
17871787 {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x1, RD16, E}}},
17881788
17891789 EXPAND_UNOP_STD_L (O (O_SHLR, SL), "shlr.l", PREFIX_010, 0x1, 0x1, 0x3),
17901790
17911791 {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x3, B30 | RD32, E}}},
17921792
1793− EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8S, "shlr.l", CONST_2, PREFIX_010, 0x1, 0x1, 0x7, B30),
1794− EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8SX, "shlr.l", CONST_4, PREFIX_010, 0x1, 0x1, 0x3, B31),
1795− EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8SX, "shlr.l", CONST_8, PREFIX_010, 0x1, 0x1, 0x7, B31),
1796− EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8SX, "shlr.l", CONST_16, PREFIX_010, 0x1, 0x1, 0xf, B31),
1793+ EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_2, PREFIX_010, 0x1, 0x1, 0x7, B30),
1794+ EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_4, PREFIX_010, 0x1, 0x1, 0x3, B31),
1795+ EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_8, PREFIX_010, 0x1, 0x1, 0x7, B31),
1796+ EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_16, PREFIX_010, 0x1, 0x1, 0xf, B31),
17971797 {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x3, B30 | RD32, E}}},
17981798
17991799 {O (O_SLEEP, SN), AV_H8, 2, "sleep", {{E}}, {{0x0, 0x1, 0x8, 0x0, E}}},
@@ -1864,7 +1864,7 @@ struct h8_opcode h8_opcodes[] = · 64 unmodified lines
18641864 {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
18651865
18661866 {O (O_TRAPA, SB), AV_H8H, 2, "trapa", {{IMM2, E}}, {{0x5, 0x7, IMM2, IGNORE, E}}},
1867− {O (O_TAS, SB), AV_H8S, 2, "tas", {{RSIND, E}}, {{0x0, 0x1, 0xe, 0x0, 0x7, 0xb, B30 | RSIND, 0xc, E}}},
1867+ {O (O_TAS, SB), AV_H8H, 2, "tas", {{RSIND, E}}, {{0x0, 0x1, 0xe, 0x0, 0x7, 0xb, B30 | RSIND, 0xc, E}}},
18681868
18691869 {O (O_XOR, SB), AV_H8, 2, "xor.b", {{IMM8, RD8, E}}, {{0xd, RD8, IMM8LIST, E}}},
18701870 EXPAND_TWOOP_B (O (O_XOR, SB), "xor.b", 0xd, 0x1, 0x5, 0x5, 0),
@@ -1882,8 +1882,8 @@ struct h8_opcode h8_opcodes[] = · 11 unmodified lines
18821882 {O (O_MAC, SW), AV_H8S, 2, "mac", {{RSPOSTINC, RDPOSTINC, E}}, {{0x0, 0x1, 0x6, 0x0, 0x6, 0xd, B30 | RSPOSTINC, B30 | RDPOSTINC, E}}},
18831883 {O (O_LDMAC, SL), AV_H8S, 2, "ldmac", {{RS32, MD32, E}}, {{0x0, 0x3, MD32, RS32, E}}},
18841884 {O (O_STMAC, SL), AV_H8S, 2, "stmac", {{MS32, RD32, E}}, {{0x0, 0x2, MS32, RD32, E}}},
1885− {O (O_LDM, SL), AV_H8S, 6, "ldm.l", {{RSPOSTINC, RD32, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0x7, B30 | RD32, E}}},
1886− {O (O_STM, SL), AV_H8S, 6, "stm.l", {{RS32, RDPREDEC, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0xF, B30 | RS32, E}}},
1885+ {O (O_LDM, SL), AV_H8H, 6, "ldm.l", {{RSPOSTINC, RD32, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0x7, B30 | RD32, E}}},
1886+ {O (O_STM, SL), AV_H8H, 6, "stm.l", {{RS32, RDPREDEC, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0xF, B30 | RS32, E}}},
18871887 {0, 0, 0, NULL, {{0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}}
18881888 };
18891889 #else
binutils/include/opcode/hppa.h+1−1
@@ -1,5 +1,5 @@
11 /* Table of opcodes for the PA-RISC.
2− Copyright (C) 1990-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1990-2018 Free Software Foundation, Inc.
33
44 Contributed by the Center for Software Science at the
55 University of Utah (pa-gdb-bugs@cs.utah.edu).
binutils/include/opcode/i386.h+1−2
@@ -1,5 +1,5 @@
11 /* opcode/i386.h -- Intel 80386 opcode macros
2− Copyright (C) 1989-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
33
44 This file is part of GAS, the GNU Assembler, and GDB, the GNU Debugger.
55
@@ -46,7 +46,6 @@ · 40 unmodified lines
4646
4747 #define MOV_AX_DISP32 0xa0
4848 #define POP_SEG_SHORT 0x07
49−#define POP_SEG386_SHORT 0xfa1
5049 #define JUMP_PC_RELATIVE 0xeb
5150 #define INT_OPCODE 0xcd
5251 #define INT3_OPCODE 0xcc
binutils/include/opcode/ia64.h+1−1
@@ -1,5 +1,5 @@
11 /* ia64.h -- Header file for ia64 opcode table
2− Copyright (C) 1998-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1998-2018 Free Software Foundation, Inc.
33 Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
44
55 This file is part of BFD, the Binary File Descriptor library.
binutils/include/opcode/m68hc11.h+1−1
@@ -1,5 +1,5 @@
11 /* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
2− Copyright (C) 1999-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1999-2018 Free Software Foundation, Inc.
33 Written by Stephane Carrez (stcarrez@nerim.fr)
44
55 This file is part of GDB, GAS, and the GNU binutils.
binutils/include/opcode/m68k.h+1−1
@@ -1,5 +1,5 @@
11 /* Opcode table header for m680[01234]0/m6888[12]/m68851.
2− Copyright (C) 1989-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB, GAS, and the GNU binutils.
55
binutils/include/opcode/metag.h+1−1
@@ -1,5 +1,5 @@
11 /* Imagination Technologies Meta opcode table.
2− Copyright (C) 2013-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2013-2018 Free Software Foundation, Inc.
33 Contributed by Imagination Technologies Ltd.
44
55 This file is part of GDB and GAS.
binutils/include/opcode/mips.h+10−24
@@ -1,5 +1,5 @@
11 /* mips.h. Mips opcode list for GDB, the GNU debugger.
2− Copyright (C) 1993-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1993-2018 Free Software Foundation, Inc.
33 Contributed by Ralph Campbell and OSF
44 Commented and modified by Ian Lance Taylor, Cygnus Support
55
@@ -56,8 +56,8 @@ extern "C" { · 50 unmodified lines
5656 code field in BREAK is 20 bits; yet MIPS assemblers and debuggers
5757 only use ten bits). An optional two-operand form of break/sdbbp
5858 allows the lower ten bits to be set too, and MIPS32 and later
59− architectures allow 20 bits to be set with a single operand for
60− the sdbbp instruction (using CODE20).
59+ architectures allow 20 bits to be set with a signal operand
60+ (using CODE20).
6161
6262 The syscall instruction uses CODE20.
6363
@@ -928,7 +928,7 @@ mips_opcode_32bit_p (const struct mips_opcode *mo) · 864 unmodified lines
928928 "+S" Length-minus-one field of cins/exts. Requires msb position
929929 of the field to be <= 63.
930930
931− Loongson-ext ASE:
931+ Loongson-3A:
932932 "+a" 8-bit signed offset in bit 6 (OP_*_OFFSET_A)
933933 "+b" 8-bit signed offset in bit 3 (OP_*_OFFSET_B)
934934 "+c" 9-bit signed offset in bit 6 (OP_*_OFFSET_C)
@@ -1256,6 +1256,8 @@ static const unsigned int mips_isa_table[] = { · 321 unmodified lines
12561256 #define INSN_LOONGSON_2E 0x40000000
12571257 /* ST Microelectronics Loongson 2F. */
12581258 #define INSN_LOONGSON_2F 0x80000000
1259+/* Loongson 3A. */
1260+#define INSN_LOONGSON_3A 0x00000400
12591261 /* RMI Xlr instruction */
12601262 #define INSN_XLR 0x00000020
12611263 /* Imagination interAptiv MR2. */
@@ -1300,17 +1302,6 @@ static const unsigned int mips_isa_table[] = { · 38 unmodified lines
13001302 #define ASE_CRC64 0x00080000
13011303 /* Global INValidate Extension. */
13021304 #define ASE_GINV 0x00100000
1303−/* Loongson MultiMedia extensions Instructions (MMI). */
1304−#define ASE_LOONGSON_MMI 0x00200000
1305−/* Loongson Content Address Memory (CAM). */
1306−#define ASE_LOONGSON_CAM 0x00400000
1307−/* Loongson EXTensions (EXT) instructions. */
1308−#define ASE_LOONGSON_EXT 0x00800000
1309−/* Loongson EXTensions R2 (EXT2) instructions. */
1310−#define ASE_LOONGSON_EXT2 0x01000000
1311−/* The Enhanced VA Scheme (EVA) extension has instructions which are
1312− only valid for the R6 ISA. */
1313−#define ASE_EVA_R6 0x02000000
13141305
13151306 /* MIPS ISA defines, use instead of hardcoding ISA level. */
13161307
@@ -1375,9 +1366,7 @@ static const unsigned int mips_isa_table[] = { · 58 unmodified lines
13751366 #define CPU_SB1 12310201 /* octal 'SB', 01. */
13761367 #define CPU_LOONGSON_2E 3001
13771368 #define CPU_LOONGSON_2F 3002
1378−#define CPU_GS464 3003
1379−#define CPU_GS464E 3004
1380−#define CPU_GS264E 3005
1369+#define CPU_LOONGSON_3A 3003
13811370 #define CPU_OCTEON 6501
13821371 #define CPU_OCTEONP 6601
13831372 #define CPU_OCTEON2 6502
@@ -1436,6 +1425,9 @@ cpu_is_member (int cpu, unsigned int mask) · 52 unmodified lines
14361425 case CPU_LOONGSON_2F:
14371426 return (mask & INSN_LOONGSON_2F) != 0;
14381427
1428+ case CPU_LOONGSON_3A:
1429+ return (mask & INSN_LOONGSON_3A) != 0;
1430+
14391431 case CPU_OCTEON:
14401432 return (mask & INSN_OCTEON) != 0;
14411433
@@ -1631,10 +1623,7 @@ enum · 189 unmodified lines
16311623 M_LI_SS,
16321624 M_LL_AB,
16331625 M_LLD_AB,
1634− M_LLDP_AB,
16351626 M_LLE_AB,
1636− M_LLWP_AB,
1637− M_LLWPE_AB,
16381627 M_LQ_AB,
16391628 M_LW_AB,
16401629 M_LWE_AB,
@@ -1685,10 +1674,7 @@ enum · 44 unmodified lines
16851674 M_SAAD_AB,
16861675 M_SC_AB,
16871676 M_SCD_AB,
1688− M_SCDP_AB,
16891677 M_SCE_AB,
1690− M_SCWP_AB,
1691− M_SCWPE_AB,
16921678 M_SD_AB,
16931679 M_SDC1_AB,
16941680 M_SDC2_AB,
binutils/include/opcode/mmix.h+9−9
@@ -1,5 +1,5 @@
11 /* mmix.h -- Header file for MMIX opcode table
2− Copyright (C) 2001-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
33 Written by Hans-Peter Nilsson (hp@bitrange.com)
44
55 This file is part of GDB, GAS, and the GNU binutils.
@@ -173,14 +173,14 @@ extern const struct mmix_spec_reg mmix_spec_regs[]; · 167 unmodified lines
173173 #define COND_INV_BIT 0x8
174174 #define PRED_INV_BIT 0x10
175175
176−#define PUSHGO_INSN_BYTE 0xbeu
177−#define GO_INSN_BYTE 0x9eu
178−#define SETL_INSN_BYTE 0xe3u
179−#define INCML_INSN_BYTE 0xe6u
180−#define INCMH_INSN_BYTE 0xe5u
181−#define INCH_INSN_BYTE 0xe4u
182−#define SWYM_INSN_BYTE 0xfdu
183−#define JMP_INSN_BYTE 0xf0u
176+#define PUSHGO_INSN_BYTE 0xbe
177+#define GO_INSN_BYTE 0x9e
178+#define SETL_INSN_BYTE 0xe3
179+#define INCML_INSN_BYTE 0xe6
180+#define INCMH_INSN_BYTE 0xe5
181+#define INCH_INSN_BYTE 0xe4
182+#define SWYM_INSN_BYTE 0xfd
183+#define JMP_INSN_BYTE 0xf0
184184
185185 /* We can have 256 - 32 (local registers) - 1 ($255 is not allocatable)
186186 global registers. */
binutils/include/opcode/mn10200.h+1−1
@@ -1,5 +1,5 @@
11 /* mn10200.h -- Header file for Matsushita 10200 opcode table
2− Copyright (C) 1996-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
33 Written by Jeff Law, Cygnus Support
44
55 This file is part of GDB, GAS, and the GNU binutils.
binutils/include/opcode/mn10300.h+1−1
@@ -1,5 +1,5 @@
11 /* mn10300.h -- Header file for Matsushita 10300 opcode table
2− Copyright (C) 1996-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
33 Written by Jeff Law, Cygnus Support
44
55 This file is part of GDB, GAS, and the GNU binutils.
binutils/include/opcode/moxie.h+1−1
@@ -1,5 +1,5 @@
11 /* Definitions for decoding the moxie opcode table.
2− Copyright (C) 2009-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
33 Contributed by Anthony Green (green@moxielogic.com).
44
55 This program is free software; you can redistribute it and/or modify
binutils/include/opcode/msp430-decode.h+1−1
@@ -1,5 +1,5 @@
11 /* Opcode decoder for the TI MSP430
2− Copyright (C) 2012-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
33 Written by DJ Delorie <dj@redhat.com>
44
55 This file is part of GDB, the GNU Debugger.
binutils/include/opcode/msp430.h+1−16
@@ -1,6 +1,6 @@
11 /* Opcode table for the TI MSP430 microcontrollers
22
3− Copyright (C) 2002-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
44 Contributed by Dmitry Diky <diwil@mail.ru>
55
66 This program is free software; you can redistribute it and/or modify
@@ -21,18 +21,6 @@ · 14 unmodified lines
2121 #ifndef __MSP430_H_
2222 #define __MSP430_H_
2323
24−enum msp430_expp_e
25−{
26− MSP_EXPP_ALL = 0, /* Use full the value of the expression - default. */
27− MSP_EXPP_LO, /* Extract least significant word from expression. */
28− MSP_EXPP_HI, /* Extract 2nd word from expression. */
29− MSP_EXPP_LLO, /* Extract least significant word from an
30− immediate value. */
31− MSP_EXPP_LHI, /* Extract 2nd word from an immediate value. */
32− MSP_EXPP_HLO, /* Extract 3rd word from an immediate value. */
33− MSP_EXPP_HHI, /* Extract 4th word from an immediate value. */
34−};
35−
3624 struct msp430_operand_s
3725 {
3826 int ol; /* Operand length words. */
@@ -40,9 +28,6 @@ struct msp430_operand_s · 1 unmodified line
4028 int reg; /* Register. */
4129 int mode; /* Operand mode. */
4230 int vshift; /* Number of bytes to shift operand down. */
43− enum msp430_expp_e expp; /* For when the operand is a constant
44− expression, the part of the expression to
45− extract. */
4631 #define OP_REG 0
4732 #define OP_EXP 1
4833 #ifndef DASM_SECTION
binutils/include/opcode/nds32.h+27−186
@@ -1,5 +1,5 @@
11 /* nds32.h -- Header file for nds32 opcode table
2− Copyright (C) 2012-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
33 Contributed by Andes Technology Corporation.
44
55 This program is free software; you can redistribute it and/or modify
@@ -21,20 +21,19 @@ · 15 unmodified lines
2121 #define OPCODE_NDS32_H
2222
2323 /* Registers. */
24−#define REG_R0 (0)
25−#define REG_R5 (5)
26−#define REG_R8 (8)
27−#define REG_R10 (10)
28−#define REG_R12 (12)
29−#define REG_R15 (15)
30−#define REG_R16 (16)
31−#define REG_R20 (20)
32−#define REG_TA (15)
33−#define REG_TP (25)
34−#define REG_FP (28)
35−#define REG_GP (29)
36−#define REG_LP (30)
37−#define REG_SP (31)
24+#define REG_R5 5
25+#define REG_R8 8
26+#define REG_R10 10
27+#define REG_R12 12
28+#define REG_R15 15
29+#define REG_R16 16
30+#define REG_R20 20
31+#define REG_TA 15
32+#define REG_TP 27
33+#define REG_FP 28
34+#define REG_GP 29
35+#define REG_LP 30
36+#define REG_SP 31
3837
3938 /* Macros for extracting fields or making an instruction. */
4039 static const int nds32_r45map[] ATTRIBUTE_UNUSED =
@@ -51,12 +50,11 @@ static const int nds32_r54map[] ATTRIBUTE_UNUSED = · 10 unmodified lines
5150 -1, -1, -1, -1, -1, -1, -1, -1
5251 };
5352
54−#define N32_BIT(n) (1u << (n))
53+#define N32_BIT(n) (1 << (n))
5554 #define __MASK(n) (N32_BIT (n) - 1)
5655 #define __MF(v, off, bs) (((v) & __MASK (bs)) << (off))
5756 #define __GF(v, off, bs) (((v) >> off) & __MASK (bs))
58−#define __SEXT(v, bs) \
59− ((((v) & __MASK ((bs))) ^ N32_BIT ((bs) - 1)) - N32_BIT ((bs) - 1))
57+#define __SEXT(v, bs) ((((v) & ((1 << (bs)) - 1)) ^ (1 << ((bs) - 1))) - (1 << ((bs) - 1)))
6058
6159 /* Make nds32 instructions. */
6260
@@ -148,10 +146,9 @@ static const int nds32_r54map[] ATTRIBUTE_UNUSED = · 85 unmodified lines
148146 #define N32_RD5(insn) (((insn) >> 5) & 0x1f)
149147 #define N32_SH5(insn) (((insn) >> 5) & 0x1f)
150148 #define N32_SUB5(insn) (((insn) >> 0) & 0x1f)
151−#define N32_SUB6(insn) (((insn) >> 0) & 0x3f)
152149 #define N32_SWID(insn) (((insn) >> 5) & 0x3ff)
153150 #define N32_IMMU(insn, bs) ((insn) & __MASK (bs))
154−#define N32_IMMS(insn, bs) ((signed) __SEXT ((insn), (bs)))
151+#define N32_IMMS(insn, bs) ((signed) __SEXT (((insn) & __MASK (bs)), bs))
155152 #define N32_IMM5U(insn) N32_IMMU (insn, 5)
156153 #define N32_IMM12S(insn) N32_IMMS (insn, 12)
157154 #define N32_IMM14S(insn) N32_IMMS (insn, 14)
@@ -278,7 +275,7 @@ enum n32_opcodes · 120 unmodified lines
278275 N32_BR1_BNE = 1,
279276
280277 /* bit[16:19] */
281− N32_BR2_SOP0 = 0,
278+ N32_BR2_IFCALL = 0,
282279 N32_BR2_BEQZ = 2,
283280 N32_BR2_BNEZ = 3,
284281 N32_BR2_BGEZ = 4,
@@ -368,8 +365,7 @@ enum n32_opcodes · 83 unmodified lines
368365 N32_ALU2_FFZMISM,
369366 N32_ALU2_KADD = 0x18,
370367 N32_ALU2_KSUB,
371− N32_ALU2_KSLRAW,
372− N32_ALU2_KSLRAWu,
368+ N32_ALU2_KSLRA,
373369 N32_ALU2_MFUSR = 0x20,
374370 N32_ALU2_MTUSR,
375371 N32_ALU2_0x22,
@@ -385,173 +381,20 @@ enum n32_opcodes · 9 unmodified lines
385381 N32_ALU2_MSUB64,
386382 N32_ALU2_DIVS,
387383 N32_ALU2_DIV,
388− N32_ALU2_ADD64 = 0x30,
384+ N32_ALU2_0x30 = 0x30,
389385 N32_ALU2_MULT32,
390− N32_ALU2_SMAL,
386+ N32_ALU2_0x32,
391387 N32_ALU2_MADD32,
392− N32_ALU2_SUB64,
388+ N32_ALU2_0x34,
393389 N32_ALU2_MSUB32,
394− N32_ALU2_0x36,
395− N32_ALU2_0x37,
396− N32_ALU2_RADD64 = 0x38,
397− N32_ALU2_URADD64,
398− N32_ALU2_KADD64,
399− N32_ALU2_UKADD64,
400− N32_ALU2_RSUB64,
401− N32_ALU2_URSUB64,
402− N32_ALU2_KSUB64,
403− N32_ALU2_UKSUB64,
404−
405− /* bit[0:5], where bit[6:9] = 0001 */
406− N32_ALU2_SMAR64 = 0x0,
407− N32_ALU2_UMAR64,
408− N32_ALU2_SMSR64,
409− N32_ALU2_UMSR64,
410− N32_ALU2_KMAR64,
411− N32_ALU2_UKMAR64,
412− N32_ALU2_KMSR64,
413− N32_ALU2_UKMSR64,
414− N32_ALU2_SMALDA = 0x8,
415− N32_ALU2_SMSLDA,
416− N32_ALU2_SMALDS,
417− N32_ALU2_SMALBB,
390+
391+ /* bit[0:5], where bit[6:9] != 0 */
418392 N32_ALU2_FFBI = 0xe,
419393 N32_ALU2_FLMISM = 0xf,
420− N32_ALU2_SMALXDA = 0x10,
421− N32_ALU2_SMSLXDA,
422− N32_ALU2_SMALXDS,
423− N32_ALU2_SMALBT,
424− N32_ALU2_SMALDRS = 0x1a,
425− N32_ALU2_SMALTT,
426− N32_ALU2_RDOV = 0x20,
427− N32_ALU2_CLROV,
428394 N32_ALU2_MULSR64 = 0x28,
429395 N32_ALU2_MULR64 = 0x29,
430− N32_ALU2_SMDS = 0x30,
431− N32_ALU2_SMXDS,
432− N32_ALU2_SMDRS,
433− N32_ALU2_MADDR32,
434− N32_ALU2_KMADRS,
435− N32_ALU2_MSUBR32,
436− N32_ALU2_KMADS,
437− N32_ALU2_KMAXDS,
438−
439− /* bit[0:5], where bit[6:9] = 0010 */
440− N32_ALU2_KADD16 = 0x0,
441− N32_ALU2_KSUB16,
442− N32_ALU2_KCRAS16,
443− N32_ALU2_KCRSA16,
444− N32_ALU2_KADD8,
445− N32_ALU2_KSUB8,
446− N32_ALU2_WEXT,
447− N32_ALU2_WEXTI,
448− N32_ALU2_UKADD16 = 0x8,
449− N32_ALU2_UKSUB16,
450− N32_ALU2_UKCRAS16,
451− N32_ALU2_UKCRSA16,
452− N32_ALU2_UKADD8,
453− N32_ALU2_UKSUB8,
454− N32_ALU2_ONEOP = 0xf,
455− N32_ALU2_SMBB = 0x10,
456− N32_ALU2_SMBT,
457− N32_ALU2_SMTT,
458− N32_ALU2_KMABB = 0x15,
459− N32_ALU2_KMABT,
460− N32_ALU2_KMATT,
461− N32_ALU2_KMDA = 0x18,
462− N32_ALU2_KMXDA,
463− N32_ALU2_KMADA,
464− N32_ALU2_KMAXDA,
465− N32_ALU2_KMSDA,
466− N32_ALU2_KMSXDA,
467− N32_ALU2_RADD16 = 0x20,
468− N32_ALU2_RSUB16,
469− N32_ALU2_RCRAS16,
470− N32_ALU2_RCRSA16,
471− N32_ALU2_RADD8,
472− N32_ALU2_RSUB8,
473− N32_ALU2_RADDW,
474− N32_ALU2_RSUBW,
475− N32_ALU2_URADD16 = 0x28,
476− N32_ALU2_URSUB16,
477− N32_ALU2_URCRAS16,
478− N32_ALU2_URCRSA16,
479− N32_ALU2_URADD8,
480− N32_ALU2_URSUB8,
481− N32_ALU2_URADDW,
482− N32_ALU2_URSUBW,
483− N32_ALU2_ADD16 = 0x30,
484− N32_ALU2_SUB16,
485− N32_ALU2_CRAS16,
486− N32_ALU2_CRSA16,
487− N32_ALU2_ADD8,
488− N32_ALU2_SUB8,
489− N32_ALU2_BITREV,
490− N32_ALU2_BITREVI,
491− N32_ALU2_SMMUL = 0x38,
492− N32_ALU2_SMMULu,
493− N32_ALU2_KMMAC,
494− N32_ALU2_KMMACu,
495− N32_ALU2_KMMSB,
496− N32_ALU2_KMMSBu,
497− N32_ALU2_KWMMUL,
498− N32_ALU2_KWMMULu,
499−
500− /* bit[0:5], where bit[6:9] = 0011 */
501− N32_ALU2_SMMWB = 0x0,
502− N32_ALU2_SMMWBu,
503− N32_ALU2_SMMWT,
504− N32_ALU2_SMMWTu,
505− N32_ALU2_KMMAWB,
506− N32_ALU2_KMMAWBu,
507− N32_ALU2_KMMAWT,
508− N32_ALU2_KMMAWTu,
509− N32_ALU2_PKTT16 = 0x8,
510− N32_ALU2_PKTB16,
511− N32_ALU2_PKBT16,
512− N32_ALU2_PKBB16,
513− N32_ALU2_0x10 = 0x10,
514− N32_ALU2_SCLIP16,
515− N32_ALU2_0x12,
516− N32_ALU2_SMAX16,
517− N32_ALU2_SMAX8 = 0x17,
518− N32_ALU2_0x18 = 0x18,
519− N32_ALU2_UCLIP16,
520− N32_ALU2_0x1a,
521− N32_ALU2_UMAX16,
522− N32_ALU2_UMAX8 = 0x1f,
523− N32_ALU2_SRA16 = 0x20,
524− N32_ALU2_SRA16u,
525− N32_ALU2_SRL16,
526− N32_ALU2_SRL16u,
527− N32_ALU2_SLL16,
528− N32_ALU2_KSLRA16,
529− N32_ALU2_KSLRA16u,
530− N32_ALU2_SRAu,
531− N32_ALU2_SRAI16 = 0x28,
532− N32_ALU2_SRAI16u,
533− N32_ALU2_SRLI16,
534− N32_ALU2_SRLI16u,
535− N32_ALU2_SLLI16,
536− N32_ALU2_KSLLI16,
537− N32_ALU2_KSLLI,
538− N32_ALU2_SRAIu,
539− N32_ALU2_CMPEQ16 = 0x30,
540− N32_ALU2_SCMPLT16,
541− N32_ALU2_SCMPLE16,
542− N32_ALU2_SMIN16,
543− N32_ALU2_CMPEQ8,
544− N32_ALU2_SCMPLT8,
545− N32_ALU2_SCMPLE8,
546− N32_ALU2_SMIN8,
547− N32_ALU2_0x38,
548− N32_ALU2_UCMPLT16 = 0x39,
549− N32_ALU2_UCMPLE16,
550− N32_ALU2_UMIN16,
551− N32_ALU2_0x3c,
552− N32_ALU2_UCMPLT8,
553− N32_ALU2_UCMPLE8,
554− N32_ALU2_UMIN8,
396+ N32_ALU2_MADDR32 = 0x33,
397+ N32_ALU2_MSUBR32 = 0x35,
555398
556399 /* bit[0:5] */
557400 N32_MEM_LB = 0,
@@ -616,8 +459,7 @@ enum n32_opcodes · 58 unmodified lines
616459 N32_MISC_MSYNC,
617460 N32_MISC_ISYNC,
618461 N32_MISC_TLBOP,
619− N32_MISC_SPECL,
620− N32_MISC_BPICK = 0x10,
462+ N32_MISC_0xf,
621463
622464 /* bit[0:4] */
623465 N32_SIMD_PBSAD = 0,
@@ -862,7 +704,6 @@ enum n16_opcodes · 238 unmodified lines
862704 #define INSN_ANDI 0x54000000
863705 #define INSN_LDI 0x06000000
864706 #define INSN_SDI 0x16000000
865−#define INSN_LW 0x38000002
866707 #define INSN_LWI 0x04000000
867708 #define INSN_LWSI 0x24000000
868709 #define INSN_LWIP 0x0c000000
binutils/include/opcode/nfp.h+1−1
@@ -1,5 +1,5 @@
11 /* nfp.h. NFP opcode list.
2− Copyright (C) 2017-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
33 Contributed by Francois H. Theron <francois.theron@netronome.com>
44
55 This file is part of the GNU opcodes library.
binutils/include/opcode/nios2.h+1−1
@@ -1,5 +1,5 @@
11 /* Nios II opcode list for GAS, the GNU assembler.
2− Copyright (C) 2012-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
33 Contributed by Nigel Gray (ngray@altera.com).
44 Contributed by Mentor Graphics, Inc.
55
binutils/include/opcode/nios2r1.h+1−1
@@ -1,5 +1,5 @@
11 /* Nios II R1 opcode list for GAS, the GNU assembler.
2− Copyright (C) 2013-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2013-2018 Free Software Foundation, Inc.
33 Contributed by Mentor Graphics, Inc.
44
55 This file is part of the GNU opcodes library.
binutils/include/opcode/nios2r2.h+1−1
@@ -1,5 +1,5 @@
11 /* Nios II R2 opcode list for GAS, the GNU assembler.
2− Copyright (C) 2013-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2013-2018 Free Software Foundation, Inc.
33 Contributed by Mentor Graphics, Inc.
44
55 This file is part of the GNU opcodes library.
binutils/include/opcode/np1.h+1−1
@@ -1,5 +1,5 @@
11 /* Print GOULD NPL instructions for GDB, the GNU debugger.
2− Copyright (C) 1986-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB.
55
binutils/include/opcode/ns32k.h+1−1
@@ -1,5 +1,5 @@
11 /* ns32k-opcode.h -- Opcode table for National Semi 32k processor
2− Copyright (C) 1987-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1987-2018 Free Software Foundation, Inc.
33
44 This file is part of GAS, the GNU Assembler.
55
binutils/include/opcode/pdp11.h+1−1
@@ -1,5 +1,5 @@
11 /* PDP-11 opcde list.
2− Copyright (C) 2001-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB and GAS.
55
binutils/include/opcode/pj.h+1−1
@@ -1,5 +1,5 @@
11 /* Definitions for decoding the picoJava opcode table.
2− Copyright (C) 1999-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1999-2018 Free Software Foundation, Inc.
33 Contributed by Steve Chamberlain of Transmeta (sac@pobox.com).
44
55 This program is free software; you can redistribute it and/or modify
binutils/include/opcode/pn.h+1−1
@@ -1,5 +1,5 @@
11 /* Print GOULD PN (PowerNode) instructions for GDB, the GNU debugger.
2− Copyright (C) 1986-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB.
55
binutils/include/opcode/ppc.h+42−67
@@ -1,5 +1,5 @@
11 /* ppc.h -- Header file for PowerPC opcode table
2− Copyright (C) 1994-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1994-2018 Free Software Foundation, Inc.
33 Written by Ian Lance Taylor, Cygnus Support
44
55 This file is part of GDB, GAS, and the GNU binutils.
@@ -30,6 +30,14 @@ extern "C" { · 24 unmodified lines
3030
3131 typedef uint64_t ppc_cpu_t;
3232
33+#if BFD_HOST_64BIT_LONG
34+# define PPC_INT_FMT "l"
35+#elif defined (__MSVCRT__)
36+# define PPC_INT_FMT "I64"
37+#else
38+# define PPC_INT_FMT "ll"
39+#endif
40+
3341 /* The opcode table is an array of struct powerpc_opcode. */
3442
3543 struct powerpc_opcode
@@ -68,8 +76,6 @@ struct powerpc_opcode · 32 unmodified lines
6876 instructions. */
6977 extern const struct powerpc_opcode powerpc_opcodes[];
7078 extern const unsigned int powerpc_num_opcodes;
71−extern const struct powerpc_opcode prefix_opcodes[];
72−extern const unsigned int prefix_num_opcodes;
7379 extern const struct powerpc_opcode vle_opcodes[];
7480 extern const unsigned int vle_num_opcodes;
7581 extern const struct powerpc_opcode spe2_opcodes[];
@@ -198,7 +204,7 @@ extern const unsigned int spe2_num_opcodes; · 122 unmodified lines
198204 /* Opcode is only supported by Power8 architecture. */
199205 #define PPC_OPCODE_POWER8 0x1000000000ull
200206
201−/* Opcode is supported by ppc750cl/Gekko/Broadway. */
207+/* Opcode is supported by ppc750cl. */
202208 #define PPC_OPCODE_750 0x2000000000ull
203209
204210 /* Opcode is supported by ppc7450. */
@@ -228,9 +234,6 @@ extern const unsigned int spe2_num_opcodes; · 23 unmodified lines
228234 /* Opcode is supported by EFS2. */
229235 #define PPC_OPCODE_EFS2 0x200000000000ull
230236
231−/* Opcode is only supported by power10 architecture. */
232−#define PPC_OPCODE_POWER10 0x400000000000ull
233−
234237 /* A macro to extract the major opcode from an instruction. */
235238 #define PPC_OP(i) (((i) >> 26) & 0x3f)
236239
@@ -248,19 +251,6 @@ extern const unsigned int spe2_num_opcodes; · 11 unmodified lines
248251
249252 /* A macro to convert a SPE2 extended opcode to a SPE2 xopcode segment. */
250253 #define SPE2_XOP_TO_SEG(i) ((i) >> 7)
251−
252−/* A macro to extract the prefix word from an 8-byte PREFIX instruction. */
253−#define PPC_GET_PREFIX(i) (((i) >> 32) & ((1LL << 32) - 1))
254−
255−/* A macro to extract the suffix word from an 8-byte PREFIX instruction. */
256−#define PPC_GET_SUFFIX(i) ((i) & ((1LL << 32) - 1))
257−
258−/* A macro to determine whether insn I is an 8-byte prefix instruction. */
259−#define PPC_PREFIX_P(i) (PPC_OP (PPC_GET_PREFIX (i)) == 0x1)
260−
261−/* A macro used to hash 8-byte PREFIX instructions. */
262−#define PPC_PREFIX_SEG(i) (PPC_OP (i) >> 1)
263−
264254
265255 /* The operands table is an array of struct powerpc_operand. */
266256
@@ -290,10 +280,11 @@ struct powerpc_operand · 23 unmodified lines
290280
291281 If this field is not NULL, then simply call it with the
292282 instruction and the operand value. It will return the new value
293− of the instruction. If the operand value is illegal, *ERRMSG
294− will be set to a warning string (the operand will be inserted in
295− any case). If the operand value is legal, *ERRMSG will be
296− unchanged (most operands can accept any value). */
283+ of the instruction. If the ERRMSG argument is not NULL, then if
284+ the operand value is illegal, *ERRMSG will be set to a warning
285+ string (the operand will be inserted in any case). If the
286+ operand value is legal, *ERRMSG will be unchanged (most operands
287+ can accept any value). */
297288 uint64_t (*insert)
298289 (uint64_t instruction, int64_t op, ppc_cpu_t dialect, const char **errmsg);
299290
@@ -311,18 +302,11 @@ struct powerpc_operand · 11 unmodified lines
311302 is the result).
312303
313304 If this field is not NULL, then simply call it with the
314− instruction value. It will return the value of the operand.
315− *INVALID will be set to one by the extraction function if this
316− operand type can not be extracted from this operand (i.e., the
317− instruction does not match). If the operand is valid, *INVALID
318− will not be changed. *INVALID will always be non-negative when
319− used to extract a field from an instruction.
320−
321− The extraction function is also called by both the assembler and
322− disassembler if an operand is optional, in which case the
323− function should return the default value of the operand.
324− *INVALID is negative in this case, and is the negative count of
325− omitted optional operands up to and including this operand. */
305+ instruction value. It will return the value of the operand. If
306+ the INVALID argument is not NULL, *INVALID will be set to
307+ non-zero if this operand type can not actually be extracted from
308+ this operand (i.e., the instruction does not match). If the
309+ operand is valid, *INVALID will not be changed. */
326310 int64_t (*extract) (uint64_t instruction, ppc_cpu_t dialect, int *invalid);
327311
328312 /* One bit syntax flags. */
@@ -362,9 +346,6 @@ extern const unsigned int num_powerpc_operands; · 33 unmodified lines
362346 prints these with a leading 'vs'. */
363347 #define PPC_OPERAND_VSR (0x10)
364348
365−/* This operand names a VSX accumulator. */
366−#define PPC_OPERAND_ACC (0x20)
367−
368349 /* This operand may use the symbolic names for the CR fields (even
369350 without -mregnames), which are
370351 lt 0 gt 1 eq 2 so 3 un 3
@@ -372,60 +353,57 @@ extern const unsigned int num_powerpc_operands; · 1 unmodified line
372353 cr4 4 cr5 5 cr6 6 cr7 7
373354 These may be combined arithmetically, as in cr2*4+gt. These are
374355 only supported on the PowerPC, not the POWER. */
375−#define PPC_OPERAND_CR_BIT (0x40)
356+#define PPC_OPERAND_CR_BIT (0x20)
376357
377358 /* This is a CR FIELD that does not use symbolic names (unless
378− -mregnames is in effect). If both PPC_OPERAND_CR_BIT and
379− PPC_OPERAND_CR_REG are set then treat the field as per
380− PPC_OPERAND_CR_BIT for assembly, but as if neither of these
381− bits are set for disassembly. */
382−#define PPC_OPERAND_CR_REG (0x80)
359+ -mregnames is in effect). */
360+#define PPC_OPERAND_CR_REG (0x40)
383361
384362 /* This operand names a special purpose register. */
385−#define PPC_OPERAND_SPR (0x100)
363+#define PPC_OPERAND_SPR (0x80)
386364
387365 /* This operand names a paired-single graphics quantization register. */
388−#define PPC_OPERAND_GQR (0x200)
366+#define PPC_OPERAND_GQR (0x100)
389367
390368 /* This operand is a relative branch displacement. The disassembler
391369 prints these symbolically if possible. */
392−#define PPC_OPERAND_RELATIVE (0x400)
370+#define PPC_OPERAND_RELATIVE (0x200)
393371
394372 /* This operand is an absolute branch address. The disassembler
395373 prints these symbolically if possible. */
396−#define PPC_OPERAND_ABSOLUTE (0x800)
374+#define PPC_OPERAND_ABSOLUTE (0x400)
397375
398376 /* This operand takes signed values. */
399−#define PPC_OPERAND_SIGNED (0x1000)
377+#define PPC_OPERAND_SIGNED (0x800)
400378
401379 /* This operand takes signed values, but also accepts a full positive
402380 range of values when running in 32 bit mode. That is, if bits is
403381 16, it takes any value from -0x8000 to 0xffff. In 64 bit mode,
404382 this flag is ignored. */
405−#define PPC_OPERAND_SIGNOPT (0x2000)
383+#define PPC_OPERAND_SIGNOPT (0x1000)
406384
407385 /* The next operand should be wrapped in parentheses rather than
408386 separated from this one by a comma. This is used for the load and
409387 store instructions which want their operands to look like
410388 reg,displacement(reg)
411389 */
412−#define PPC_OPERAND_PARENS (0x4000)
390+#define PPC_OPERAND_PARENS (0x2000)
413391
414392 /* This operand is for the DS field in a DS form instruction. */
415−#define PPC_OPERAND_DS (0x8000)
393+#define PPC_OPERAND_DS (0x4000)
416394
417395 /* This operand is for the DQ field in a DQ form instruction. */
418−#define PPC_OPERAND_DQ (0x10000)
396+#define PPC_OPERAND_DQ (0x8000)
419397
420398 /* This operand should be regarded as a negative number for the
421399 purposes of overflow checking (i.e., the normal most negative
422400 number is disallowed and one more than the normal most positive
423401 number is allowed). This flag will only be set for a signed
424402 operand. */
425−#define PPC_OPERAND_NEGATIVE (0x20000)
403+#define PPC_OPERAND_NEGATIVE (0x10000)
426404
427405 /* Valid range of operand is 0..n rather than 0..n-1. */
428−#define PPC_OPERAND_PLUS1 (0x40000)
406+#define PPC_OPERAND_PLUS1 (0x20000)
429407
430408 /* This operand is optional, and is zero if omitted. This is used for
431409 example, in the optional BF field in the comparison instructions. The
@@ -443,6 +421,11 @@ extern const unsigned int num_powerpc_operands; · 11 unmodified lines
443421 out regardless of the PPC_OPERAND_OPTIONAL field. */
444422 #define PPC_OPERAND_NEXT (0x100000)
445423
424+/* This flag is only used with PPC_OPERAND_OPTIONAL. If this operand
425+ is omitted, then the value it should use for the operand is stored
426+ in the SHIFT field of the immediatly following operand field. */
427+#define PPC_OPERAND_OPTIONAL_VALUE (0x200000)
428+
446429 /* This flag is only used with PPC_OPERAND_OPTIONAL. The operand is
447430 only optional when generating 32-bit code. */
448431 #define PPC_OPERAND_OPTIONAL32 (0x400000)
@@ -481,19 +464,14 @@ extern const int powerpc_num_macros; · 32 unmodified lines
481464 extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, ppc_cpu_t *, const char *);
482465
483466 static inline int64_t
484−ppc_optional_operand_value (const struct powerpc_operand *operand,
485− uint64_t insn,
486− ppc_cpu_t dialect,
487− int num_optional)
467+ppc_optional_operand_value (const struct powerpc_operand *operand)
488468 {
489− if (operand->extract)
490− return (*operand->extract) (insn, dialect, &num_optional);
469+ if ((operand->flags & PPC_OPERAND_OPTIONAL_VALUE) != 0)
470+ return (operand+1)->shift;
491471 return 0;
492472 }
493473
494474 /* PowerPC VLE insns. */
495−#define E_OPCODE_MASK 0xfc00f800
496−
497475 /* Form I16L, uses 16A relocs. */
498476 #define E_OR2I_INSN 0x7000C000
499477 #define E_AND2I_DOT_INSN 0x7000C800
@@ -510,9 +488,6 @@ ppc_optional_operand_value (const struct powerpc_operand *operand, · 10 unmodified lines
510488 #define E_CMPH16I_INSN 0x7000B000
511489 #define E_CMPHL16I_INSN 0x7000B800
512490
513−#define E_LI_INSN 0x70000000
514−#define E_LI_MASK 0xfc008000
515−
516491 #ifdef __cplusplus
517492 }
518493 #endif
binutils/include/opcode/pru.h+1−1
@@ -1,5 +1,5 @@
11 /* TI PRU opcode list for GAS, the GNU assembler.
2− Copyright (C) 2014-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2014-2018 Free Software Foundation, Inc.
33 Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
44
55 This file is part of the GNU opcodes library.
binutils/include/opcode/pyr.h+1−1
@@ -1,6 +1,6 @@
11 /* pyramid.opcode.h -- gdb initial attempt.
22
3− Copyright (C) 2001-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
44
55 This program is free software; you can redistribute it and/or modify
66 it under the terms of the GNU General Public License as published by
binutils/include/opcode/riscv-opc.h+293−305
@@ -1,26 +1,6 @@
1−/* riscv-opc.h. RISC-V instruction opcode and CSR macros.
2− Copyright (C) 2011-2020 Free Software Foundation, Inc.
3− Contributed by Andrew Waterman
4−
5− This file is part of GDB, GAS, and the GNU binutils.
6−
7− GDB, GAS, and the GNU binutils are free software; you can redistribute
8− them and/or modify them under the terms of the GNU General Public
9− License as published by the Free Software Foundation; either version
10− 3, or (at your option) any later version.
11−
12− GDB, GAS, and the GNU binutils are distributed in the hope that they
13− will be useful, but WITHOUT ANY WARRANTY; without even the implied
14− warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15− the GNU General Public License for more details.
16−
17− You should have received a copy of the GNU General Public License
18− along with this program; see the file COPYING3. If not,
19− see <http://www.gnu.org/licenses/>. */
20−
1+/* Automatically generated by parse-opcodes. */
212 #ifndef RISCV_ENCODING_H
223 #define RISCV_ENCODING_H
23−/* Instruction opcode macros. */
244 #define MATCH_SLLI_RV32 0x1013
255 #define MASK_SLLI_RV32 0xfe00707f
266 #define MATCH_SRLI_RV32 0x5013
@@ -161,8 +141,6 @@ · 134 unmodified lines
161141 #define MASK_FENCE 0x707f
162142 #define MATCH_FENCE_I 0x100f
163143 #define MASK_FENCE_I 0x707f
164−#define MATCH_FENCE_TSO 0x8330000f
165−#define MASK_FENCE_TSO 0xfff0707f
166144 #define MATCH_MUL 0x2000033
167145 #define MASK_MUL 0xfe00707f
168146 #define MATCH_MULH 0x2001033
@@ -595,7 +573,6 @@ · 426 unmodified lines
595573 #define MASK_CUSTOM3_RD_RS1 0x707f
596574 #define MATCH_CUSTOM3_RD_RS1_RS2 0x707b
597575 #define MASK_CUSTOM3_RD_RS1_RS2 0x707f
598−/* Privileged CSR addresses (v1.11). */
599576 #define CSR_USTATUS 0x0
600577 #define CSR_UIE 0x4
601578 #define CSR_UTVEC 0x5
@@ -604,6 +581,9 @@ · 2 unmodified lines
604581 #define CSR_UCAUSE 0x42
605582 #define CSR_UTVAL 0x43
606583 #define CSR_UIP 0x44
584+#define CSR_FFLAGS 0x1
585+#define CSR_FRM 0x2
586+#define CSR_FCSR 0x3
607587 #define CSR_CYCLE 0xc00
608588 #define CSR_TIME 0xc01
609589 #define CSR_INSTRET 0xc02
@@ -778,7 +758,6 @@ · 168 unmodified lines
778758 #define CSR_MHPMCOUNTER29H 0xb9d
779759 #define CSR_MHPMCOUNTER30H 0xb9e
780760 #define CSR_MHPMCOUNTER31H 0xb9f
781−#define CSR_MCOUNTINHIBIT 0x320
782761 #define CSR_MHPMEVENT3 0x323
783762 #define CSR_MHPMEVENT4 0x324
784763 #define CSR_MHPMEVENT5 0x325
@@ -808,6 +787,14 @@ · 23 unmodified lines
808787 #define CSR_MHPMEVENT29 0x33d
809788 #define CSR_MHPMEVENT30 0x33e
810789 #define CSR_MHPMEVENT31 0x33f
790+#define CSR_TSELECT 0x7a0
791+#define CSR_TDATA1 0x7a1
792+#define CSR_TDATA2 0x7a2
793+#define CSR_TDATA3 0x7a3
794+#define CSR_DCSR 0x7b0
795+#define CSR_DPC 0x7b1
796+#define CSR_DSCRATCH 0x7b2
797+/* These registers are present in priv spec 1.9.1, dropped in 1.10. */
811798 #define CSR_HSTATUS 0x200
812799 #define CSR_HEDELEG 0x202
813800 #define CSR_HIDELEG 0x203
@@ -818,31 +805,29 @@ · 4 unmodified lines
818805 #define CSR_HCAUSE 0x242
819806 #define CSR_HBADADDR 0x243
820807 #define CSR_HIP 0x244
808+/* CSR_MISA is 0xf10 in 1.9, but 0x301 in 1.9.1. */
821809 #define CSR_MBASE 0x380
822810 #define CSR_MBOUND 0x381
823811 #define CSR_MIBASE 0x382
824812 #define CSR_MIBOUND 0x383
825813 #define CSR_MDBASE 0x384
826814 #define CSR_MDBOUND 0x385
815+#define CSR_MUCOUNTEREN 0x320
827816 #define CSR_MSCOUNTEREN 0x321
828817 #define CSR_MHCOUNTEREN 0x322
829−/* Unprivileged CSR addresses. */
830−#define CSR_FFLAGS 0x1
831−#define CSR_FRM 0x2
832−#define CSR_FCSR 0x3
833−#define CSR_DCSR 0x7b0
834−#define CSR_DPC 0x7b1
835−#define CSR_DSCRATCH0 0x7b2
836−#define CSR_DSCRATCH1 0x7b3
837−#define CSR_TSELECT 0x7a0
838−#define CSR_TDATA1 0x7a1
839−#define CSR_TDATA2 0x7a2
840−#define CSR_TDATA3 0x7a3
841−#define CSR_TINFO 0x7a4
842−#define CSR_TCONTROL 0x7a5
843−#define CSR_MCONTEXT 0x7a8
844−#define CSR_SCONTEXT 0x7aa
845−#endif /* RISCV_ENCODING_H. */
818+#define CAUSE_MISALIGNED_FETCH 0x0
819+#define CAUSE_FAULT_FETCH 0x1
820+#define CAUSE_ILLEGAL_INSTRUCTION 0x2
821+#define CAUSE_BREAKPOINT 0x3
822+#define CAUSE_MISALIGNED_LOAD 0x4
823+#define CAUSE_FAULT_LOAD 0x5
824+#define CAUSE_MISALIGNED_STORE 0x6
825+#define CAUSE_FAULT_STORE 0x7
826+#define CAUSE_USER_ECALL 0x8
827+#define CAUSE_SUPERVISOR_ECALL 0x9
828+#define CAUSE_HYPERVISOR_ECALL 0xa
829+#define CAUSE_MACHINE_ECALL 0xb
830+#endif
846831 #ifdef DECLARE_INSN
847832 DECLARE_INSN(slli_rv32, MATCH_SLLI_RV32, MASK_SLLI_RV32)
848833 DECLARE_INSN(srli_rv32, MATCH_SRLI_RV32, MASK_SRLI_RV32)
@@ -1127,268 +1112,271 @@ DECLARE_INSN(custom3_rs1_rs2, MATCH_CUSTOM3_RS1_RS2, MASK_CUSTOM3_RS1_RS2) · 278 unmodified lines
11271112 DECLARE_INSN(custom3_rd, MATCH_CUSTOM3_RD, MASK_CUSTOM3_RD)
11281113 DECLARE_INSN(custom3_rd_rs1, MATCH_CUSTOM3_RD_RS1, MASK_CUSTOM3_RD_RS1)
11291114 DECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2, MASK_CUSTOM3_RD_RS1_RS2)
1130−#endif /* DECLARE_INSN. */
1115+#endif
11311116 #ifdef DECLARE_CSR
1132−/* Privileged. */
1133−DECLARE_CSR(ustatus, CSR_USTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1134−DECLARE_CSR(uie, CSR_UIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1135−DECLARE_CSR(utvec, CSR_UTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1136−DECLARE_CSR(uscratch, CSR_USCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1137−DECLARE_CSR(uepc, CSR_UEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1138−DECLARE_CSR(ucause, CSR_UCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1139−DECLARE_CSR(utval, CSR_UTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1140−DECLARE_CSR(uip, CSR_UIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1141−DECLARE_CSR(cycle, CSR_CYCLE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1142−DECLARE_CSR(time, CSR_TIME, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1143−DECLARE_CSR(instret, CSR_INSTRET, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1144−DECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1145−DECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1146−DECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1147−DECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1148−DECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1149−DECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1150−DECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1151−DECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1152−DECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1153−DECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1154−DECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1155−DECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1156−DECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1157−DECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1158−DECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1159−DECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1160−DECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1161−DECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1162−DECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1163−DECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1164−DECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1165−DECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1166−DECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1167−DECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1168−DECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1169−DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1170−DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1171−DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1172−DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1173−DECLARE_CSR(cycleh, CSR_CYCLEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1174−DECLARE_CSR(timeh, CSR_TIMEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1175−DECLARE_CSR(instreth, CSR_INSTRETH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1176−DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1177−DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1178−DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1179−DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1180−DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1181−DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1182−DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1183−DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1184−DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1185−DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1186−DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1187−DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1188−DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1189−DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1190−DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1191−DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1192−DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1193−DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1194−DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1195−DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1196−DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1197−DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1198−DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1199−DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1200−DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1201−DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1202−DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1203−DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1204−DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1205−DECLARE_CSR(sstatus, CSR_SSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1206−DECLARE_CSR(sedeleg, CSR_SEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1207−DECLARE_CSR(sideleg, CSR_SIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1208−DECLARE_CSR(sie, CSR_SIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1209−DECLARE_CSR(stvec, CSR_STVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1210−DECLARE_CSR(scounteren, CSR_SCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1211−DECLARE_CSR(sscratch, CSR_SSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1212−DECLARE_CSR(sepc, CSR_SEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1213−DECLARE_CSR(scause, CSR_SCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1214−DECLARE_CSR(stval, CSR_STVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1215−DECLARE_CSR(sip, CSR_SIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1216−DECLARE_CSR(satp, CSR_SATP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1217−DECLARE_CSR(mvendorid, CSR_MVENDORID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1218−DECLARE_CSR(marchid, CSR_MARCHID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1219−DECLARE_CSR(mimpid, CSR_MIMPID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1220−DECLARE_CSR(mhartid, CSR_MHARTID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1221−DECLARE_CSR(mstatus, CSR_MSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1222−DECLARE_CSR(misa, CSR_MISA, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1223−DECLARE_CSR(medeleg, CSR_MEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1224−DECLARE_CSR(mideleg, CSR_MIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1225−DECLARE_CSR(mie, CSR_MIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1226−DECLARE_CSR(mtvec, CSR_MTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1227−DECLARE_CSR(mcounteren, CSR_MCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1228−DECLARE_CSR(mscratch, CSR_MSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1229−DECLARE_CSR(mepc, CSR_MEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1230−DECLARE_CSR(mcause, CSR_MCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1231−DECLARE_CSR(mtval, CSR_MTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1232−DECLARE_CSR(mip, CSR_MIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1233−DECLARE_CSR(pmpcfg0, CSR_PMPCFG0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1234−DECLARE_CSR(pmpcfg1, CSR_PMPCFG1, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1235−DECLARE_CSR(pmpcfg2, CSR_PMPCFG2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1236−DECLARE_CSR(pmpcfg3, CSR_PMPCFG3, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1237−DECLARE_CSR(pmpaddr0, CSR_PMPADDR0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1238−DECLARE_CSR(pmpaddr1, CSR_PMPADDR1, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1239−DECLARE_CSR(pmpaddr2, CSR_PMPADDR2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1240−DECLARE_CSR(pmpaddr3, CSR_PMPADDR3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1241−DECLARE_CSR(pmpaddr4, CSR_PMPADDR4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1242−DECLARE_CSR(pmpaddr5, CSR_PMPADDR5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1243−DECLARE_CSR(pmpaddr6, CSR_PMPADDR6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1244−DECLARE_CSR(pmpaddr7, CSR_PMPADDR7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1245−DECLARE_CSR(pmpaddr8, CSR_PMPADDR8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1246−DECLARE_CSR(pmpaddr9, CSR_PMPADDR9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1247−DECLARE_CSR(pmpaddr10, CSR_PMPADDR10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1248−DECLARE_CSR(pmpaddr11, CSR_PMPADDR11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1249−DECLARE_CSR(pmpaddr12, CSR_PMPADDR12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1250−DECLARE_CSR(pmpaddr13, CSR_PMPADDR13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1251−DECLARE_CSR(pmpaddr14, CSR_PMPADDR14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1252−DECLARE_CSR(pmpaddr15, CSR_PMPADDR15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
1253−DECLARE_CSR(mcycle, CSR_MCYCLE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1254−DECLARE_CSR(minstret, CSR_MINSTRET, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1255−DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1256−DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1257−DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1258−DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1259−DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1260−DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1261−DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1262−DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1263−DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1264−DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1265−DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1266−DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1267−DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1268−DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1269−DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1270−DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1271−DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1272−DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1273−DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1274−DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1275−DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1276−DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1277−DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1278−DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1279−DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1280−DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1281−DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1282−DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1283−DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1284−DECLARE_CSR(mcycleh, CSR_MCYCLEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1285−DECLARE_CSR(minstreth, CSR_MINSTRETH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1286−DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1287−DECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1288−DECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1289−DECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1290−DECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1291−DECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1292−DECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1293−DECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1294−DECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1295−DECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1296−DECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1297−DECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1298−DECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1299−DECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1300−DECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1301−DECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1302−DECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1303−DECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1304−DECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1305−DECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1306−DECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1307−DECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1308−DECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1309−DECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1310−DECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1311−DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1312−DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1313−DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1314−DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1315−DECLARE_CSR(mcountinhibit, CSR_MCOUNTINHIBIT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT)
1316−DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1317−DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1318−DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1319−DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1320−DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1321−DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1322−DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1323−DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1324−DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1325−DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1326−DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1327−DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1328−DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1329−DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1330−DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1331−DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1332−DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1333−DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1334−DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1335−DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1336−DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1337−DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1338−DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1339−DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1340−DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1341−DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1342−DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1343−DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1344−DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
1345−/* Dropped. */
1346−DECLARE_CSR(hstatus, CSR_HSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1347−DECLARE_CSR(hedeleg, CSR_HEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1348−DECLARE_CSR(hideleg, CSR_HIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1349−DECLARE_CSR(hie, CSR_HIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1350−DECLARE_CSR(htvec, CSR_HTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1351−DECLARE_CSR(hscratch, CSR_HSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1352−DECLARE_CSR(hepc, CSR_HEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1353−DECLARE_CSR(hcause, CSR_HCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1354−DECLARE_CSR(hbadaddr, CSR_HBADADDR, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1355−DECLARE_CSR(hip, CSR_HIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1356−DECLARE_CSR(mbase, CSR_MBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1357−DECLARE_CSR(mbound, CSR_MBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1358−DECLARE_CSR(mibase, CSR_MIBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1359−DECLARE_CSR(mibound, CSR_MIBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1360−DECLARE_CSR(mdbase, CSR_MDBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1361−DECLARE_CSR(mdbound, CSR_MDBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1362−DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1363−DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1364−/* Unprivileged. */
1365−DECLARE_CSR(fflags, CSR_FFLAGS, CSR_CLASS_F, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1366−DECLARE_CSR(frm, CSR_FRM, CSR_CLASS_F, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1367−DECLARE_CSR(fcsr, CSR_FCSR, CSR_CLASS_F, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1368−DECLARE_CSR(dcsr, CSR_DCSR, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1369−DECLARE_CSR(dpc, CSR_DPC, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1370−DECLARE_CSR(dscratch0, CSR_DSCRATCH0, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1371−DECLARE_CSR(dscratch1, CSR_DSCRATCH1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1372−DECLARE_CSR(tselect, CSR_TSELECT, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1373−DECLARE_CSR(tdata1, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1374−DECLARE_CSR(tdata2, CSR_TDATA2, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1375−DECLARE_CSR(tdata3, CSR_TDATA3, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1376−DECLARE_CSR(tinfo, CSR_TINFO, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1377−DECLARE_CSR(tcontrol, CSR_TCONTROL, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1378−DECLARE_CSR(mcontext, CSR_MCONTEXT, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1379−DECLARE_CSR(scontext, CSR_SCONTEXT, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1380−#endif /* DECLARE_CSR. */
1117+DECLARE_CSR(ustatus, CSR_USTATUS)
1118+DECLARE_CSR(uie, CSR_UIE)
1119+DECLARE_CSR(utvec, CSR_UTVEC)
1120+DECLARE_CSR(uscratch, CSR_USCRATCH)
1121+DECLARE_CSR(uepc, CSR_UEPC)
1122+DECLARE_CSR(ucause, CSR_UCAUSE)
1123+DECLARE_CSR(utval, CSR_UTVAL)
1124+DECLARE_CSR(uip, CSR_UIP)
1125+DECLARE_CSR(fflags, CSR_FFLAGS)
1126+DECLARE_CSR(frm, CSR_FRM)
1127+DECLARE_CSR(fcsr, CSR_FCSR)
1128+DECLARE_CSR(cycle, CSR_CYCLE)
1129+DECLARE_CSR(time, CSR_TIME)
1130+DECLARE_CSR(instret, CSR_INSTRET)
1131+DECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3)
1132+DECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4)
1133+DECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5)
1134+DECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6)
1135+DECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7)
1136+DECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8)
1137+DECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9)
1138+DECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10)
1139+DECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11)
1140+DECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12)
1141+DECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13)
1142+DECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14)
1143+DECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15)
1144+DECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16)
1145+DECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17)
1146+DECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18)
1147+DECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19)
1148+DECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20)
1149+DECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21)
1150+DECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22)
1151+DECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23)
1152+DECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24)
1153+DECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25)
1154+DECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26)
1155+DECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27)
1156+DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28)
1157+DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29)
1158+DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30)
1159+DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31)
1160+DECLARE_CSR(cycleh, CSR_CYCLEH)
1161+DECLARE_CSR(timeh, CSR_TIMEH)
1162+DECLARE_CSR(instreth, CSR_INSTRETH)
1163+DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H)
1164+DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H)
1165+DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H)
1166+DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H)
1167+DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H)
1168+DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H)
1169+DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H)
1170+DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H)
1171+DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H)
1172+DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H)
1173+DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H)
1174+DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H)
1175+DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H)
1176+DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H)
1177+DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H)
1178+DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H)
1179+DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H)
1180+DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H)
1181+DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H)
1182+DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H)
1183+DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H)
1184+DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H)
1185+DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H)
1186+DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H)
1187+DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H)
1188+DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H)
1189+DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H)
1190+DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H)
1191+DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H)
1192+DECLARE_CSR(sstatus, CSR_SSTATUS)
1193+DECLARE_CSR(sedeleg, CSR_SEDELEG)
1194+DECLARE_CSR(sideleg, CSR_SIDELEG)
1195+DECLARE_CSR(sie, CSR_SIE)
1196+DECLARE_CSR(stvec, CSR_STVEC)
1197+DECLARE_CSR(scounteren, CSR_SCOUNTEREN)
1198+DECLARE_CSR(sscratch, CSR_SSCRATCH)
1199+DECLARE_CSR(sepc, CSR_SEPC)
1200+DECLARE_CSR(scause, CSR_SCAUSE)
1201+DECLARE_CSR(stval, CSR_STVAL)
1202+DECLARE_CSR(sip, CSR_SIP)
1203+DECLARE_CSR(satp, CSR_SATP)
1204+DECLARE_CSR(mvendorid, CSR_MVENDORID)
1205+DECLARE_CSR(marchid, CSR_MARCHID)
1206+DECLARE_CSR(mimpid, CSR_MIMPID)
1207+DECLARE_CSR(mhartid, CSR_MHARTID)
1208+DECLARE_CSR(mstatus, CSR_MSTATUS)
1209+DECLARE_CSR(misa, CSR_MISA)
1210+DECLARE_CSR(medeleg, CSR_MEDELEG)
1211+DECLARE_CSR(mideleg, CSR_MIDELEG)
1212+DECLARE_CSR(mie, CSR_MIE)
1213+DECLARE_CSR(mtvec, CSR_MTVEC)
1214+DECLARE_CSR(mcounteren, CSR_MCOUNTEREN)
1215+DECLARE_CSR(mscratch, CSR_MSCRATCH)
1216+DECLARE_CSR(mepc, CSR_MEPC)
1217+DECLARE_CSR(mcause, CSR_MCAUSE)
1218+DECLARE_CSR(mtval, CSR_MTVAL)
1219+DECLARE_CSR(mip, CSR_MIP)
1220+DECLARE_CSR(pmpcfg0, CSR_PMPCFG0)
1221+DECLARE_CSR(pmpcfg1, CSR_PMPCFG1)
1222+DECLARE_CSR(pmpcfg2, CSR_PMPCFG2)
1223+DECLARE_CSR(pmpcfg3, CSR_PMPCFG3)
1224+DECLARE_CSR(pmpaddr0, CSR_PMPADDR0)
1225+DECLARE_CSR(pmpaddr1, CSR_PMPADDR1)
1226+DECLARE_CSR(pmpaddr2, CSR_PMPADDR2)
1227+DECLARE_CSR(pmpaddr3, CSR_PMPADDR3)
1228+DECLARE_CSR(pmpaddr4, CSR_PMPADDR4)
1229+DECLARE_CSR(pmpaddr5, CSR_PMPADDR5)
1230+DECLARE_CSR(pmpaddr6, CSR_PMPADDR6)
1231+DECLARE_CSR(pmpaddr7, CSR_PMPADDR7)
1232+DECLARE_CSR(pmpaddr8, CSR_PMPADDR8)
1233+DECLARE_CSR(pmpaddr9, CSR_PMPADDR9)
1234+DECLARE_CSR(pmpaddr10, CSR_PMPADDR10)
1235+DECLARE_CSR(pmpaddr11, CSR_PMPADDR11)
1236+DECLARE_CSR(pmpaddr12, CSR_PMPADDR12)
1237+DECLARE_CSR(pmpaddr13, CSR_PMPADDR13)
1238+DECLARE_CSR(pmpaddr14, CSR_PMPADDR14)
1239+DECLARE_CSR(pmpaddr15, CSR_PMPADDR15)
1240+DECLARE_CSR(mcycle, CSR_MCYCLE)
1241+DECLARE_CSR(minstret, CSR_MINSTRET)
1242+DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3)
1243+DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4)
1244+DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5)
1245+DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6)
1246+DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7)
1247+DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8)
1248+DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9)
1249+DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10)
1250+DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11)
1251+DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12)
1252+DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13)
1253+DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14)
1254+DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15)
1255+DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16)
1256+DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17)
1257+DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18)
1258+DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19)
1259+DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20)
1260+DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21)
1261+DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22)
1262+DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23)
1263+DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24)
1264+DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25)
1265+DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26)
1266+DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27)
1267+DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28)
1268+DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29)
1269+DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30)
1270+DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31)
1271+DECLARE_CSR(mcycleh, CSR_MCYCLEH)
1272+DECLARE_CSR(minstreth, CSR_MINSTRETH)
1273+DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H)
1274+DECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H)
1275+DECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H)
1276+DECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H)
1277+DECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H)
1278+DECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H)
1279+DECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H)
1280+DECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H)
1281+DECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H)
1282+DECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H)
1283+DECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H)
1284+DECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H)
1285+DECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H)
1286+DECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H)
1287+DECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H)
1288+DECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H)
1289+DECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H)
1290+DECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H)
1291+DECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H)
1292+DECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H)
1293+DECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H)
1294+DECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H)
1295+DECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H)
1296+DECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H)
1297+DECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H)
1298+DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H)
1299+DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H)
1300+DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H)
1301+DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H)
1302+DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
1303+DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
1304+DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
1305+DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
1306+DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
1307+DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
1308+DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
1309+DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
1310+DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
1311+DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
1312+DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
1313+DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
1314+DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
1315+DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
1316+DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
1317+DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
1318+DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
1319+DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
1320+DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
1321+DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
1322+DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
1323+DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
1324+DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
1325+DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
1326+DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
1327+DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
1328+DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
1329+DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
1330+DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
1331+DECLARE_CSR(tselect, CSR_TSELECT)
1332+DECLARE_CSR(tdata1, CSR_TDATA1)
1333+DECLARE_CSR(tdata2, CSR_TDATA2)
1334+DECLARE_CSR(tdata3, CSR_TDATA3)
1335+DECLARE_CSR(dcsr, CSR_DCSR)
1336+DECLARE_CSR(dpc, CSR_DPC)
1337+DECLARE_CSR(dscratch, CSR_DSCRATCH)
1338+/* These registers are present in priv spec 1.9.1, dropped in 1.10. */
1339+DECLARE_CSR(hstatus, CSR_HSTATUS)
1340+DECLARE_CSR(hedeleg, CSR_HEDELEG)
1341+DECLARE_CSR(hideleg, CSR_HIDELEG)
1342+DECLARE_CSR(hie, CSR_HIE)
1343+DECLARE_CSR(htvec, CSR_HTVEC)
1344+DECLARE_CSR(hscratch, CSR_HSCRATCH)
1345+DECLARE_CSR(hepc, CSR_HEPC)
1346+DECLARE_CSR(hcause, CSR_HCAUSE)
1347+DECLARE_CSR(hbadaddr, CSR_HBADADDR)
1348+DECLARE_CSR(hip, CSR_HIP)
1349+DECLARE_CSR(mbase, CSR_MBASE)
1350+DECLARE_CSR(mbound, CSR_MBOUND)
1351+DECLARE_CSR(mibase, CSR_MIBASE)
1352+DECLARE_CSR(mibound, CSR_MIBOUND)
1353+DECLARE_CSR(mdbase, CSR_MDBASE)
1354+DECLARE_CSR(mdbound, CSR_MDBOUND)
1355+DECLARE_CSR(mucounteren, CSR_MUCOUNTEREN)
1356+DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN)
1357+DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN)
1358+#endif
13811359 #ifdef DECLARE_CSR_ALIAS
1382−DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1383−DECLARE_CSR_ALIAS(sbadaddr, CSR_STVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1384−DECLARE_CSR_ALIAS(sptbr, CSR_SATP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1385−DECLARE_CSR_ALIAS(mbadaddr, CSR_MTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1386−DECLARE_CSR_ALIAS(mucounteren, CSR_MCOUNTINHIBIT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
1387−DECLARE_CSR_ALIAS(dscratch, CSR_DSCRATCH0, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1388−DECLARE_CSR_ALIAS(mcontrol, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1389−DECLARE_CSR_ALIAS(icount, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1390−DECLARE_CSR_ALIAS(itrigger, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1391−DECLARE_CSR_ALIAS(etrigger, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1392−DECLARE_CSR_ALIAS(textra32, CSR_TDATA3, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1393−DECLARE_CSR_ALIAS(textra64, CSR_TDATA3, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
1394−#endif /* DECLARE_CSR_ALIAS. */
1360+/* Ubadaddr is 0x043 in 1.9.1, but 0x043 is utval in 1.10. */
1361+DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL)
1362+/* Sbadaddr is 0x143 in 1.9.1, but 0x143 is stval in 1.10. */
1363+DECLARE_CSR_ALIAS(sbadaddr, CSR_STVAL)
1364+/* Sptbr is 0x180 in 1.9.1, but 0x180 is satp in 1.10. */
1365+DECLARE_CSR_ALIAS(sptbr, CSR_SATP)
1366+/* Mbadaddr is 0x343 in 1.9.1, but 0x343 is mtval in 1.10. */
1367+DECLARE_CSR_ALIAS(mbadaddr, CSR_MTVAL)
1368+#endif
1369+#ifdef DECLARE_CAUSE
1370+DECLARE_CAUSE("misaligned fetch", CAUSE_MISALIGNED_FETCH)
1371+DECLARE_CAUSE("fault fetch", CAUSE_FAULT_FETCH)
1372+DECLARE_CAUSE("illegal instruction", CAUSE_ILLEGAL_INSTRUCTION)
1373+DECLARE_CAUSE("breakpoint", CAUSE_BREAKPOINT)
1374+DECLARE_CAUSE("misaligned load", CAUSE_MISALIGNED_LOAD)
1375+DECLARE_CAUSE("fault load", CAUSE_FAULT_LOAD)
1376+DECLARE_CAUSE("misaligned store", CAUSE_MISALIGNED_STORE)
1377+DECLARE_CAUSE("fault store", CAUSE_FAULT_STORE)
1378+DECLARE_CAUSE("user_ecall", CAUSE_USER_ECALL)
1379+DECLARE_CAUSE("supervisor_ecall", CAUSE_SUPERVISOR_ECALL)
1380+DECLARE_CAUSE("hypervisor_ecall", CAUSE_HYPERVISOR_ECALL)
1381+DECLARE_CAUSE("machine_ecall", CAUSE_MACHINE_ECALL)
1382+#endif
binutils/include/opcode/riscv.h+7−137
@@ -1,5 +1,5 @@
11 /* riscv.h. RISC-V opcode list for GDB, the GNU debugger.
2− Copyright (C) 2011-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
33 Contributed by Andrew Waterman
44
55 This file is part of GDB, GAS, and the GNU binutils.
@@ -204,7 +204,7 @@ static const char * const riscv_pred_succ[16] = · 198 unmodified lines
204204 #define OP_SH_RS2 20
205205 #define OP_MASK_RS1 0x1f
206206 #define OP_SH_RS1 15
207−#define OP_MASK_RS3 0x1fU
207+#define OP_MASK_RS3 0x1f
208208 #define OP_SH_RS3 27
209209 #define OP_MASK_RD 0x1f
210210 #define OP_SH_RD 7
@@ -223,14 +223,14 @@ static const char * const riscv_pred_succ[16] = · 12 unmodified lines
223223 #define OP_MASK_RL 0x1
224224 #define OP_SH_RL 25
225225
226−#define OP_MASK_CUSTOM_IMM 0x7fU
226+#define OP_MASK_CUSTOM_IMM 0x7f
227227 #define OP_SH_CUSTOM_IMM 25
228−#define OP_MASK_CSR 0xfffU
228+#define OP_MASK_CSR 0xfff
229229 #define OP_SH_CSR 20
230230
231231 #define OP_MASK_FUNCT3 0x7
232232 #define OP_SH_FUNCT3 12
233−#define OP_MASK_FUNCT7 0x7fU
233+#define OP_MASK_FUNCT7 0x7f
234234 #define OP_SH_FUNCT7 25
235235 #define OP_MASK_FUNCT2 0x3
236236 #define OP_SH_FUNCT2 25
@@ -247,14 +247,10 @@ static const char * const riscv_pred_succ[16] = · 10 unmodified lines
247247 #define OP_MASK_CRS2S 0x7
248248 #define OP_SH_CRS2S 2
249249
250−#define OP_MASK_CFUNCT6 0x3f
251−#define OP_SH_CFUNCT6 10
252250 #define OP_MASK_CFUNCT4 0xf
253251 #define OP_SH_CFUNCT4 12
254252 #define OP_MASK_CFUNCT3 0x7
255253 #define OP_SH_CFUNCT3 13
256−#define OP_MASK_CFUNCT2 0x3
257−#define OP_SH_CFUNCT2 5
258254
259255 /* ABI names for selected x-registers. */
260256
@@ -270,12 +266,6 @@ static const char * const riscv_pred_succ[16] = · 9 unmodified lines
270266 #define NGPR 32
271267 #define NFPR 32
272268
273−/* These fake label defines are use by both the assembler, and
274− libopcodes. The assembler uses this when it needs to generate a fake
275− label, and libopcodes uses it to hide the fake labels in its output. */
276−#define RISCV_FAKE_LABEL_NAME ".L0 "
277−#define RISCV_FAKE_LABEL_CHAR ' '
278−
279269 /* Replace bits MASK << SHIFT of STRUCT with the equivalent bits in
280270 VALUE << SHIFT. VALUE is evaluated exactly once. */
281271 #define INSERT_BITS(STRUCT, VALUE, MASK, SHIFT) \
@@ -291,37 +281,14 @@ static const char * const riscv_pred_succ[16] = · 9 unmodified lines
291281 #define EXTRACT_OPERAND(FIELD, INSN) \
292282 EXTRACT_BITS ((INSN), OP_MASK_##FIELD, OP_SH_##FIELD)
293283
294−/* The maximal number of subset can be required. */
295−#define MAX_SUBSET_NUM 4
296−
297−/* All RISC-V instructions belong to at least one of these classes. */
298−
299−enum riscv_insn_class
300− {
301− INSN_CLASS_NONE,
302−
303− INSN_CLASS_I,
304− INSN_CLASS_C,
305− INSN_CLASS_A,
306− INSN_CLASS_M,
307− INSN_CLASS_F,
308− INSN_CLASS_D,
309− INSN_CLASS_D_AND_C,
310− INSN_CLASS_F_AND_C,
311− INSN_CLASS_Q,
312− };
313−
314284 /* This structure holds information for a particular instruction. */
315285
316286 struct riscv_opcode
317287 {
318288 /* The name of the instruction. */
319289 const char *name;
320− /* The requirement of xlen for the instruction, 0 if no requirement. */
321− unsigned xlen_requirement;
322− /* Class to which this instruction belongs. Used to decide whether or
323− not this instruction is legal in the current -march context. */
324− enum riscv_insn_class insn_class;
290+ /* The ISA subset name (I, M, A, F, D, Xextension). */
291+ const char *subset;
325292 /* A string describing the arguments for this instruction. */
326293 const char *args;
327294 /* The basic opcode for the instruction. When assembling, this
@@ -343,101 +310,8 @@ struct riscv_opcode · 15 unmodified lines
343310 unsigned long pinfo;
344311 };
345312
346−/* The current supported ISA spec versions. */
347−
348−enum riscv_isa_spec_class
349−{
350− ISA_SPEC_CLASS_NONE,
351−
352− ISA_SPEC_CLASS_2P2,
353− ISA_SPEC_CLASS_20190608,
354− ISA_SPEC_CLASS_20191213
355−};
356−
357−/* This structure holds version information for specific ISA. */
358−
359−struct riscv_ext_version
360−{
361− const char *name;
362− enum riscv_isa_spec_class isa_spec_class;
363− unsigned int major_version;
364− unsigned int minor_version;
365−};
366−
367−/* All RISC-V CSR belong to one of these classes. */
368−
369−enum riscv_csr_class
370−{
371− CSR_CLASS_NONE,
372−
373− CSR_CLASS_I,
374− CSR_CLASS_I_32, /* rv32 only */
375− CSR_CLASS_F, /* f-ext only */
376− CSR_CLASS_DEBUG /* debug CSR */
377−};
378−
379−/* The current supported privilege spec versions. */
380−
381−enum riscv_priv_spec_class
382−{
383− PRIV_SPEC_CLASS_NONE,
384−
385− PRIV_SPEC_CLASS_1P9P1,
386− PRIV_SPEC_CLASS_1P10,
387− PRIV_SPEC_CLASS_1P11,
388− PRIV_SPEC_CLASS_DRAFT
389−};
390−
391−/* This structure holds all restricted conditions for a CSR. */
392−
393−struct riscv_csr_extra
394−{
395− /* Class to which this CSR belongs. Used to decide whether or
396− not this CSR is legal in the current -march context. */
397− enum riscv_csr_class csr_class;
398−
399− /* CSR may have differnet numbers in the previous priv spec. */
400− unsigned address;
401−
402− /* Record the CSR is defined/valid in which versions. */
403− enum riscv_priv_spec_class define_version;
404−
405− /* Record the CSR is aborted/invalid from which versions. If it isn't
406− aborted in the current version, then it should be CSR_CLASS_VDRAFT. */
407− enum riscv_priv_spec_class abort_version;
408−
409− /* The CSR may have more than one setting. */
410− struct riscv_csr_extra *next;
411−};
412−
413313 /* Instruction is a simple alias (e.g. "mv" for "addi"). */
414314 #define INSN_ALIAS 0x00000001
415−
416−/* These are for setting insn_info fields.
417−
418− Nonbranch is the default. Noninsn is used only if there is no match.
419− There are no condjsr or dref2 instructions. So that leaves condbranch,
420− branch, jsr, and dref that we need to handle here, encoded in 3 bits. */
421−#define INSN_TYPE 0x0000000e
422−
423−/* Instruction is an unconditional branch. */
424−#define INSN_BRANCH 0x00000002
425−/* Instruction is a conditional branch. */
426−#define INSN_CONDBRANCH 0x00000004
427−/* Instruction is a jump to subroutine. */
428−#define INSN_JSR 0x00000006
429−/* Instruction is a data reference. */
430−#define INSN_DREF 0x00000008
431−
432−/* We have 5 data reference sizes, which we can encode in 3 bits. */
433−#define INSN_DATA_SIZE 0x00000070
434−#define INSN_DATA_SIZE_SHIFT 4
435−#define INSN_1_BYTE 0x00000010
436−#define INSN_2_BYTE 0x00000020
437−#define INSN_4_BYTE 0x00000030
438−#define INSN_8_BYTE 0x00000040
439−#define INSN_16_BYTE 0x00000050
440−
441315 /* Instruction is actually a macro. It should be ignored by the
442316 disassembler, and requires special treatment by the assembler. */
443317 #define INSN_MACRO 0xffffffff
@@ -487,9 +361,5 @@ extern const char * const riscv_fpr_names_abi[NFPR]; · 43 unmodified lines
487361
488362 extern const struct riscv_opcode riscv_opcodes[];
489363 extern const struct riscv_opcode riscv_insn_types[];
490−extern const struct riscv_ext_version riscv_ext_version_table[];
491−
492−extern int
493−riscv_get_isa_spec_class (const char *, enum riscv_isa_spec_class *);
494364
495365 #endif /* _RISCV_H_ */
binutils/include/opcode/rl78.h+1−1
@@ -1,5 +1,5 @@
11 /* Opcode decoder for the Renesas RL78
2− Copyright (C) 2011-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
33 Written by DJ Delorie <dj@redhat.com>
44
55 This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
binutils/include/opcode/rx.h+1−33
@@ -1,5 +1,5 @@
11 /* Opcode decoder for the Renesas RX
2− Copyright (C) 2008-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
33 Written by DJ Delorie <dj@redhat.com>
44
55 This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
@@ -38,7 +38,6 @@ typedef enum · 32 unmodified lines
3838 RX_SWord,
3939 RX_3Byte,
4040 RX_Long,
41− RX_Double,
4241 RX_Bad_Size,
4342 RX_MAX_SIZE
4443 } RX_Size;
@@ -55,11 +54,6 @@ typedef enum · 10 unmodified lines
5554 RX_Operand_Condition, /* eq, gtu, etc */
5655 RX_Operand_Flag, /* [UIOSZC] */
5756 RX_Operand_TwoReg, /* [Rn + scale*R2] */
58− RX_Operand_DoubleReg, /* DRn */
59− RX_Operand_DoubleRegH,/* DRHn */
60− RX_Operand_DoubleRegL,/* DRLn */
61− RX_Operand_DoubleCReg,/* DCRxx */
62− RX_Operand_DoubleCond,/* UN/EQ/LE/LT */
6357 } RX_Operand_Type;
6458
6559 typedef enum
@@ -186,32 +180,6 @@ typedef enum · 120 unmodified lines
186180 RXO_racl,
187181 RXO_rdacl,
188182 RXO_rdacw,
189−
190− RXO_bfmov,
191− RXO_bfmovz,
192− RXO_rstr,
193− RXO_save,
194− RXO_dmov,
195− RXO_dpopm,
196− RXO_dpushm,
197− RXO_mvfdc,
198− RXO_mvfdr,
199− RXO_mvtdc,
200− RXO_dabs,
201− RXO_dadd,
202− RXO_dcmp,
203− RXO_ddiv,
204− RXO_dmul,
205− RXO_dneg,
206− RXO_dround,
207− RXO_dsqrt,
208− RXO_dsub,
209− RXO_dtoi,
210− RXO_dtof,
211− RXO_dtou,
212− RXO_ftod,
213− RXO_itod,
214− RXO_utod
215183 } RX_Opcode_ID;
216184
217185 /* Condition bitpatterns, as registers. */
binutils/include/opcode/s12z.h+0−75
@@ -1,75 +0,0 @@
1−#ifndef S12Z_H
2−#define S12Z_H
3−
4−/* This byte is used to prefix instructions in "page 2" of the opcode
5− space. */
6−#define PAGE2_PREBYTE (0x1b)
7−
8−struct reg
9−{
10− char *name; /* The canonical name of the register. */
11− int bytes; /* its size, in bytes. */
12−};
13−
14−
15−/* How many registers do we have. Actually there are only 13,
16− because CCL and CCH are the low and high bytes of CCW. But
17− for assemnbly / disassembly purposes they are considered
18− distinct registers. */
19−#define S12Z_N_REGISTERS 15
20−
21−extern const struct reg registers[S12Z_N_REGISTERS];
22−
23−/* Solaris defines REG_Y in sys/regset.h; undef it here to avoid
24− breaking compilation when this target is enabled. */
25−#undef REG_Y
26−
27−enum
28− {
29− REG_D2 = 0,
30− REG_D3,
31− REG_D4,
32− REG_D5,
33− REG_D0,
34− REG_D1,
35− REG_D6,
36− REG_D7,
37− REG_X,
38− REG_Y,
39− REG_S,
40− REG_P,
41− REG_CCH,
42− REG_CCL,
43− REG_CCW
44− };
45−
46−/* Any of the registers d0, d1, ... d7. */
47−#define REG_BIT_Dn \
48−((0x1U << REG_D2) | \
49− (0x1U << REG_D3) | \
50− (0x1U << REG_D4) | \
51− (0x1U << REG_D5) | \
52− (0x1U << REG_D6) | \
53− (0x1U << REG_D7) | \
54− (0x1U << REG_D0) | \
55− (0x1U << REG_D1))
56−
57−/* Any of the registers x, y or z. */
58−#define REG_BIT_XYS \
59−((0x1U << REG_X) | \
60− (0x1U << REG_Y) | \
61− (0x1U << REG_S))
62−
63−/* Any of the registers x, y, z or p. */
64−#define REG_BIT_XYSP \
65−((0x1U << REG_X) | \
66− (0x1U << REG_Y) | \
67− (0x1U << REG_S) | \
68− (0x1U << REG_P))
69−
70−/* The x register or the y register. */
71−#define REG_BIT_XY \
72−((0x1U << REG_X) | \
73− (0x1U << REG_Y))
74−
75−#endif
binutils/include/opcode/s390.h+1−2
@@ -1,5 +1,5 @@
11 /* s390.h -- Header file for S390 opcode table
2− Copyright (C) 2000-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
33 Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
44
55 This file is part of BFD, the Binary File Descriptor library.
@@ -43,7 +43,6 @@ enum s390_opcode_cpu_val · 37 unmodified lines
4343 S390_OPCODE_ZEC12,
4444 S390_OPCODE_Z13,
4545 S390_OPCODE_ARCH12,
46− S390_OPCODE_ARCH13,
4746 S390_OPCODE_MAXCPU
4847 };
4948
binutils/include/opcode/score-datadep.h+1−1
@@ -1,5 +1,5 @@
11 /* score-datadep.h -- Score Instructions data dependency table
2− Copyright (C) 2006-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
33 Contributed by:
44 Brain.lin (brain.lin@sunplusct.com)
55 Mei Ligang (ligang@sunnorth.com.cn)
binutils/include/opcode/score-inst.h+1−1
@@ -1,5 +1,5 @@
11 /* score-inst.h -- Score Instructions Table
2− Copyright (C) 2006-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
33 Contributed by:
44 Brain.lin (brain.lin@sunplusct.com)
55 Mei Ligang (ligang@sunnorth.com.cn)
binutils/include/opcode/sparc.h+1−1
@@ -1,5 +1,5 @@
11 /* Definitions for opcode table for the sparc.
2− Copyright (C) 1989-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
33
44 This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
55 the GNU Binutils.
binutils/include/opcode/spu-insns.h+1−1
@@ -1,6 +1,6 @@
11 /* SPU ELF support for BFD.
22
3− Copyright (C) 2006-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
44
55 This file is part of BFD, the Binary File Descriptor library.
66
binutils/include/opcode/spu.h+18−21
@@ -1,6 +1,6 @@
11 /* SPU ELF support for BFD.
22
3− Copyright (C) 2006-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
44
55 This file is part of GDB, GAS, and the GNU binutils.
66
@@ -87,42 +87,39 @@ struct spu_opcode · 80 unmodified lines
8787 int arg[5];
8888 };
8989
90−#define UNSIGNED_EXTRACT(insn, size, pos) \
91− (((insn) >> (pos)) & ((1u << (size)) - 1))
92−#define SIGNED_EXTRACT(insn, size, pos) \
93− (((int) UNSIGNED_EXTRACT(insn, size, pos) \
94− ^ (1 << ((size) - 1))) - (1 << ((size) - 1)))
90+#define SIGNED_EXTRACT(insn,size,pos) (((int)((insn) << (32-size-pos))) >> (32-size))
91+#define UNSIGNED_EXTRACT(insn,size,pos) (((insn) >> pos) & ((1 << size)-1))
9592
9693 #define DECODE_INSN_RT(insn) (insn & 0x7f)
9794 #define DECODE_INSN_RA(insn) ((insn >> 7) & 0x7f)
9895 #define DECODE_INSN_RB(insn) ((insn >> 14) & 0x7f)
9996 #define DECODE_INSN_RC(insn) ((insn >> 21) & 0x7f)
10097
101−#define DECODE_INSN_I10(insn) SIGNED_EXTRACT (insn, 10, 14)
102−#define DECODE_INSN_U10(insn) UNSIGNED_EXTRACT (insn, 10, 14)
98+#define DECODE_INSN_I10(insn) SIGNED_EXTRACT(insn,10,14)
99+#define DECODE_INSN_U10(insn) UNSIGNED_EXTRACT(insn,10,14)
103100
104101 /* For branching, immediate loads, hbr and lqa/stqa. */
105−#define DECODE_INSN_I16(insn) SIGNED_EXTRACT (insn, 16, 7)
106−#define DECODE_INSN_U16(insn) UNSIGNED_EXTRACT (insn, 16, 7)
102+#define DECODE_INSN_I16(insn) SIGNED_EXTRACT(insn,16,7)
103+#define DECODE_INSN_U16(insn) UNSIGNED_EXTRACT(insn,16,7)
107104
108105 /* for stop */
109−#define DECODE_INSN_U14(insn) UNSIGNED_EXTRACT (insn, 14, 0)
106+#define DECODE_INSN_U14(insn) UNSIGNED_EXTRACT(insn,14,0)
110107
111108 /* For ila */
112−#define DECODE_INSN_I18(insn) SIGNED_EXTRACT (insn, 18, 7)
113−#define DECODE_INSN_U18(insn) UNSIGNED_EXTRACT (insn, 18, 7)
109+#define DECODE_INSN_I18(insn) SIGNED_EXTRACT(insn,18,7)
110+#define DECODE_INSN_U18(insn) UNSIGNED_EXTRACT(insn,18,7)
114111
115112 /* For rotate and shift and generate control mask */
116−#define DECODE_INSN_I7(insn) SIGNED_EXTRACT (insn, 7, 14)
117−#define DECODE_INSN_U7(insn) UNSIGNED_EXTRACT (insn, 7, 14)
113+#define DECODE_INSN_I7(insn) SIGNED_EXTRACT(insn,7,14)
114+#define DECODE_INSN_U7(insn) UNSIGNED_EXTRACT(insn,7,14)
118115
119116 /* For float <-> int conversion */
120−#define DECODE_INSN_I8(insn) SIGNED_EXTRACT (insn, 8, 14)
121−#define DECODE_INSN_U8(insn) UNSIGNED_EXTRACT (insn, 8, 14)
117+#define DECODE_INSN_I8(insn) SIGNED_EXTRACT(insn,8,14)
118+#define DECODE_INSN_U8(insn) UNSIGNED_EXTRACT(insn,8,14)
122119
123120 /* For hbr */
124−#define DECODE_INSN_I9a(insn) \
125− ((SIGNED_EXTRACT (insn, 2, 23) * 128) | (int) UNSIGNED_EXTRACT (insn, 7, 0))
126−#define DECODE_INSN_I9b(insn) \
127− ((SIGNED_EXTRACT (insn, 2, 14) * 128) | (int) UNSIGNED_EXTRACT (insn, 7, 0))
121+#define DECODE_INSN_I9a(insn) ((SIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0))
122+#define DECODE_INSN_I9b(insn) ((SIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0))
123+#define DECODE_INSN_U9a(insn) ((UNSIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0))
124+#define DECODE_INSN_U9b(insn) ((UNSIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0))
128125
binutils/include/opcode/tic30.h+1−1
@@ -1,5 +1,5 @@
11 /* tic30.h -- Header file for TI TMS320C30 opcode table
2− Copyright (C) 1998-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1998-2018 Free Software Foundation, Inc.
33 Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
44
55 This file is part of GDB, GAS, and the GNU binutils.
binutils/include/opcode/tic4x.h+6−8
@@ -1,6 +1,6 @@
11 /* Table of opcodes for the Texas Instruments TMS320C[34]X family.
22
3− Copyright (C) 2002-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
44
55 Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
66
@@ -23,13 +23,11 @@ · 16 unmodified lines
2323 #define IS_CPU_TIC4X(v) ((v) == 0 || (v) == 40 || (v) == 44)
2424
2525 /* Define some bitfield extraction/insertion macros. */
26−#define EXTRU(inst, m, l) \
27− (((inst) >> (l)) & ((2u << ((m) - (l))) - 1))
28−#define EXTRS(inst, m, l) \
29− ((int) ((EXTRU (inst, m, l) ^ (1u << ((m) - (l)))) - (1u << ((m) - (l)))))
30−#define INSERTU(inst, val, m, l) \
31− ((inst) |= ((val) & ((2u << ((m) - (l))) - 1)) << (l))
32−#define INSERTS INSERTU
26+#define EXTR(inst, m, l) ((inst) << (31 - (m)) >> (31 - ((m) - (l))))
27+#define EXTRU(inst, m, l) EXTR ((unsigned long)(inst), (m), (l))
28+#define EXTRS(inst, m, l) EXTR ((long)(inst), (m), (l))
29+#define INSERTU(inst, val, m, l) (inst |= ((val) << (l)))
30+#define INSERTS(inst, val, m, l) INSERTU (inst, ((val) & ((1 << ((m) - (l) + 1)) - 1)), m, l)
3331
3432 /* Define register numbers. */
3533 typedef enum
binutils/include/opcode/tic54x.h+1−1
@@ -1,5 +1,5 @@
11 /* tic54x.h -- Header file for TI TMS320C54X opcode table
2− Copyright (C) 1999-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1999-2018 Free Software Foundation, Inc.
33 Written by Timothy Wall (twall@cygnus.com)
44
55 This file is part of GDB, GAS, and the GNU binutils.
binutils/include/opcode/tic6x-control-registers.h+1−1
@@ -1,5 +1,5 @@
11 /* TI C6X control register information.
2− Copyright (C) 2010-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2010-2018 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
binutils/include/opcode/tic6x-insn-formats.h+1−1
@@ -1,5 +1,5 @@
11 /* TI C6X instruction format information.
2− Copyright (C) 2010-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2010-2018 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
binutils/include/opcode/tic6x-opcode-table.h+1−1
@@ -1,5 +1,5 @@
11 /* TI C6X opcode table.
2− Copyright (C) 2010-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2010-2018 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
binutils/include/opcode/tic6x.h+1−1
@@ -1,5 +1,5 @@
11 /* TI C6X opcode information.
2− Copyright (C) 2010-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2010-2018 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
binutils/include/opcode/tic80.h+283−0
@@ -0,0 +1,283 @@
1+/* tic80.h -- Header file for TI TMS320C80 (MV) opcode table
2+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
3+ Written by Fred Fish (fnf@cygnus.com), Cygnus Support
4+
5+ This file is part of GDB, GAS, and the GNU binutils.
6+
7+ GDB, GAS, and the GNU binutils are free software; you can redistribute
8+ them and/or modify them under the terms of the GNU General Public
9+ License as published by the Free Software Foundation; either version 3,
10+ or (at your option) any later version.
11+
12+ GDB, GAS, and the GNU binutils are distributed in the hope that they
13+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
14+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15+ the GNU General Public License for more details.
16+
17+ You should have received a copy of the GNU General Public License
18+ along with this file; see the file COPYING3. If not, write to the Free
19+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
20+ MA 02110-1301, USA. */
21+
22+#ifndef TIC80_H
23+#define TIC80_H
24+
25+/* The opcode table is an array of struct tic80_opcode. */
26+
27+struct tic80_opcode
28+{
29+ /* The opcode name. */
30+
31+ const char *name;
32+
33+ /* The opcode itself. Those bits which will be filled in with operands
34+ are zeroes. */
35+
36+ unsigned long opcode;
37+
38+ /* The opcode mask. This is used by the disassembler. This is a mask
39+ containing ones indicating those bits which must match the opcode
40+ field, and zeroes indicating those bits which need not match (and are
41+ presumably filled in by operands). */
42+
43+ unsigned long mask;
44+
45+ /* Special purpose flags for this opcode. */
46+
47+ unsigned char flags;
48+
49+ /* An array of operand codes. Each code is an index into the operand
50+ table. They appear in the order which the operands must appear in
51+ assembly code, and are terminated by a zero. FIXME: Adjust size to
52+ match actual requirements when TIc80 support is complete */
53+
54+ unsigned char operands[8];
55+};
56+
57+/* The table itself is sorted by major opcode number, and is otherwise in
58+ the order in which the disassembler should consider instructions.
59+ FIXME: This isn't currently true. */
60+
61+extern const struct tic80_opcode tic80_opcodes[];
62+extern const int tic80_num_opcodes;
63+
64+
65+/* The operands table is an array of struct tic80_operand. */
66+
67+struct tic80_operand
68+{
69+ /* The number of bits in the operand. */
70+
71+ int bits;
72+
73+ /* How far the operand is left shifted in the instruction. */
74+
75+ int shift;
76+
77+ /* Insertion function. This is used by the assembler. To insert an
78+ operand value into an instruction, check this field.
79+
80+ If it is NULL, execute
81+ i |= (op & ((1 << o->bits) - 1)) << o->shift;
82+ (i is the instruction which we are filling in, o is a pointer to
83+ this structure, and op is the opcode value; this assumes twos
84+ complement arithmetic).
85+
86+ If this field is not NULL, then simply call it with the
87+ instruction and the operand value. It will return the new value
88+ of the instruction. If the ERRMSG argument is not NULL, then if
89+ the operand value is illegal, *ERRMSG will be set to a warning
90+ string (the operand will be inserted in any case). If the
91+ operand value is legal, *ERRMSG will be unchanged (most operands
92+ can accept any value). */
93+
94+ unsigned long (*insert)
95+ (unsigned long instruction, long op, const char **errmsg);
96+
97+ /* Extraction function. This is used by the disassembler. To
98+ extract this operand type from an instruction, check this field.
99+
100+ If it is NULL, compute
101+ op = ((i) >> o->shift) & ((1 << o->bits) - 1);
102+ if ((o->flags & TIC80_OPERAND_SIGNED) != 0
103+ && (op & (1 << (o->bits - 1))) != 0)
104+ op -= 1 << o->bits;
105+ (i is the instruction, o is a pointer to this structure, and op
106+ is the result; this assumes twos complement arithmetic).
107+
108+ If this field is not NULL, then simply call it with the
109+ instruction value. It will return the value of the operand. If
110+ the INVALID argument is not NULL, *INVALID will be set to
111+ non-zero if this operand type can not actually be extracted from
112+ this operand (i.e., the instruction does not match). If the
113+ operand is valid, *INVALID will not be changed. */
114+
115+ long (*extract) (unsigned long instruction, int *invalid);
116+
117+ /* One bit syntax flags. */
118+
119+ unsigned long flags;
120+};
121+
122+/* Elements in the table are retrieved by indexing with values from
123+ the operands field of the tic80_opcodes table. */
124+
125+extern const struct tic80_operand tic80_operands[];
126+
127+
128+/* Values defined for the flags field of a struct tic80_operand.
129+
130+ Note that flags for all predefined symbols, such as the general purpose
131+ registers (ex: r10), control registers (ex: FPST), condition codes (ex:
132+ eq0.b), bit numbers (ex: gt.b), etc are large enough that they can be
133+ or'd into an int where the lower bits contain the actual numeric value
134+ that correponds to this predefined symbol. This way a single int can
135+ contain both the value of the symbol and it's type.
136+ */
137+
138+/* This operand must be an even register number. Floating point numbers
139+ for example are stored in even/odd register pairs. */
140+
141+#define TIC80_OPERAND_EVEN (1 << 0)
142+
143+/* This operand must be an odd register number and must be one greater than
144+ the register number of the previous operand. I.E. the second register in
145+ an even/odd register pair. */
146+
147+#define TIC80_OPERAND_ODD (1 << 1)
148+
149+/* This operand takes signed values. */
150+
151+#define TIC80_OPERAND_SIGNED (1 << 2)
152+
153+/* This operand may be either a predefined constant name or a numeric value.
154+ An example would be a condition code like "eq0.b" which has the numeric
155+ value 0x2. */
156+
157+#define TIC80_OPERAND_NUM (1 << 3)
158+
159+/* This operand should be wrapped in parentheses rather than separated
160+ from the previous one by a comma. This is used for various
161+ instructions, like the load and store instructions, which want
162+ their operands to look like "displacement(reg)" */
163+
164+#define TIC80_OPERAND_PARENS (1 << 4)
165+
166+/* This operand is a PC relative branch offset. The disassembler prints
167+ these symbolically if possible. Note that the offsets are taken as word
168+ offsets. */
169+
170+#define TIC80_OPERAND_PCREL (1 << 5)
171+
172+/* This flag is a hint to the disassembler for using hex as the prefered
173+ printing format, even for small positive or negative immediate values.
174+ Normally values in the range -999 to 999 are printed as signed decimal
175+ values and other values are printed in hex. */
176+
177+#define TIC80_OPERAND_BITFIELD (1 << 6)
178+
179+/* This operand may have a ":m" modifier specified by bit 17 in a short
180+ immediate form instruction. */
181+
182+#define TIC80_OPERAND_M_SI (1 << 7)
183+
184+/* This operand may have a ":m" modifier specified by bit 15 in a long
185+ immediate or register form instruction. */
186+
187+#define TIC80_OPERAND_M_LI (1 << 8)
188+
189+/* This operand may have a ":s" modifier specified in bit 11 in a long
190+ immediate or register form instruction. */
191+
192+#define TIC80_OPERAND_SCALED (1 << 9)
193+
194+/* This operand is a floating point value */
195+
196+#define TIC80_OPERAND_FLOAT (1 << 10)
197+
198+/* This operand is an byte offset from a base relocation. The lower
199+ two bits of the final relocated address are ignored when the value is
200+ written to the program counter. */
201+
202+#define TIC80_OPERAND_BASEREL (1 << 11)
203+
204+/* This operand is an "endmask" field for a shift instruction.
205+ It is treated special in that it can have values of 0-32,
206+ where 0 and 32 result in the same instruction. The assembler
207+ must be able to accept both endmask values. This disassembler
208+ has no way of knowing from the instruction which value was
209+ given at assembly time, so it just uses '0'. */
210+
211+#define TIC80_OPERAND_ENDMASK (1 << 12)
212+
213+/* This operand is one of the 32 general purpose registers.
214+ The disassembler prints these with a leading 'r'. */
215+
216+#define TIC80_OPERAND_GPR (1 << 27)
217+
218+/* This operand is a floating point accumulator register.
219+ The disassembler prints these with a leading 'a'. */
220+
221+#define TIC80_OPERAND_FPA ( 1 << 28)
222+
223+/* This operand is a control register number, either numeric or
224+ symbolic (like "EIF", "EPC", etc).
225+ The disassembler prints these symbolically. */
226+
227+#define TIC80_OPERAND_CR (1 << 29)
228+
229+/* This operand is a condition code, either numeric or
230+ symbolic (like "eq0.b", "ne0.w", etc).
231+ The disassembler prints these symbolically. */
232+
233+#define TIC80_OPERAND_CC (1 << 30)
234+
235+/* This operand is a bit number, either numeric or
236+ symbolic (like "eq.b", "or.f", etc).
237+ The disassembler prints these symbolically.
238+ Note that they appear in the instruction in 1's complement relative
239+ to the values given in the manual. */
240+
241+#define TIC80_OPERAND_BITNUM (1 << 31)
242+
243+/* This mask is used to strip operand bits from an int that contains
244+ both operand bits and a numeric value in the lsbs. */
245+
246+#define TIC80_OPERAND_MASK (TIC80_OPERAND_GPR | TIC80_OPERAND_FPA | TIC80_OPERAND_CR | TIC80_OPERAND_CC | TIC80_OPERAND_BITNUM)
247+
248+
249+/* Flag bits for the struct tic80_opcode flags field. */
250+
251+#define TIC80_VECTOR 01 /* Is a vector instruction */
252+#define TIC80_NO_R0_DEST 02 /* Register r0 cannot be a destination register */
253+
254+
255+/* The opcodes library contains a table that allows translation from predefined
256+ symbol names to numeric values, and vice versa. */
257+
258+/* Structure to hold information about predefined symbols. */
259+
260+struct predefined_symbol
261+{
262+ char *name; /* name to recognize */
263+ int value;
264+};
265+
266+#define PDS_NAME(pdsp) ((pdsp) -> name)
267+#define PDS_VALUE(pdsp) ((pdsp) -> value)
268+
269+/* Translation array. */
270+extern const struct predefined_symbol tic80_predefined_symbols[];
271+/* How many members in the array. */
272+extern const int tic80_num_predefined_symbols;
273+
274+/* Translate value to symbolic name. */
275+const char *tic80_value_to_symbol (int val, int class);
276+
277+/* Translate symbolic name to value. */
278+int tic80_symbol_to_value (char *name, int class);
279+
280+const struct predefined_symbol *tic80_next_predefined_symbol
281+ (const struct predefined_symbol *);
282+
283+#endif /* TIC80_H */
binutils/include/opcode/tilegx.h+1−1
@@ -1,6 +1,6 @@
11 /* TILE-Gx opcode information.
22 *
3− * Copyright (C) 2011-2020 Free Software Foundation, Inc.
3+ * Copyright (C) 2011-2018 Free Software Foundation, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
binutils/include/opcode/tilepro.h+4−2
@@ -1,6 +1,6 @@
11 /* TILEPro opcode information.
22 *
3− * Copyright (C) 2011-2020 Free Software Foundation, Inc.
3+ * Copyright (C) 2011-2018 Free Software Foundation, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
@@ -1412,7 +1412,6 @@ typedef enum · 1405 unmodified lines
14121412 TILEPRO_PIPELINE_Y0,
14131413 TILEPRO_PIPELINE_Y1,
14141414 TILEPRO_PIPELINE_Y2,
1415− TILEPRO_NUM_PIPELINE_ENCODINGS
14161415 } tilepro_pipeline;
14171416
14181417 #define tilepro_is_x_pipeline(p) ((int)(p) <= (int)TILEPRO_PIPELINE_X1)
@@ -1433,6 +1432,9 @@ enum · 14 unmodified lines
14331432 /* Maximum number of instructions in a bundle (2 for X, 3 for Y). */
14341433 TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE = 3,
14351434
1435+ /* How many different pipeline encodings are there? X0, X1, Y0, Y1, Y2. */
1436+ TILEPRO_NUM_PIPELINE_ENCODINGS = 5,
1437+
14361438 /* Log base 2 of TILEPRO_BUNDLE_SIZE_IN_BYTES. */
14371439 TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES = 3,
14381440
binutils/include/opcode/v850.h+2−2
@@ -1,5 +1,5 @@
11 /* v850.h -- Header file for NEC V850 opcode table
2− Copyright (C) 1996-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
33 Written by J.T. Conklin, Cygnus Support
44
55 This file is part of GDB, GAS, and the GNU binutils.
@@ -133,7 +133,7 @@ struct v850_operand · 127 unmodified lines
133133 operand value is legal, *ERRMSG will be unchanged (most operands
134134 can accept any value). */
135135 unsigned long (* insert)
136− (unsigned long instruction, unsigned long op, const char ** errmsg);
136+ (unsigned long instruction, long op, const char ** errmsg);
137137
138138 /* Extraction function. This is used by the disassembler. To
139139 extract this operand type from an instruction, check this field.
binutils/include/opcode/vax.h+1−1
@@ -1,5 +1,5 @@
11 /* Vax opcde list.
2− Copyright (C) 1989-2020 Free Software Foundation, Inc.
2+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
33
44 This file is part of GDB and GAS.
55
binutils/include/opcode/visium.h+1−1
@@ -1,6 +1,6 @@
11 /* Opcode table header for Visium.
22
3− Copyright (C) 2003-2020 Free Software Foundation, Inc.
3+ Copyright (C) 2003-2018 Free Software Foundation, Inc.
44
55 This file is part of GDB, GAS, and GNU binutils.
66
binutils/include/opcode/wasm.h+1−1
@@ -1,5 +1,5 @@
11 /* WebAssembly assembler/disassembler support.
2− Copyright (C) 2017-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
33
44 This file is part of GAS, the GNU assembler.
55
binutils/include/opcode/xgate.h+1−1
@@ -1,5 +1,5 @@
11 /* xgate.h -- Freescale XGATE opcode list
2− Copyright (C) 2010-2020 Free Software Foundation, Inc.
2+ Copyright (C) 2010-2018 Free Software Foundation, Inc.
33 Written by Sean Keys (skeys@ipdatasys.com)
44
55 This file is part of the GNU opcodes library.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t