@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg;
150150 byte name [3 ];
151151} reg_name_t ;
152152static 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' } },
174174};
175175
176176#define MAX_SPECIAL_REGISTER_NAME_LENGTH 7
@@ -368,42 +368,42 @@ typedef struct _cc_name_t { byte cc;
368368 byte name [2 ];
369369} cc_name_t ;
370370static 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' } },
385385};
386386
387387typedef struct _format_4_op_t { byte op ;
388388 char name [3 ];
389389} format_4_op_t ;
390390#define X (x ) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops
391391static 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' } },
407407};
408408#undef X
409409
@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t {
428428 char name [3 ];
429429} format_vfp_op_t ;
430430static 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' } },
435435};
436436
437437// shorthand alias for whether we allow ARMv7-M instructions
0 commit comments