Module: Crabstone::ARM64
- Defined in:
- lib/arch/arm64.rb,
lib/arch/arm64_const.rb,
lib/arch/arm64_registers.rb
Defined Under Namespace
Classes: Instruction, MemoryOperand, Operand, OperandShift, OperandValue
Constant Summary collapse
- SFT_INVALID =
ARM64 shift type
0- SFT_LSL =
1- SFT_MSL =
2- SFT_LSR =
3- SFT_ASR =
4- SFT_ROR =
5- EXT_INVALID =
ARM64 extender type
0- EXT_UXTB =
1- EXT_UXTH =
2- EXT_UXTW =
3- EXT_UXTX =
4- EXT_SXTB =
5- EXT_SXTH =
6- EXT_SXTW =
7- EXT_SXTX =
8- CC_INVALID =
ARM64 condition code
0- CC_EQ =
1- CC_NE =
2- CC_HS =
3- CC_LO =
4- CC_MI =
5- CC_PL =
6- CC_VS =
7- CC_VC =
8- CC_HI =
9- CC_LS =
10- CC_GE =
11- CC_LT =
12- CC_GT =
13- CC_LE =
14- CC_AL =
15- CC_NV =
16- SYSREG_INVALID =
System registers for MRS
0- SYSREG_MDCCSR_EL0 =
0x9808- SYSREG_DBGDTRRX_EL0 =
0x9828- SYSREG_MDRAR_EL1 =
0x8080- SYSREG_OSLSR_EL1 =
0x808c- SYSREG_DBGAUTHSTATUS_EL1 =
0x83f6- SYSREG_PMCEID0_EL0 =
0xdce6- SYSREG_PMCEID1_EL0 =
0xdce7- SYSREG_MIDR_EL1 =
0xc000- SYSREG_CCSIDR_EL1 =
0xc800- SYSREG_CLIDR_EL1 =
0xc801- SYSREG_CTR_EL0 =
0xd801- SYSREG_MPIDR_EL1 =
0xc005- SYSREG_REVIDR_EL1 =
0xc006- SYSREG_AIDR_EL1 =
0xc807- SYSREG_DCZID_EL0 =
0xd807- SYSREG_ID_PFR0_EL1 =
0xc008- SYSREG_ID_PFR1_EL1 =
0xc009- SYSREG_ID_DFR0_EL1 =
0xc00a- SYSREG_ID_AFR0_EL1 =
0xc00b- SYSREG_ID_MMFR0_EL1 =
0xc00c- SYSREG_ID_MMFR1_EL1 =
0xc00d- SYSREG_ID_MMFR2_EL1 =
0xc00e- SYSREG_ID_MMFR3_EL1 =
0xc00f- SYSREG_ID_ISAR0_EL1 =
0xc010- SYSREG_ID_ISAR1_EL1 =
0xc011- SYSREG_ID_ISAR2_EL1 =
0xc012- SYSREG_ID_ISAR3_EL1 =
0xc013- SYSREG_ID_ISAR4_EL1 =
0xc014- SYSREG_ID_ISAR5_EL1 =
0xc015- SYSREG_ID_A64PFR0_EL1 =
0xc020- SYSREG_ID_A64PFR1_EL1 =
0xc021- SYSREG_ID_A64DFR0_EL1 =
0xc028- SYSREG_ID_A64DFR1_EL1 =
0xc029- SYSREG_ID_A64AFR0_EL1 =
0xc02c- SYSREG_ID_A64AFR1_EL1 =
0xc02d- SYSREG_ID_A64ISAR0_EL1 =
0xc030- SYSREG_ID_A64ISAR1_EL1 =
0xc031- SYSREG_ID_A64MMFR0_EL1 =
0xc038- SYSREG_ID_A64MMFR1_EL1 =
0xc039- SYSREG_MVFR0_EL1 =
0xc018- SYSREG_MVFR1_EL1 =
0xc019- SYSREG_MVFR2_EL1 =
0xc01a- SYSREG_RVBAR_EL1 =
0xc601- SYSREG_RVBAR_EL2 =
0xe601- SYSREG_RVBAR_EL3 =
0xf601- SYSREG_ISR_EL1 =
0xc608- SYSREG_CNTPCT_EL0 =
0xdf01- SYSREG_CNTVCT_EL0 =
0xdf02- SYSREG_TRCSTATR =
0x8818- SYSREG_TRCIDR8 =
0x8806- SYSREG_TRCIDR9 =
0x880e- SYSREG_TRCIDR10 =
0x8816- SYSREG_TRCIDR11 =
0x881e- SYSREG_TRCIDR12 =
0x8826- SYSREG_TRCIDR13 =
0x882e- SYSREG_TRCIDR0 =
0x8847- SYSREG_TRCIDR1 =
0x884f- SYSREG_TRCIDR2 =
0x8857- SYSREG_TRCIDR3 =
0x885f- SYSREG_TRCIDR4 =
0x8867- SYSREG_TRCIDR5 =
0x886f- SYSREG_TRCIDR6 =
0x8877- SYSREG_TRCIDR7 =
0x887f- SYSREG_TRCOSLSR =
0x888c- SYSREG_TRCPDSR =
0x88ac- SYSREG_TRCDEVAFF0 =
0x8bd6- SYSREG_TRCDEVAFF1 =
0x8bde- SYSREG_TRCLSR =
0x8bee- SYSREG_TRCAUTHSTATUS =
0x8bf6- SYSREG_TRCDEVARCH =
0x8bfe- SYSREG_TRCDEVID =
0x8b97- SYSREG_TRCDEVTYPE =
0x8b9f- SYSREG_TRCPIDR4 =
0x8ba7- SYSREG_TRCPIDR5 =
0x8baf- SYSREG_TRCPIDR6 =
0x8bb7- SYSREG_TRCPIDR7 =
0x8bbf- SYSREG_TRCPIDR0 =
0x8bc7- SYSREG_TRCPIDR1 =
0x8bcf- SYSREG_TRCPIDR2 =
0x8bd7- SYSREG_TRCPIDR3 =
0x8bdf- SYSREG_TRCCIDR0 =
0x8be7- SYSREG_TRCCIDR1 =
0x8bef- SYSREG_TRCCIDR2 =
0x8bf7- SYSREG_TRCCIDR3 =
0x8bff- SYSREG_ICC_IAR1_EL1 =
0xc660- SYSREG_ICC_IAR0_EL1 =
0xc640- SYSREG_ICC_HPPIR1_EL1 =
0xc662- SYSREG_ICC_HPPIR0_EL1 =
0xc642- SYSREG_ICC_RPR_EL1 =
0xc65b- SYSREG_ICH_VTR_EL2 =
0xe659- SYSREG_ICH_EISR_EL2 =
0xe65b- SYSREG_ICH_ELSR_EL2 =
0xe65d- SYSREG_DBGDTRTX_EL0 =
System registers for MSR
0x9828- SYSREG_OSLAR_EL1 =
0x8084- SYSREG_PMSWINC_EL0 =
0xdce4- SYSREG_TRCOSLAR =
0x8884- SYSREG_TRCLAR =
0x8be6- SYSREG_ICC_EOIR1_EL1 =
0xc661- SYSREG_ICC_EOIR0_EL1 =
0xc641- SYSREG_ICC_DIR_EL1 =
0xc659- SYSREG_ICC_SGI1R_EL1 =
0xc65d- SYSREG_ICC_ASGI1R_EL1 =
0xc65e- SYSREG_ICC_SGI0R_EL1 =
0xc65f- PSTATE_INVALID =
System PState Field (MSR instruction)
0- PSTATE_SPSEL =
0x05- PSTATE_DAIFSET =
0x1e- PSTATE_DAIFCLR =
0x1f- VAS_INVALID =
Vector arrangement specifier (for FloatingPoint/Advanced SIMD insn)
0- VAS_8B =
1- VAS_16B =
2- VAS_4H =
3- VAS_8H =
4- VAS_2S =
5- VAS_4S =
6- VAS_1D =
7- VAS_2D =
8- VAS_1Q =
9- VESS_INVALID =
Vector element size specifier
0- VESS_B =
1- VESS_H =
2- VESS_S =
3- VESS_D =
4- BARRIER_INVALID =
Memory barrier operands
0- BARRIER_OSHLD =
0x1- BARRIER_OSHST =
0x2- BARRIER_OSH =
0x3- BARRIER_NSHLD =
0x5- BARRIER_NSHST =
0x6- BARRIER_NSH =
0x7- BARRIER_ISHLD =
0x9- BARRIER_ISHST =
0xa- BARRIER_ISH =
0xb- BARRIER_LD =
0xd- BARRIER_ST =
0xe- BARRIER_SY =
0xf- OP_INVALID =
Operand type for instruction’s operands
0- OP_REG =
1- OP_IMM =
2- OP_MEM =
3- OP_FP =
4- OP_CIMM =
64- OP_REG_MRS =
65- OP_REG_MSR =
66- OP_PSTATE =
67- OP_SYS =
68- OP_PREFETCH =
69- OP_BARRIER =
70- TLBI_INVALID =
TLBI operations
0- TLBI_VMALLE1IS =
1- TLBI_VAE1IS =
2- TLBI_ASIDE1IS =
3- TLBI_VAAE1IS =
4- TLBI_VALE1IS =
5- TLBI_VAALE1IS =
6- TLBI_ALLE2IS =
7- TLBI_VAE2IS =
8- TLBI_ALLE1IS =
9- TLBI_VALE2IS =
10- TLBI_VMALLS12E1IS =
11- TLBI_ALLE3IS =
12- TLBI_VAE3IS =
13- TLBI_VALE3IS =
14- TLBI_IPAS2E1IS =
15- TLBI_IPAS2LE1IS =
16- TLBI_IPAS2E1 =
17- TLBI_IPAS2LE1 =
18- TLBI_VMALLE1 =
19- TLBI_VAE1 =
20- TLBI_ASIDE1 =
21- TLBI_VAAE1 =
22- TLBI_VALE1 =
23- TLBI_VAALE1 =
24- TLBI_ALLE2 =
25- TLBI_VAE2 =
26- TLBI_ALLE1 =
27- TLBI_VALE2 =
28- TLBI_VMALLS12E1 =
29- TLBI_ALLE3 =
30- TLBI_VAE3 =
31- TLBI_VALE3 =
32- AT_S1E1R =
AT operations
33- AT_S1E1W =
34- AT_S1E0R =
35- AT_S1E0W =
36- AT_S1E2R =
37- AT_S1E2W =
38- AT_S12E1R =
39- AT_S12E1W =
40- AT_S12E0R =
41- AT_S12E0W =
42- AT_S1E3R =
43- AT_S1E3W =
44- DC_INVALID =
DC operations
0- DC_ZVA =
1- DC_IVAC =
2- DC_ISW =
3- DC_CVAC =
4- DC_CSW =
5- DC_CVAU =
6- DC_CIVAC =
7- DC_CISW =
8- IC_INVALID =
IC operations
0- IC_IALLUIS =
1- IC_IALLU =
2- IC_IVAU =
3- PRFM_INVALID =
Prefetch operations (PRFM)
0- PRFM_PLDL1KEEP =
0x00+1
- PRFM_PLDL1STRM =
0x01+1
- PRFM_PLDL2KEEP =
0x02+1
- PRFM_PLDL2STRM =
0x03+1
- PRFM_PLDL3KEEP =
0x04+1
- PRFM_PLDL3STRM =
0x05+1
- PRFM_PLIL1KEEP =
0x08+1
- PRFM_PLIL1STRM =
0x09+1
- PRFM_PLIL2KEEP =
0x0a+1
- PRFM_PLIL2STRM =
0x0b+1
- PRFM_PLIL3KEEP =
0x0c+1
- PRFM_PLIL3STRM =
0x0d+1
- PRFM_PSTL1KEEP =
0x10+1
- PRFM_PSTL1STRM =
0x11+1
- PRFM_PSTL2KEEP =
0x12+1
- PRFM_PSTL2STRM =
0x13+1
- PRFM_PSTL3KEEP =
0x14+1
- PRFM_PSTL3STRM =
0x15+1
- REG_INVALID =
ARM64 registers
0- REG_X29 =
1- REG_X30 =
2- REG_NZCV =
3- REG_SP =
4- REG_WSP =
5- REG_WZR =
6- REG_XZR =
7- REG_B0 =
8- REG_B1 =
9- REG_B2 =
10- REG_B3 =
11- REG_B4 =
12- REG_B5 =
13- REG_B6 =
14- REG_B7 =
15- REG_B8 =
16- REG_B9 =
17- REG_B10 =
18- REG_B11 =
19- REG_B12 =
20- REG_B13 =
21- REG_B14 =
22- REG_B15 =
23- REG_B16 =
24- REG_B17 =
25- REG_B18 =
26- REG_B19 =
27- REG_B20 =
28- REG_B21 =
29- REG_B22 =
30- REG_B23 =
31- REG_B24 =
32- REG_B25 =
33- REG_B26 =
34- REG_B27 =
35- REG_B28 =
36- REG_B29 =
37- REG_B30 =
38- REG_B31 =
39- REG_D0 =
40- REG_D1 =
41- REG_D2 =
42- REG_D3 =
43- REG_D4 =
44- REG_D5 =
45- REG_D6 =
46- REG_D7 =
47- REG_D8 =
48- REG_D9 =
49- REG_D10 =
50- REG_D11 =
51- REG_D12 =
52- REG_D13 =
53- REG_D14 =
54- REG_D15 =
55- REG_D16 =
56- REG_D17 =
57- REG_D18 =
58- REG_D19 =
59- REG_D20 =
60- REG_D21 =
61- REG_D22 =
62- REG_D23 =
63- REG_D24 =
64- REG_D25 =
65- REG_D26 =
66- REG_D27 =
67- REG_D28 =
68- REG_D29 =
69- REG_D30 =
70- REG_D31 =
71- REG_H0 =
72- REG_H1 =
73- REG_H2 =
74- REG_H3 =
75- REG_H4 =
76- REG_H5 =
77- REG_H6 =
78- REG_H7 =
79- REG_H8 =
80- REG_H9 =
81- REG_H10 =
82- REG_H11 =
83- REG_H12 =
84- REG_H13 =
85- REG_H14 =
86- REG_H15 =
87- REG_H16 =
88- REG_H17 =
89- REG_H18 =
90- REG_H19 =
91- REG_H20 =
92- REG_H21 =
93- REG_H22 =
94- REG_H23 =
95- REG_H24 =
96- REG_H25 =
97- REG_H26 =
98- REG_H27 =
99- REG_H28 =
100- REG_H29 =
101- REG_H30 =
102- REG_H31 =
103- REG_Q0 =
104- REG_Q1 =
105- REG_Q2 =
106- REG_Q3 =
107- REG_Q4 =
108- REG_Q5 =
109- REG_Q6 =
110- REG_Q7 =
111- REG_Q8 =
112- REG_Q9 =
113- REG_Q10 =
114- REG_Q11 =
115- REG_Q12 =
116- REG_Q13 =
117- REG_Q14 =
118- REG_Q15 =
119- REG_Q16 =
120- REG_Q17 =
121- REG_Q18 =
122- REG_Q19 =
123- REG_Q20 =
124- REG_Q21 =
125- REG_Q22 =
126- REG_Q23 =
127- REG_Q24 =
128- REG_Q25 =
129- REG_Q26 =
130- REG_Q27 =
131- REG_Q28 =
132- REG_Q29 =
133- REG_Q30 =
134- REG_Q31 =
135- REG_S0 =
136- REG_S1 =
137- REG_S2 =
138- REG_S3 =
139- REG_S4 =
140- REG_S5 =
141- REG_S6 =
142- REG_S7 =
143- REG_S8 =
144- REG_S9 =
145- REG_S10 =
146- REG_S11 =
147- REG_S12 =
148- REG_S13 =
149- REG_S14 =
150- REG_S15 =
151- REG_S16 =
152- REG_S17 =
153- REG_S18 =
154- REG_S19 =
155- REG_S20 =
156- REG_S21 =
157- REG_S22 =
158- REG_S23 =
159- REG_S24 =
160- REG_S25 =
161- REG_S26 =
162- REG_S27 =
163- REG_S28 =
164- REG_S29 =
165- REG_S30 =
166- REG_S31 =
167- REG_W0 =
168- REG_W1 =
169- REG_W2 =
170- REG_W3 =
171- REG_W4 =
172- REG_W5 =
173- REG_W6 =
174- REG_W7 =
175- REG_W8 =
176- REG_W9 =
177- REG_W10 =
178- REG_W11 =
179- REG_W12 =
180- REG_W13 =
181- REG_W14 =
182- REG_W15 =
183- REG_W16 =
184- REG_W17 =
185- REG_W18 =
186- REG_W19 =
187- REG_W20 =
188- REG_W21 =
189- REG_W22 =
190- REG_W23 =
191- REG_W24 =
192- REG_W25 =
193- REG_W26 =
194- REG_W27 =
195- REG_W28 =
196- REG_W29 =
197- REG_W30 =
198- REG_X0 =
199- REG_X1 =
200- REG_X2 =
201- REG_X3 =
202- REG_X4 =
203- REG_X5 =
204- REG_X6 =
205- REG_X7 =
206- REG_X8 =
207- REG_X9 =
208- REG_X10 =
209- REG_X11 =
210- REG_X12 =
211- REG_X13 =
212- REG_X14 =
213- REG_X15 =
214- REG_X16 =
215- REG_X17 =
216- REG_X18 =
217- REG_X19 =
218- REG_X20 =
219- REG_X21 =
220- REG_X22 =
221- REG_X23 =
222- REG_X24 =
223- REG_X25 =
224- REG_X26 =
225- REG_X27 =
226- REG_X28 =
227- REG_V0 =
228- REG_V1 =
229- REG_V2 =
230- REG_V3 =
231- REG_V4 =
232- REG_V5 =
233- REG_V6 =
234- REG_V7 =
235- REG_V8 =
236- REG_V9 =
237- REG_V10 =
238- REG_V11 =
239- REG_V12 =
240- REG_V13 =
241- REG_V14 =
242- REG_V15 =
243- REG_V16 =
244- REG_V17 =
245- REG_V18 =
246- REG_V19 =
247- REG_V20 =
248- REG_V21 =
249- REG_V22 =
250- REG_V23 =
251- REG_V24 =
252- REG_V25 =
253- REG_V26 =
254- REG_V27 =
255- REG_V28 =
256- REG_V29 =
257- REG_V30 =
258- REG_V31 =
259- REG_ENDING =
260- REG_IP1 =
alias registers
REG_X16- REG_IP0 =
REG_X17- REG_FP =
REG_X29- REG_LR =
REG_X30- INS_INVALID =
ARM64 instruction
0- INS_ABS =
1- INS_ADC =
2- INS_ADDHN =
3- INS_ADDHN2 =
4- INS_ADDP =
5- INS_ADD =
6- INS_ADDV =
7- INS_ADR =
8- INS_ADRP =
9- INS_AESD =
10- INS_AESE =
11- INS_AESIMC =
12- INS_AESMC =
13- INS_AND =
14- INS_ASR =
15- INS_B =
16- INS_BFM =
17- INS_BIC =
18- INS_BIF =
19- INS_BIT =
20- INS_BL =
21- INS_BLR =
22- INS_BR =
23- INS_BRK =
24- INS_BSL =
25- INS_CBNZ =
26- INS_CBZ =
27- INS_CCMN =
28- INS_CCMP =
29- INS_CLREX =
30- INS_CLS =
31- INS_CLZ =
32- INS_CMEQ =
33- INS_CMGE =
34- INS_CMGT =
35- INS_CMHI =
36- INS_CMHS =
37- INS_CMLE =
38- INS_CMLT =
39- INS_CMTST =
40- INS_CNT =
41- INS_MOV =
42- INS_CRC32B =
43- INS_CRC32CB =
44- INS_CRC32CH =
45- INS_CRC32CW =
46- INS_CRC32CX =
47- INS_CRC32H =
48- INS_CRC32W =
49- INS_CRC32X =
50- INS_CSEL =
51- INS_CSINC =
52- INS_CSINV =
53- INS_CSNEG =
54- INS_DCPS1 =
55- INS_DCPS2 =
56- INS_DCPS3 =
57- INS_DMB =
58- INS_DRPS =
59- INS_DSB =
60- INS_DUP =
61- INS_EON =
62- INS_EOR =
63- INS_ERET =
64- INS_EXTR =
65- INS_EXT =
66- INS_FABD =
67- INS_FABS =
68- INS_FACGE =
69- INS_FACGT =
70- INS_FADD =
71- INS_FADDP =
72- INS_FCCMP =
73- INS_FCCMPE =
74- INS_FCMEQ =
75- INS_FCMGE =
76- INS_FCMGT =
77- INS_FCMLE =
78- INS_FCMLT =
79- INS_FCMP =
80- INS_FCMPE =
81- INS_FCSEL =
82- INS_FCVTAS =
83- INS_FCVTAU =
84- INS_FCVT =
85- INS_FCVTL =
86- INS_FCVTL2 =
87- INS_FCVTMS =
88- INS_FCVTMU =
89- INS_FCVTNS =
90- INS_FCVTNU =
91- INS_FCVTN =
92- INS_FCVTN2 =
93- INS_FCVTPS =
94- INS_FCVTPU =
95- INS_FCVTXN =
96- INS_FCVTXN2 =
97- INS_FCVTZS =
98- INS_FCVTZU =
99- INS_FDIV =
100- INS_FMADD =
101- INS_FMAX =
102- INS_FMAXNM =
103- INS_FMAXNMP =
104- INS_FMAXNMV =
105- INS_FMAXP =
106- INS_FMAXV =
107- INS_FMIN =
108- INS_FMINNM =
109- INS_FMINNMP =
110- INS_FMINNMV =
111- INS_FMINP =
112- INS_FMINV =
113- INS_FMLA =
114- INS_FMLS =
115- INS_FMOV =
116- INS_FMSUB =
117- INS_FMUL =
118- INS_FMULX =
119- INS_FNEG =
120- INS_FNMADD =
121- INS_FNMSUB =
122- INS_FNMUL =
123- INS_FRECPE =
124- INS_FRECPS =
125- INS_FRECPX =
126- INS_FRINTA =
127- INS_FRINTI =
128- INS_FRINTM =
129- INS_FRINTN =
130- INS_FRINTP =
131- INS_FRINTX =
132- INS_FRINTZ =
133- INS_FRSQRTE =
134- INS_FRSQRTS =
135- INS_FSQRT =
136- INS_FSUB =
137- INS_HINT =
138- INS_HLT =
139- INS_HVC =
140- INS_INS =
141- INS_ISB =
142- INS_LD1 =
143- INS_LD1R =
144- INS_LD2R =
145- INS_LD2 =
146- INS_LD3R =
147- INS_LD3 =
148- INS_LD4 =
149- INS_LD4R =
150- INS_LDARB =
151- INS_LDARH =
152- INS_LDAR =
153- INS_LDAXP =
154- INS_LDAXRB =
155- INS_LDAXRH =
156- INS_LDAXR =
157- INS_LDNP =
158- INS_LDP =
159- INS_LDPSW =
160- INS_LDRB =
161- INS_LDR =
162- INS_LDRH =
163- INS_LDRSB =
164- INS_LDRSH =
165- INS_LDRSW =
166- INS_LDTRB =
167- INS_LDTRH =
168- INS_LDTRSB =
169- INS_LDTRSH =
170- INS_LDTRSW =
171- INS_LDTR =
172- INS_LDURB =
173- INS_LDUR =
174- INS_LDURH =
175- INS_LDURSB =
176- INS_LDURSH =
177- INS_LDURSW =
178- INS_LDXP =
179- INS_LDXRB =
180- INS_LDXRH =
181- INS_LDXR =
182- INS_LSL =
183- INS_LSR =
184- INS_MADD =
185- INS_MLA =
186- INS_MLS =
187- INS_MOVI =
188- INS_MOVK =
189- INS_MOVN =
190- INS_MOVZ =
191- INS_MRS =
192- INS_MSR =
193- INS_MSUB =
194- INS_MUL =
195- INS_MVNI =
196- INS_NEG =
197- INS_NOT =
198- INS_ORN =
199- INS_ORR =
200- INS_PMULL2 =
201- INS_PMULL =
202- INS_PMUL =
203- INS_PRFM =
204- INS_PRFUM =
205- INS_RADDHN =
206- INS_RADDHN2 =
207- INS_RBIT =
208- INS_RET =
209- INS_REV16 =
210- INS_REV32 =
211- INS_REV64 =
212- INS_REV =
213- INS_ROR =
214- INS_RSHRN2 =
215- INS_RSHRN =
216- INS_RSUBHN =
217- INS_RSUBHN2 =
218- INS_SABAL2 =
219- INS_SABAL =
220- INS_SABA =
221- INS_SABDL2 =
222- INS_SABDL =
223- INS_SABD =
224- INS_SADALP =
225- INS_SADDLP =
226- INS_SADDLV =
227- INS_SADDL2 =
228- INS_SADDL =
229- INS_SADDW2 =
230- INS_SADDW =
231- INS_SBC =
232- INS_SBFM =
233- INS_SCVTF =
234- INS_SDIV =
235- INS_SHA1C =
236- INS_SHA1H =
237- INS_SHA1M =
238- INS_SHA1P =
239- INS_SHA1SU0 =
240- INS_SHA1SU1 =
241- INS_SHA256H2 =
242- INS_SHA256H =
243- INS_SHA256SU0 =
244- INS_SHA256SU1 =
245- INS_SHADD =
246- INS_SHLL2 =
247- INS_SHLL =
248- INS_SHL =
249- INS_SHRN2 =
250- INS_SHRN =
251- INS_SHSUB =
252- INS_SLI =
253- INS_SMADDL =
254- INS_SMAXP =
255- INS_SMAXV =
256- INS_SMAX =
257- INS_SMC =
258- INS_SMINP =
259- INS_SMINV =
260- INS_SMIN =
261- INS_SMLAL2 =
262- INS_SMLAL =
263- INS_SMLSL2 =
264- INS_SMLSL =
265- INS_SMOV =
266- INS_SMSUBL =
267- INS_SMULH =
268- INS_SMULL2 =
269- INS_SMULL =
270- INS_SQABS =
271- INS_SQADD =
272- INS_SQDMLAL =
273- INS_SQDMLAL2 =
274- INS_SQDMLSL =
275- INS_SQDMLSL2 =
276- INS_SQDMULH =
277- INS_SQDMULL =
278- INS_SQDMULL2 =
279- INS_SQNEG =
280- INS_SQRDMULH =
281- INS_SQRSHL =
282- INS_SQRSHRN =
283- INS_SQRSHRN2 =
284- INS_SQRSHRUN =
285- INS_SQRSHRUN2 =
286- INS_SQSHLU =
287- INS_SQSHL =
288- INS_SQSHRN =
289- INS_SQSHRN2 =
290- INS_SQSHRUN =
291- INS_SQSHRUN2 =
292- INS_SQSUB =
293- INS_SQXTN2 =
294- INS_SQXTN =
295- INS_SQXTUN2 =
296- INS_SQXTUN =
297- INS_SRHADD =
298- INS_SRI =
299- INS_SRSHL =
300- INS_SRSHR =
301- INS_SRSRA =
302- INS_SSHLL2 =
303- INS_SSHLL =
304- INS_SSHL =
305- INS_SSHR =
306- INS_SSRA =
307- INS_SSUBL2 =
308- INS_SSUBL =
309- INS_SSUBW2 =
310- INS_SSUBW =
311- INS_ST1 =
312- INS_ST2 =
313- INS_ST3 =
314- INS_ST4 =
315- INS_STLRB =
316- INS_STLRH =
317- INS_STLR =
318- INS_STLXP =
319- INS_STLXRB =
320- INS_STLXRH =
321- INS_STLXR =
322- INS_STNP =
323- INS_STP =
324- INS_STRB =
325- INS_STR =
326- INS_STRH =
327- INS_STTRB =
328- INS_STTRH =
329- INS_STTR =
330- INS_STURB =
331- INS_STUR =
332- INS_STURH =
333- INS_STXP =
334- INS_STXRB =
335- INS_STXRH =
336- INS_STXR =
337- INS_SUBHN =
338- INS_SUBHN2 =
339- INS_SUB =
340- INS_SUQADD =
341- INS_SVC =
342- INS_SYSL =
343- INS_SYS =
344- INS_TBL =
345- INS_TBNZ =
346- INS_TBX =
347- INS_TBZ =
348- INS_TRN1 =
349- INS_TRN2 =
350- INS_UABAL2 =
351- INS_UABAL =
352- INS_UABA =
353- INS_UABDL2 =
354- INS_UABDL =
355- INS_UABD =
356- INS_UADALP =
357- INS_UADDLP =
358- INS_UADDLV =
359- INS_UADDL2 =
360- INS_UADDL =
361- INS_UADDW2 =
362- INS_UADDW =
363- INS_UBFM =
364- INS_UCVTF =
365- INS_UDIV =
366- INS_UHADD =
367- INS_UHSUB =
368- INS_UMADDL =
369- INS_UMAXP =
370- INS_UMAXV =
371- INS_UMAX =
372- INS_UMINP =
373- INS_UMINV =
374- INS_UMIN =
375- INS_UMLAL2 =
376- INS_UMLAL =
377- INS_UMLSL2 =
378- INS_UMLSL =
379- INS_UMOV =
380- INS_UMSUBL =
381- INS_UMULH =
382- INS_UMULL2 =
383- INS_UMULL =
384- INS_UQADD =
385- INS_UQRSHL =
386- INS_UQRSHRN =
387- INS_UQRSHRN2 =
388- INS_UQSHL =
389- INS_UQSHRN =
390- INS_UQSHRN2 =
391- INS_UQSUB =
392- INS_UQXTN2 =
393- INS_UQXTN =
394- INS_URECPE =
395- INS_URHADD =
396- INS_URSHL =
397- INS_URSHR =
398- INS_URSQRTE =
399- INS_URSRA =
400- INS_USHLL2 =
401- INS_USHLL =
402- INS_USHL =
403- INS_USHR =
404- INS_USQADD =
405- INS_USRA =
406- INS_USUBL2 =
407- INS_USUBL =
408- INS_USUBW2 =
409- INS_USUBW =
410- INS_UZP1 =
411- INS_UZP2 =
412- INS_XTN2 =
413- INS_XTN =
414- INS_ZIP1 =
415- INS_ZIP2 =
416- INS_MNEG =
417- INS_UMNEGL =
418- INS_SMNEGL =
419- INS_NOP =
420- INS_YIELD =
421- INS_WFE =
422- INS_WFI =
423- INS_SEV =
424- INS_SEVL =
425- INS_NGC =
426- INS_SBFIZ =
427- INS_UBFIZ =
428- INS_SBFX =
429- INS_UBFX =
430- INS_BFI =
431- INS_BFXIL =
432- INS_CMN =
433- INS_MVN =
434- INS_TST =
435- INS_CSET =
436- INS_CINC =
437- INS_CSETM =
438- INS_CINV =
439- INS_CNEG =
440- INS_SXTB =
441- INS_SXTH =
442- INS_SXTW =
443- INS_CMP =
444- INS_UXTB =
445- INS_UXTH =
446- INS_UXTW =
447- INS_IC =
448- INS_DC =
449- INS_AT =
450- INS_TLBI =
451- INS_ENDING =
452- GRP_INVALID =
Group of ARM64 instructions
0- GRP_JUMP =
Generic groups
1- GRP_CRYPTO =
Architecture-specific groups
128- GRP_FPARMV8 =
129- GRP_NEON =
130- GRP_CRC =
131- GRP_ENDING =
132- REG_LOOKUP =
{ 'INVALID' => 0, 'X29' => 1, 'X30' => 2, 'NZCV' => 3, 'SP' => 4, 'WSP' => 5, 'WZR' => 6, 'XZR' => 7, 'B0' => 8, 'B1' => 9, 'B2' => 10, 'B3' => 11, 'B4' => 12, 'B5' => 13, 'B6' => 14, 'B7' => 15, 'B8' => 16, 'B9' => 17, 'B10' => 18, 'B11' => 19, 'B12' => 20, 'B13' => 21, 'B14' => 22, 'B15' => 23, 'B16' => 24, 'B17' => 25, 'B18' => 26, 'B19' => 27, 'B20' => 28, 'B21' => 29, 'B22' => 30, 'B23' => 31, 'B24' => 32, 'B25' => 33, 'B26' => 34, 'B27' => 35, 'B28' => 36, 'B29' => 37, 'B30' => 38, 'B31' => 39, 'D0' => 40, 'D1' => 41, 'D2' => 42, 'D3' => 43, 'D4' => 44, 'D5' => 45, 'D6' => 46, 'D7' => 47, 'D8' => 48, 'D9' => 49, 'D10' => 50, 'D11' => 51, 'D12' => 52, 'D13' => 53, 'D14' => 54, 'D15' => 55, 'D16' => 56, 'D17' => 57, 'D18' => 58, 'D19' => 59, 'D20' => 60, 'D21' => 61, 'D22' => 62, 'D23' => 63, 'D24' => 64, 'D25' => 65, 'D26' => 66, 'D27' => 67, 'D28' => 68, 'D29' => 69, 'D30' => 70, 'D31' => 71, 'H0' => 72, 'H1' => 73, 'H2' => 74, 'H3' => 75, 'H4' => 76, 'H5' => 77, 'H6' => 78, 'H7' => 79, 'H8' => 80, 'H9' => 81, 'H10' => 82, 'H11' => 83, 'H12' => 84, 'H13' => 85, 'H14' => 86, 'H15' => 87, 'H16' => 88, 'H17' => 89, 'H18' => 90, 'H19' => 91, 'H20' => 92, 'H21' => 93, 'H22' => 94, 'H23' => 95, 'H24' => 96, 'H25' => 97, 'H26' => 98, 'H27' => 99, 'H28' => 100, 'H29' => 101, 'H30' => 102, 'H31' => 103, 'Q0' => 104, 'Q1' => 105, 'Q2' => 106, 'Q3' => 107, 'Q4' => 108, 'Q5' => 109, 'Q6' => 110, 'Q7' => 111, 'Q8' => 112, 'Q9' => 113, 'Q10' => 114, 'Q11' => 115, 'Q12' => 116, 'Q13' => 117, 'Q14' => 118, 'Q15' => 119, 'Q16' => 120, 'Q17' => 121, 'Q18' => 122, 'Q19' => 123, 'Q20' => 124, 'Q21' => 125, 'Q22' => 126, 'Q23' => 127, 'Q24' => 128, 'Q25' => 129, 'Q26' => 130, 'Q27' => 131, 'Q28' => 132, 'Q29' => 133, 'Q30' => 134, 'Q31' => 135, 'S0' => 136, 'S1' => 137, 'S2' => 138, 'S3' => 139, 'S4' => 140, 'S5' => 141, 'S6' => 142, 'S7' => 143, 'S8' => 144, 'S9' => 145, 'S10' => 146, 'S11' => 147, 'S12' => 148, 'S13' => 149, 'S14' => 150, 'S15' => 151, 'S16' => 152, 'S17' => 153, 'S18' => 154, 'S19' => 155, 'S20' => 156, 'S21' => 157, 'S22' => 158, 'S23' => 159, 'S24' => 160, 'S25' => 161, 'S26' => 162, 'S27' => 163, 'S28' => 164, 'S29' => 165, 'S30' => 166, 'S31' => 167, 'W0' => 168, 'W1' => 169, 'W2' => 170, 'W3' => 171, 'W4' => 172, 'W5' => 173, 'W6' => 174, 'W7' => 175, 'W8' => 176, 'W9' => 177, 'W10' => 178, 'W11' => 179, 'W12' => 180, 'W13' => 181, 'W14' => 182, 'W15' => 183, 'W16' => 184, 'W17' => 185, 'W18' => 186, 'W19' => 187, 'W20' => 188, 'W21' => 189, 'W22' => 190, 'W23' => 191, 'W24' => 192, 'W25' => 193, 'W26' => 194, 'W27' => 195, 'W28' => 196, 'W29' => 197, 'W30' => 198, 'X0' => 199, 'X1' => 200, 'X2' => 201, 'X3' => 202, 'X4' => 203, 'X5' => 204, 'X6' => 205, 'X7' => 206, 'X8' => 207, 'X9' => 208, 'X10' => 209, 'X11' => 210, 'X12' => 211, 'X13' => 212, 'X14' => 213, 'X15' => 214, 'X16' => 215, 'X17' => 216, 'X18' => 217, 'X19' => 218, 'X20' => 219, 'X21' => 220, 'X22' => 221, 'X23' => 222, 'X24' => 223, 'X25' => 224, 'X26' => 225, 'X27' => 226, 'X28' => 227, 'V0' => 228, 'V1' => 229, 'V2' => 230, 'V3' => 231, 'V4' => 232, 'V5' => 233, 'V6' => 234, 'V7' => 235, 'V8' => 236, 'V9' => 237, 'V10' => 238, 'V11' => 239, 'V12' => 240, 'V13' => 241, 'V14' => 242, 'V15' => 243, 'V16' => 244, 'V17' => 245, 'V18' => 246, 'V19' => 247, 'V20' => 248, 'V21' => 249, 'V22' => 250, 'V23' => 251, 'V24' => 252, 'V25' => 253, 'V26' => 254, 'V27' => 255, 'V28' => 256, 'V29' => 257, 'V30' => 258, 'V31' => 259 }
- ID_LOOKUP =
REG_LOOKUP.invert
- SYM_LOOKUP =
Class Method Summary collapse
Class Method Details
.register(reg) ⇒ Object
285 286 287 288 289 290 291 292 |
# File 'lib/arch/arm64_registers.rb', line 285 def self.register reg return reg if ID_LOOKUP[reg] return SYM_LOOKUP[reg] if SYM_LOOKUP[reg] if reg.respond_to? :upcase return REG_LOOKUP[reg.upcase] || REG_LOOKUP['INVALID'] end REG_LOOKUP['INVALID'] end |