diff options
Diffstat (limited to 'dollarsign.patch')
-rw-r--r-- | dollarsign.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/dollarsign.patch b/dollarsign.patch new file mode 100644 index 000000000000..49bd96adda2c --- /dev/null +++ b/dollarsign.patch @@ -0,0 +1,49 @@ +diff -ruN binutils-2.17-orig/gas/config/tc-avr.h binutils-2.17/gas/config/tc-avr.h +--- gas/config/tc-avr.h 2008-01-24 14:41:48.000000000 -0800 ++++ gas/config/tc-avr.h 2008-01-24 14:43:07.000000000 -0800 +@@ -109,8 +109,12 @@ + would print `12 34 56 78'. The default value is 4. */ + #define LISTING_WORD_SIZE 2 + +-/* AVR port uses `$' as a logical line separator */ +-#define LEX_DOLLAR 0 ++/* AVR port uses `$' as a logical line separator and doesn't ++ allow it in symbols. We allow it in the middle of symbols. ++ We also hack get_symbol_end to disallow it at the end of a symbol. */ ++#define LEX_DOLLAR 1 ++#define TC_EOL_IN_INSN(PTR) (*(PTR) == '$' && is_part_of_name((PTR)[-1]) && is_part_of_name((PTR)[1])) ++#define TC_FORBID_DOLLAR_AT_END + + /* An `.lcomm' directive with no explicit alignment parameter will + use this macro to set P2VAR to the alignment that a request for +diff -ruN binutils-2.17-orig/gas/config/tc-msp430.h binutils-2.17/gas/config/tc-msp430.h +--- gas/config/tc-msp430.h 2008-01-24 14:41:48.000000000 -0800 ++++ gas/config/tc-msp430.h 2008-01-24 14:44:27.000000000 -0800 +@@ -97,7 +97,7 @@ + example, a value of 2 might print `1234 5678' where a value of 1 + would print `12 34 56 78'. The default value is 4. */ + +-#define LEX_DOLLAR 0 ++#undef LEX_DOLLAR + /* MSP430 port does not use `$' as a logical line separator */ + + #define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) (P2VAR) = 0 +diff -ruN binutils-2.17-orig/gas/expr.c binutils-2.17/gas/expr.c +--- gas/expr.c 2008-01-24 14:41:48.000000000 -0800 ++++ gas/expr.c 2008-01-24 14:45:37.000000000 -0800 +@@ -2174,6 +2174,15 @@ + ; + if (is_name_ender (c)) + c = *input_line_pointer++; ++#ifdef TC_FORBID_DOLLAR_AT_END ++ /* This is for the Atmel AVR platforms. We want to allow $ in symbols ++ but also as a line separator. Yucky. */ ++ if (input_line_pointer[-2] == '$') ++ { ++ input_line_pointer--; ++ c = '$'; ++ } ++#endif + } + *--input_line_pointer = 0; + return (c); |