Module: Crabstone::ARM

Extended by:
Register
Defined in:
lib/crabstone/arch/3/arm.rb,
lib/crabstone/arch/4/arm.rb,
lib/crabstone/arch/5/arm.rb,
lib/crabstone/arch/3/arm_const.rb,
lib/crabstone/arch/4/arm_const.rb,
lib/crabstone/arch/5/arm_const.rb

Defined Under Namespace

Classes: Instruction, Operand, OperandMemory, OperandShift, OperandValue

Constant Summary collapse

SFT_INVALID =
0
SFT_ASR =
1
SFT_LSL =
2
SFT_LSR =
3
SFT_ROR =
4
SFT_RRX =
5
SFT_ASR_REG =
6
SFT_LSL_REG =
7
SFT_LSR_REG =
8
SFT_ROR_REG =
9
SFT_RRX_REG =
10
CC_INVALID =
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
SYSREG_INVALID =
0
SYSREG_SPSR_C =
1
SYSREG_SPSR_X =
2
SYSREG_SPSR_S =
4
SYSREG_SPSR_F =
8
SYSREG_CPSR_C =
16
SYSREG_CPSR_X =
32
SYSREG_CPSR_S =
64
SYSREG_CPSR_F =
128
SYSREG_APSR =
256
SYSREG_APSR_G =
257
SYSREG_APSR_NZCVQ =
258
SYSREG_APSR_NZCVQG =
259
SYSREG_IAPSR =
260
SYSREG_IAPSR_G =
261
SYSREG_IAPSR_NZCVQG =
262
SYSREG_EAPSR =
264
SYSREG_EAPSR_G =
265
SYSREG_EAPSR_NZCVQG =
266
SYSREG_XPSR =
268
SYSREG_XPSR_G =
269
SYSREG_XPSR_NZCVQG =
270
SYSREG_IPSR =
272
SYSREG_EPSR =
273
SYSREG_IEPSR =
274
SYSREG_MSP =
275
SYSREG_PSP =
276
SYSREG_PRIMASK =
277
SYSREG_BASEPRI =
278
SYSREG_BASEPRI_MAX =
279
SYSREG_FAULTMASK =
280
SYSREG_CONTROL =
281
MB_INVALID =
0
MB_RESERVED_0 =
1
MB_OSHLD =
2
MB_OSHST =
3
MB_OSH =
4
MB_RESERVED_4 =
5
MB_NSHLD =
6
MB_NSHST =
7
MB_NSH =
8
MB_RESERVED_8 =
9
MB_ISHLD =
10
MB_ISHST =
11
MB_ISH =
12
MB_RESERVED_12 =
13
MB_LD =
14
MB_ST =
15
MB_SY =
16
OP_INVALID =
0
OP_REG =
1
OP_IMM =
2
OP_MEM =
3
OP_FP =
4
OP_CIMM =
64
OP_PIMM =
65
OP_SETEND =
66
OP_SYSREG =
67
SETEND_INVALID =
0
SETEND_BE =
1
SETEND_LE =
2
CPSMODE_INVALID =
0
CPSMODE_IE =
2
CPSMODE_ID =
3
CPSFLAG_INVALID =
0
CPSFLAG_F =
1
CPSFLAG_I =
2
CPSFLAG_A =
4
CPSFLAG_NONE =
16
VECTORDATA_INVALID =
0
VECTORDATA_I8 =
1
VECTORDATA_I16 =
2
VECTORDATA_I32 =
3
VECTORDATA_I64 =
4
VECTORDATA_S8 =
5
VECTORDATA_S16 =
6
VECTORDATA_S32 =
7
VECTORDATA_S64 =
8
VECTORDATA_U8 =
9
VECTORDATA_U16 =
10
VECTORDATA_U32 =
11
VECTORDATA_U64 =
12
VECTORDATA_P8 =
13
VECTORDATA_F32 =
15
VECTORDATA_F64 =
16
VECTORDATA_F16F64 =
17
VECTORDATA_F64F16 =
18
VECTORDATA_F32F16 =
19
VECTORDATA_F16F32 =
20
VECTORDATA_F64F32 =
21
VECTORDATA_F32F64 =
22
VECTORDATA_S32F32 =
23
VECTORDATA_U32F32 =
24
VECTORDATA_F32S32 =
25
VECTORDATA_F32U32 =
26
VECTORDATA_F64S16 =
27
VECTORDATA_F32S16 =
28
VECTORDATA_F64S32 =
29
VECTORDATA_S16F64 =
30
VECTORDATA_S16F32 =
31
VECTORDATA_S32F64 =
32
VECTORDATA_U16F64 =
33
VECTORDATA_U16F32 =
34
VECTORDATA_U32F64 =
35
VECTORDATA_F64U16 =
36
VECTORDATA_F32U16 =
37
VECTORDATA_F64U32 =
38
REG_INVALID =
0
REG_APSR =
1
REG_APSR_NZCV =
2
REG_CPSR =
3
REG_FPEXC =
4
REG_FPINST =
5
REG_FPSCR =
6
REG_FPSCR_NZCV =
7
REG_FPSID =
8
REG_ITSTATE =
9
REG_LR =
10
REG_PC =
11
REG_SP =
12
REG_SPSR =
13
REG_D0 =
14
REG_D1 =
15
REG_D2 =
16
REG_D3 =
17
REG_D4 =
18
REG_D5 =
19
REG_D6 =
20
REG_D7 =
21
REG_D8 =
22
REG_D9 =
23
REG_D10 =
24
REG_D11 =
25
REG_D12 =
26
REG_D13 =
27
REG_D14 =
28
REG_D15 =
29
REG_D16 =
30
REG_D17 =
31
REG_D18 =
32
REG_D19 =
33
REG_D20 =
34
REG_D21 =
35
REG_D22 =
36
REG_D23 =
37
REG_D24 =
38
REG_D25 =
39
REG_D26 =
40
REG_D27 =
41
REG_D28 =
42
REG_D29 =
43
REG_D30 =
44
REG_D31 =
45
REG_FPINST2 =
46
REG_MVFR0 =
47
REG_MVFR1 =
48
REG_MVFR2 =
49
REG_Q0 =
50
REG_Q1 =
51
REG_Q2 =
52
REG_Q3 =
53
REG_Q4 =
54
REG_Q5 =
55
REG_Q6 =
56
REG_Q7 =
57
REG_Q8 =
58
REG_Q9 =
59
REG_Q10 =
60
REG_Q11 =
61
REG_Q12 =
62
REG_Q13 =
63
REG_Q14 =
64
REG_Q15 =
65
REG_R0 =
66
REG_R1 =
67
REG_R2 =
68
REG_R3 =
69
REG_R4 =
70
REG_R5 =
71
REG_R6 =
72
REG_R7 =
73
REG_R8 =
74
REG_R9 =
75
REG_R10 =
76
REG_R11 =
77
REG_R12 =
78
REG_S0 =
79
REG_S1 =
80
REG_S2 =
81
REG_S3 =
82
REG_S4 =
83
REG_S5 =
84
REG_S6 =
85
REG_S7 =
86
REG_S8 =
87
REG_S9 =
88
REG_S10 =
89
REG_S11 =
90
REG_S12 =
91
REG_S13 =
92
REG_S14 =
93
REG_S15 =
94
REG_S16 =
95
REG_S17 =
96
REG_S18 =
97
REG_S19 =
98
REG_S20 =
99
REG_S21 =
100
REG_S22 =
101
REG_S23 =
102
REG_S24 =
103
REG_S25 =
104
REG_S26 =
105
REG_S27 =
106
REG_S28 =
107
REG_S29 =
108
REG_S30 =
109
REG_S31 =
110
REG_ENDING =
111
REG_R13 =
REG_SP
REG_R14 =
REG_LR
REG_R15 =
REG_PC
REG_SB =
REG_R9
REG_SL =
REG_R10
REG_FP =
REG_R11
REG_IP =
REG_R12
INS_INVALID =
0
INS_ADC =
1
INS_ADD =
2
INS_ADR =
4
INS_AESD =
5
INS_AESE =
6
INS_AESIMC =
7
INS_AESMC =
8
INS_AND =
9
INS_BFC =
12
INS_BFI =
13
INS_BIC =
14
INS_BKPT =
15
INS_BL =
16
INS_BLX =
17
INS_BX =
19
INS_BXJ =
20
INS_B =
11
INS_CDP =
24
INS_CDP2 =
25
INS_CLREX =
26
INS_CLZ =
27
INS_CMN =
28
INS_CMP =
29
INS_CPS =
30
INS_CRC32B =
31
INS_CRC32CB =
32
INS_CRC32CH =
33
INS_CRC32CW =
34
INS_CRC32H =
35
INS_CRC32W =
36
INS_DBG =
38
INS_DMB =
43
INS_DSB =
44
INS_EOR =
45
INS_VMOV =
374
INS_FLDMDBX =
54
INS_FLDMIAX =
55
INS_VMRS =
378
INS_FSTMDBX =
59
INS_FSTMIAX =
60
INS_HINT =
63
INS_HLT =
64
INS_ISB =
66
INS_LDA =
68
INS_LDAB =
69
INS_LDAEX =
70
INS_LDAEXB =
71
INS_LDAEXD =
72
INS_LDAEXH =
73
INS_LDAH =
74
INS_LDC2L =
77
INS_LDC2 =
76
INS_LDCL =
78
INS_LDC =
75
INS_LDMDA =
80
INS_LDMDB =
81
INS_LDM =
79
INS_LDMIB =
82
INS_LDRBT =
85
INS_LDRB =
84
INS_LDRD =
86
INS_LDREX =
87
INS_LDREXB =
88
INS_LDREXD =
89
INS_LDREXH =
90
INS_LDRH =
91
INS_LDRHT =
92
INS_LDRSB =
93
INS_LDRSBT =
94
INS_LDRSH =
95
INS_LDRSHT =
96
INS_LDRT =
97
INS_LDR =
83
INS_MCR =
100
INS_MCR2 =
101
INS_MCRR =
102
INS_MCRR2 =
103
INS_MLA =
104
INS_MLS =
105
INS_MOV =
106
INS_MOVT =
108
INS_MOVW =
109
INS_MRC =
110
INS_MRC2 =
111
INS_MRRC =
112
INS_MRRC2 =
113
INS_MRS =
114
INS_MSR =
115
INS_MUL =
116
INS_MVN =
117
INS_ORR =
121
INS_PKHBT =
122
INS_PKHTB =
123
INS_PLDW =
125
INS_PLD =
124
INS_PLI =
126
INS_QADD =
129
INS_QADD16 =
130
INS_QADD8 =
131
INS_QASX =
132
INS_QDADD =
133
INS_QDSUB =
134
INS_QSAX =
135
INS_QSUB =
136
INS_QSUB16 =
137
INS_QSUB8 =
138
INS_RBIT =
139
INS_REV =
140
INS_REV16 =
141
INS_REVSH =
142
INS_RFEDA =
143
INS_RFEDB =
144
INS_RFEIA =
145
INS_RFEIB =
146
INS_RSB =
149
INS_RSC =
150
INS_SADD16 =
151
INS_SADD8 =
152
INS_SASX =
153
INS_SBC =
154
INS_SBFX =
155
INS_SDIV =
156
INS_SEL =
157
INS_SETEND =
158
INS_SHA1C =
163
INS_SHA1H =
164
INS_SHA1M =
165
INS_SHA1P =
166
INS_SHA1SU0 =
167
INS_SHA1SU1 =
168
INS_SHA256H =
169
INS_SHA256H2 =
170
INS_SHA256SU0 =
171
INS_SHA256SU1 =
172
INS_SHADD16 =
173
INS_SHADD8 =
174
INS_SHASX =
175
INS_SHSAX =
176
INS_SHSUB16 =
177
INS_SHSUB8 =
178
INS_SMC =
179
INS_SMLABB =
180
INS_SMLABT =
181
INS_SMLAD =
182
INS_SMLADX =
183
INS_SMLAL =
184
INS_SMLALBB =
185
INS_SMLALBT =
186
INS_SMLALD =
187
INS_SMLALDX =
188
INS_SMLALTB =
189
INS_SMLALTT =
190
INS_SMLATB =
191
INS_SMLATT =
192
INS_SMLAWB =
193
INS_SMLAWT =
194
INS_SMLSD =
195
INS_SMLSDX =
196
INS_SMLSLD =
197
INS_SMLSLDX =
198
INS_SMMLA =
199
INS_SMMLAR =
200
INS_SMMLS =
201
INS_SMMLSR =
202
INS_SMMUL =
203
INS_SMMULR =
204
INS_SMUAD =
205
INS_SMUADX =
206
INS_SMULBB =
207
INS_SMULBT =
208
INS_SMULL =
209
INS_SMULTB =
210
INS_SMULTT =
211
INS_SMULWB =
212
INS_SMULWT =
213
INS_SMUSD =
214
INS_SMUSDX =
215
INS_SRSDA =
216
INS_SRSDB =
217
INS_SRSIA =
218
INS_SRSIB =
219
INS_SSAT =
220
INS_SSAT16 =
221
INS_SSAX =
222
INS_SSUB16 =
223
INS_SSUB8 =
224
INS_STC2L =
227
INS_STC2 =
226
INS_STCL =
228
INS_STC =
225
INS_STL =
229
INS_STLB =
230
INS_STLEX =
231
INS_STLEXB =
232
INS_STLEXD =
233
INS_STLEXH =
234
INS_STLH =
235
INS_STMDA =
237
INS_STMDB =
238
INS_STM =
236
INS_STMIB =
239
INS_STRBT =
242
INS_STRB =
241
INS_STRD =
243
INS_STREX =
244
INS_STREXB =
245
INS_STREXD =
246
INS_STREXH =
247
INS_STRH =
248
INS_STRHT =
249
INS_STRT =
250
INS_STR =
240
INS_SUB =
251
INS_SVC =
254
INS_SWP =
255
INS_SWPB =
256
INS_SXTAB =
257
INS_SXTAB16 =
258
INS_SXTAH =
259
INS_SXTB =
260
INS_SXTB16 =
261
INS_SXTH =
262
INS_TEQ =
265
INS_TRAP =
266
INS_TST =
268
INS_UADD16 =
273
INS_UADD8 =
274
INS_UASX =
275
INS_UBFX =
276
INS_UDF =
277
INS_UDIV =
278
INS_UHADD16 =
279
INS_UHADD8 =
280
INS_UHASX =
281
INS_UHSAX =
282
INS_UHSUB16 =
283
INS_UHSUB8 =
284
INS_UMAAL =
285
INS_UMLAL =
286
INS_UMULL =
287
INS_UQADD16 =
288
INS_UQADD8 =
289
INS_UQASX =
290
INS_UQSAX =
291
INS_UQSUB16 =
292
INS_UQSUB8 =
293
INS_USAD8 =
294
INS_USADA8 =
295
INS_USAT =
296
INS_USAT16 =
297
INS_USAX =
298
INS_USUB16 =
299
INS_USUB8 =
300
INS_UXTAB =
301
INS_UXTAB16 =
302
INS_UXTAH =
303
INS_UXTB =
304
INS_UXTB16 =
305
INS_UXTH =
306
INS_VABAL =
308
INS_VABA =
307
INS_VABDL =
310
INS_VABD =
309
INS_VABS =
311
INS_VACGE =
312
INS_VACGT =
313
INS_VADD =
316
INS_VADDHN =
317
INS_VADDL =
318
INS_VADDW =
319
INS_VAND =
320
INS_VBIC =
321
INS_VBIF =
322
INS_VBIT =
323
INS_VBSL =
324
INS_VCEQ =
326
INS_VCGE =
327
INS_VCGT =
328
INS_VCLE =
329
INS_VCLS =
330
INS_VCLT =
331
INS_VCLZ =
332
INS_VCMP =
334
INS_VCMPE =
335
INS_VCNT =
336
INS_VCVTA =
338
INS_VCVTB =
339
INS_VCVT =
337
INS_VCVTM =
340
INS_VCVTN =
341
INS_VCVTP =
342
INS_VCVTT =
344
INS_VDIV =
345
INS_VDUP =
346
INS_VEOR =
347
INS_VEXT =
348
INS_VFMA =
349
INS_VFMS =
350
INS_VFNMA =
351
INS_VFNMS =
352
INS_VHADD =
353
INS_VHSUB =
354
INS_VLD1 =
357
INS_VLD2 =
358
INS_VLD3 =
359
INS_VLD4 =
360
INS_VLDMDB =
361
INS_VLDMIA =
362
INS_VLDR =
363
INS_VMAXNM =
367
INS_VMAX =
366
INS_VMINNM =
369
INS_VMIN =
368
INS_VMLA =
370
INS_VMLAL =
371
INS_VMLS =
372
INS_VMLSL =
373
INS_VMOVL =
375
INS_VMOVN =
376
INS_VMSR =
379
INS_VMUL =
380
INS_VMULL =
381
INS_VMVN =
382
INS_VNEG =
383
INS_VNMLA =
384
INS_VNMLS =
385
INS_VNMUL =
386
INS_VORN =
387
INS_VORR =
388
INS_VPADAL =
389
INS_VPADDL =
391
INS_VPADD =
390
INS_VPMAX =
392
INS_VPMIN =
393
INS_VQABS =
396
INS_VQADD =
397
INS_VQDMLAL =
398
INS_VQDMLSL =
399
INS_VQDMULH =
400
INS_VQDMULL =
401
INS_VQMOVUN =
403
INS_VQMOVN =
402
INS_VQNEG =
404
INS_VQRDMULH =
407
INS_VQRSHL =
408
INS_VQRSHRN =
409
INS_VQRSHRUN =
410
INS_VQSHL =
411
INS_VQSHLU =
412
INS_VQSHRN =
413
INS_VQSHRUN =
414
INS_VQSUB =
415
INS_VRADDHN =
416
INS_VRECPE =
417
INS_VRECPS =
418
INS_VREV16 =
419
INS_VREV32 =
420
INS_VREV64 =
421
INS_VRHADD =
422
INS_VRINTA =
423
INS_VRINTM =
424
INS_VRINTN =
425
INS_VRINTP =
426
INS_VRINTR =
427
INS_VRINTX =
428
INS_VRINTZ =
429
INS_VRSHL =
430
INS_VRSHRN =
432
INS_VRSHR =
431
INS_VRSQRTE =
433
INS_VRSQRTS =
434
INS_VRSRA =
435
INS_VRSUBHN =
436
INS_VSELEQ =
438
INS_VSELGE =
439
INS_VSELGT =
440
INS_VSELVS =
441
INS_VSHLL =
443
INS_VSHL =
442
INS_VSHRN =
445
INS_VSHR =
444
INS_VSLI =
446
INS_VSQRT =
447
INS_VSRA =
448
INS_VSRI =
449
INS_VST1 =
450
INS_VST2 =
451
INS_VST3 =
452
INS_VST4 =
453
INS_VSTMDB =
454
INS_VSTMIA =
455
INS_VSTR =
456
INS_VSUB =
457
INS_VSUBHN =
458
INS_VSUBL =
459
INS_VSUBW =
460
INS_VSWP =
461
INS_VTBL =
462
INS_VTBX =
463
INS_VCVTR =
343
INS_VTRN =
464
INS_VTST =
465
INS_VUZP =
467
INS_VZIP =
468
INS_ADDW =
3
INS_ASR =
10
INS_DCPS1 =
39
INS_DCPS2 =
40
INS_DCPS3 =
41
INS_IT =
67
INS_LSL =
98
INS_LSR =
99
INS_ASRS =
413
INS_LSRS =
414
INS_ORN =
120
INS_ROR =
147
INS_RRX =
148
INS_SUBS =
252
INS_SUBW =
253
INS_TBB =
263
INS_TBH =
264
INS_CBNZ =
22
INS_CBZ =
23
INS_MOVS =
107
INS_POP =
127
INS_PUSH =
128
INS_NOP =
119
INS_YIELD =
471
INS_WFE =
469
INS_WFI =
470
INS_SEV =
160
INS_SEVL =
161
INS_VPUSH =
395
INS_VPOP =
394
INS_ENDING =
472
GRP_INVALID =
0
GRP_JUMP =
1
GRP_CRYPTO =
128
GRP_DATABARRIER =
129
GRP_DIVIDE =
130
GRP_FPARMV8 =
131
GRP_MULTPRO =
132
GRP_NEON =
133
GRP_T2EXTRACTPACK =
134
GRP_THUMB2DSP =
135
GRP_TRUSTZONE =
136
GRP_V4T =
137
GRP_V5T =
138
GRP_V5TE =
139
GRP_V6 =
140
GRP_V6T2 =
141
GRP_V7 =
142
GRP_V8 =
143
GRP_VFP2 =
144
GRP_VFP3 =
145
GRP_VFP4 =
146
GRP_ARM =
147
GRP_MCLASS =
148
GRP_NOTMCLASS =
149
GRP_THUMB =
150
GRP_THUMB1ONLY =
151
GRP_THUMB2 =
152
GRP_PREV8 =
153
GRP_FPVMLX =
154
GRP_MULOPS =
155
GRP_CRC =
156
GRP_DPVFP =
157
GRP_V6M =
158
GRP_ENDING =
160
SYSREG_IAPSR_NZCVQ =
263
SYSREG_EAPSR_NZCVQ =
267
SYSREG_XPSR_NZCVQ =
271
SYSREG_R8_USR =
293
SYSREG_R9_USR =
294
SYSREG_R10_USR =
295
SYSREG_R11_USR =
296
SYSREG_R12_USR =
297
SYSREG_SP_USR =
298
SYSREG_LR_USR =
299
SYSREG_R8_FIQ =
300
SYSREG_R9_FIQ =
301
SYSREG_R10_FIQ =
302
SYSREG_R11_FIQ =
303
SYSREG_R12_FIQ =
304
SYSREG_SP_FIQ =
305
SYSREG_LR_FIQ =
306
SYSREG_LR_IRQ =
307
SYSREG_SP_IRQ =
308
SYSREG_LR_SVC =
309
SYSREG_SP_SVC =
310
SYSREG_LR_ABT =
311
SYSREG_SP_ABT =
312
SYSREG_LR_UND =
313
SYSREG_SP_UND =
314
SYSREG_LR_MON =
315
SYSREG_SP_MON =
316
SYSREG_ELR_HYP =
317
SYSREG_SP_HYP =
318
SYSREG_SPSR_FIQ =
319
SYSREG_SPSR_IRQ =
320
SYSREG_SPSR_SVC =
321
SYSREG_SPSR_ABT =
322
SYSREG_SPSR_UND =
323
SYSREG_SPSR_MON =
324
SYSREG_SPSR_HYP =
325
INS_ERET =
46
INS_HVC =
65
GRP_CALL =
2
GRP_INT =
4
GRP_PRIVILEGE =
6
GRP_BRANCH_RELATIVE =
7
GRP_VIRTUALIZATION =
159
SYSREG_MSPLIM =
282
SYSREG_PSPLIM =
283
SYSREG_MSP_NS =
284
SYSREG_PSP_NS =
285
SYSREG_MSPLIM_NS =
286
SYSREG_PSPLIM_NS =
287
SYSREG_PRIMASK_NS =
288
SYSREG_BASEPRI_NS =
289
SYSREG_FAULTMASK_NS =
290
SYSREG_CONTROL_NS =
291
SYSREG_SP_NS =
292
VECTORDATA_F16 =
14
VECTORDATA_F16U16 =
39
VECTORDATA_U16F16 =
40
VECTORDATA_F16U32 =
41
VECTORDATA_U32F16 =
42
INS_BLXNS =
18
INS_BXNS =
21
INS_CSDB =
37
INS_DFB =
42
INS_ESB =
47
INS_FADDD =
48
INS_FADDS =
49
INS_FCMPZD =
50
INS_FCMPZS =
51
INS_FCONSTD =
52
INS_FCONSTS =
53
INS_FMDHR =
56
INS_FMDLR =
57
INS_FMSTAT =
58
INS_FSUBD =
61
INS_FSUBS =
62
INS_NEG =
118
INS_SETPAN =
159
INS_SG =
162
INS_TSB =
267
INS_TT =
269
INS_TTA =
270
INS_TTAT =
271
INS_TTT =
272
INS_VACLE =
314
INS_VACLT =
315
INS_VCADD =
325
INS_VCMLA =
333
INS_VINS =
355
INS_VJCVT =
356
INS_VLLDM =
364
INS_VLSTM =
365
INS_VMOVX =
377
INS_VQRDMLAH =
405
INS_VQRDMLSH =
406
INS_VSDOT =
437
INS_VUDOT =
466

Method Summary

Methods included from Register

register