@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg;
150
150
byte name [3 ];
151
151
} reg_name_t ;
152
152
static const reg_name_t reg_name_table [] = {
153
- {0 , "r0\0" },
154
- {1 , "r1\0" },
155
- {2 , "r2\0" },
156
- {3 , "r3\0" },
157
- {4 , "r4\0" },
158
- {5 , "r5\0" },
159
- {6 , "r6\0" },
160
- {7 , "r7\0" },
161
- {8 , "r8\0" },
162
- {9 , "r9\0" },
163
- {10 , "r10" },
164
- {11 , "r11" },
165
- {12 , "r12" },
166
- {13 , "r13" },
167
- {14 , "r14" },
168
- {15 , "r15" },
169
- {10 , "sl\0" },
170
- {11 , "fp\0" },
171
- {13 , "sp\0" },
172
- {14 , "lr\0" },
173
- {15 , "pc\0" },
153
+ {0 , { 'r' , '0' } },
154
+ {1 , { 'r' , '1' } },
155
+ {2 , { 'r' , '2' } },
156
+ {3 , { 'r' , '3' } },
157
+ {4 , { 'r' , '4' } },
158
+ {5 , { 'r' , '5' } },
159
+ {6 , { 'r' , '6' } },
160
+ {7 , { 'r' , '7' } },
161
+ {8 , { 'r' , '8' } },
162
+ {9 , { 'r' , '9' } },
163
+ {10 , { 'r' , '1' , '0' } },
164
+ {11 , { 'r' , '1' , '1' } },
165
+ {12 , { 'r' , '1' , '2' } },
166
+ {13 , { 'r' , '1' , '3' } },
167
+ {14 , { 'r' , '1' , '4' } },
168
+ {15 , { 'r' , '1' , '5' } },
169
+ {10 , { 's' , 'l' } },
170
+ {11 , { 'f' , 'p' } },
171
+ {13 , { 's' , 'p' } },
172
+ {14 , { 'l' , 'r' } },
173
+ {15 , { 'p' , 'c' } },
174
174
};
175
175
176
176
#define MAX_SPECIAL_REGISTER_NAME_LENGTH 7
@@ -368,42 +368,42 @@ typedef struct _cc_name_t { byte cc;
368
368
byte name [2 ];
369
369
} cc_name_t ;
370
370
static const cc_name_t cc_name_table [] = {
371
- { ASM_THUMB_CC_EQ , "eq" },
372
- { ASM_THUMB_CC_NE , "ne" },
373
- { ASM_THUMB_CC_CS , "cs" },
374
- { ASM_THUMB_CC_CC , "cc" },
375
- { ASM_THUMB_CC_MI , "mi" },
376
- { ASM_THUMB_CC_PL , "pl" },
377
- { ASM_THUMB_CC_VS , "vs" },
378
- { ASM_THUMB_CC_VC , "vc" },
379
- { ASM_THUMB_CC_HI , "hi" },
380
- { ASM_THUMB_CC_LS , "ls" },
381
- { ASM_THUMB_CC_GE , "ge" },
382
- { ASM_THUMB_CC_LT , "lt" },
383
- { ASM_THUMB_CC_GT , "gt" },
384
- { ASM_THUMB_CC_LE , "le" },
371
+ { ASM_THUMB_CC_EQ , { 'e' , 'q' } },
372
+ { ASM_THUMB_CC_NE , { 'n' , 'e' } },
373
+ { ASM_THUMB_CC_CS , { 'c' , 's' } },
374
+ { ASM_THUMB_CC_CC , { 'c' , 'c' } },
375
+ { ASM_THUMB_CC_MI , { 'm' , 'i' } },
376
+ { ASM_THUMB_CC_PL , { 'p' , 'l' } },
377
+ { ASM_THUMB_CC_VS , { 'v' , 's' } },
378
+ { ASM_THUMB_CC_VC , { 'v' , 'c' } },
379
+ { ASM_THUMB_CC_HI , { 'h' , 'i' } },
380
+ { ASM_THUMB_CC_LS , { 'l' , 's' } },
381
+ { ASM_THUMB_CC_GE , { 'g' , 'e' } },
382
+ { ASM_THUMB_CC_LT , { 'l' , 't' } },
383
+ { ASM_THUMB_CC_GT , { 'g' , 't' } },
384
+ { ASM_THUMB_CC_LE , { 'l' , 'e' } },
385
385
};
386
386
387
387
typedef struct _format_4_op_t { byte op ;
388
388
char name [3 ];
389
389
} format_4_op_t ;
390
390
#define X (x ) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops
391
391
static const format_4_op_t format_4_op_table [] = {
392
- { X (ASM_THUMB_FORMAT_4_EOR ), "eor" },
393
- { X (ASM_THUMB_FORMAT_4_LSL ), "lsl" },
394
- { X (ASM_THUMB_FORMAT_4_LSR ), "lsr" },
395
- { X (ASM_THUMB_FORMAT_4_ASR ), "asr" },
396
- { X (ASM_THUMB_FORMAT_4_ADC ), "adc" },
397
- { X (ASM_THUMB_FORMAT_4_SBC ), "sbc" },
398
- { X (ASM_THUMB_FORMAT_4_ROR ), "ror" },
399
- { X (ASM_THUMB_FORMAT_4_TST ), "tst" },
400
- { X (ASM_THUMB_FORMAT_4_NEG ), "neg" },
401
- { X (ASM_THUMB_FORMAT_4_CMP ), "cmp" },
402
- { X (ASM_THUMB_FORMAT_4_CMN ), "cmn" },
403
- { X (ASM_THUMB_FORMAT_4_ORR ), "orr" },
404
- { X (ASM_THUMB_FORMAT_4_MUL ), "mul" },
405
- { X (ASM_THUMB_FORMAT_4_BIC ), "bic" },
406
- { X (ASM_THUMB_FORMAT_4_MVN ), "mvn" },
392
+ { X (ASM_THUMB_FORMAT_4_EOR ), { 'e' , 'o' , 'r' } },
393
+ { X (ASM_THUMB_FORMAT_4_LSL ), { 'l' , 's' , 'l' } },
394
+ { X (ASM_THUMB_FORMAT_4_LSR ), { 'l' , 's' , 'r' } },
395
+ { X (ASM_THUMB_FORMAT_4_ASR ), { 'a' , 's' , 'r' } },
396
+ { X (ASM_THUMB_FORMAT_4_ADC ), { 'a' , 'd' , 'c' } },
397
+ { X (ASM_THUMB_FORMAT_4_SBC ), { 's' , 'b' , 'c' } },
398
+ { X (ASM_THUMB_FORMAT_4_ROR ), { 'r' , 'o' , 'r' } },
399
+ { X (ASM_THUMB_FORMAT_4_TST ), { 't' , 's' , 't' } },
400
+ { X (ASM_THUMB_FORMAT_4_NEG ), { 'n' , 'e' , 'g' } },
401
+ { X (ASM_THUMB_FORMAT_4_CMP ), { 'c' , 'm' , 'p' } },
402
+ { X (ASM_THUMB_FORMAT_4_CMN ), { 'c' , 'm' , 'n' } },
403
+ { X (ASM_THUMB_FORMAT_4_ORR ), { 'o' , 'r' , 'r' } },
404
+ { X (ASM_THUMB_FORMAT_4_MUL ), { 'm' , 'u' , 'l' } },
405
+ { X (ASM_THUMB_FORMAT_4_BIC ), { 'b' , 'i' , 'c' } },
406
+ { X (ASM_THUMB_FORMAT_4_MVN ), { 'm' , 'v' , 'n' } },
407
407
};
408
408
#undef X
409
409
@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t {
428
428
char name [3 ];
429
429
} format_vfp_op_t ;
430
430
static const format_vfp_op_t format_vfp_op_table [] = {
431
- { 0x30 , "add" },
432
- { 0x34 , "sub" },
433
- { 0x20 , "mul" },
434
- { 0x80 , "div" },
431
+ { 0x30 , { 'a' , 'd' , 'd' } },
432
+ { 0x34 , { 's' , 'u' , 'b' } },
433
+ { 0x20 , { 'm' , 'u' , 'l' } },
434
+ { 0x80 , { 'd' , 'i' , 'v' } },
435
435
};
436
436
437
437
// shorthand alias for whether we allow ARMv7-M instructions
0 commit comments