diff options
author | Timothy Wall <twall@alum.mit.edu> | 2000-02-08 14:21:53 +0000 |
---|---|---|
committer | Timothy Wall <twall@alum.mit.edu> | 2000-02-08 14:21:53 +0000 |
commit | f805106cd375e6b5fc6036c95cf99eb6e3c9c7fa (patch) | |
tree | bf2fec5a3f9250078081fe37aa40e238f43481eb /gas/expr.c | |
parent | 4469be0f23a8b086bb30a3cd2a7287a13add6730 (diff) | |
download | gdb-f805106cd375e6b5fc6036c95cf99eb6e3c9c7fa.zip gdb-f805106cd375e6b5fc6036c95cf99eb6e3c9c7fa.tar.gz gdb-f805106cd375e6b5fc6036c95cf99eb6e3c9c7fa.tar.bz2 |
Add handling for numbers with suffixed radix.
Diffstat (limited to 'gas/expr.c')
-rw-r--r-- | gas/expr.c | 38 |
1 files changed, 30 insertions, 8 deletions
@@ -327,7 +327,7 @@ integer_constant (radix, expressionP) #define valuesize 32 #endif - if (flag_m68k_mri && radix == 0) + if ((NUMBERS_WITH_SUFFIX || flag_m68k_mri) && radix == 0) { int flt = 0; @@ -541,7 +541,9 @@ integer_constant (radix, expressionP) } } - if (flag_m68k_mri && suffix != NULL && input_line_pointer - 1 == suffix) + if ((NUMBERS_WITH_SUFFIX || flag_m68k_mri) + && suffix != NULL + && input_line_pointer - 1 == suffix) c = *input_line_pointer++; if (small) @@ -810,13 +812,15 @@ operand (expressionP) case '9': input_line_pointer--; - integer_constant (flag_m68k_mri ? 0 : 10, expressionP); + integer_constant ((NUMBERS_WITH_SUFFIX || flag_m68k_mri) + ? 0 : 10, + expressionP); break; case '0': /* non-decimal radix */ - if (flag_m68k_mri) + if (NUMBERS_WITH_SUFFIX || flag_m68k_mri) { char *s; @@ -829,8 +833,26 @@ operand (expressionP) integer_constant (0, expressionP); break; } - } - + if (NUMBERS_WITH_SUFFIX) + { + /* Check for a binary constant. */ + for (s = input_line_pointer; *s == '0' || *s == '1'; s++) + ; + if (toupper (*s) == 'B') + { + integer_constant (0, expressionP); + break; + } + /* Check for an octal constant. */ + for (s = input_line_pointer; *s >= '0' && *s <= '7'; s++) + ; + if (toupper (*s) == 'Q') + { + integer_constant (0, expressionP); + break; + } + } + } c = *input_line_pointer; switch (c) { @@ -840,7 +862,7 @@ operand (expressionP) case 'Q': case '8': case '9': - if (flag_m68k_mri) + if (NUMBERS_WITH_SUFFIX || flag_m68k_mri) { integer_constant (0, expressionP); break; @@ -873,7 +895,7 @@ operand (expressionP) break; case 'b': - if (LOCAL_LABELS_FB && ! flag_m68k_mri) + if (LOCAL_LABELS_FB && ! flag_m68k_mri && ! NUMBERS_WITH_SUFFIX) { /* This code used to check for '+' and '-' here, and, in some conditions, fall through to call |