diff options
author | Nick Clifton <nickc@redhat.com> | 2000-11-02 19:32:47 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2000-11-02 19:32:47 +0000 |
commit | 37d8bb275baa259bc12f873cc4bf2a4f8ef81af5 (patch) | |
tree | f06648f4f4f5b9466fe60a5d0cd0f20b2ce5dbbb | |
parent | d75bb8cff629c43a78bb39d87f544f686b0aae2a (diff) | |
download | gdb-37d8bb275baa259bc12f873cc4bf2a4f8ef81af5.zip gdb-37d8bb275baa259bc12f873cc4bf2a4f8ef81af5.tar.gz gdb-37d8bb275baa259bc12f873cc4bf2a4f8ef81af5.tar.bz2 |
Preserve copy of case clobber opcodes so that .req pseudo op works
-rw-r--r-- | gas/ChangeLog | 13 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 7 | ||||
-rw-r--r-- | gas/read.c | 9 | ||||
-rw-r--r-- | gas/read.h | 5 |
4 files changed, 30 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index a841ee4..b42b97d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,11 +1,20 @@ +2000-11-01 Nick Clifton <nickc@redhat.com> + + * read.c (original_case_string): New global variable. + (read_a_source_file): Copy opcode string into + original_case_string if clobbering the case of the opcode. + * read.h: Export the definition of original_case_string. + * config/tc-arm.c (md_assembler): When parsing a .req + directive use the original opcode string, not the case + clobbered version. + 2000-11-02 Nick Clifton <nickc@redhat.com> * config/tc-mn10300.c (debug_line): Remove this static - varaible. + variable. (md_assemble): Call dwarf2_generate_asm_lineno instead of dwarf2_where and dwarf2_gen_line_info. - 2000-11-02 Theo Honohan <th@futuretv.com> * config/tc-arm.c (do_msr): Improve error message. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 6f27c64..41e40d4 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -6613,9 +6613,14 @@ _("Warning: Use of the 'nv' conditional is deprecated\n")); if (*q && !strncmp (q, ".req ", 4)) { int reg; - char * copy_of_str = str; + char * copy_of_str; char * r; +#ifdef IGNORE_OPCODE_CASE + str = original_case_string; +#endif + copy_of_str = str; + q += 4; skip_whitespace (q); @@ -165,6 +165,10 @@ char is_end_of_line[256] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* */ }; +#ifdef IGNORE_OPCODE_CASE +char original_case_string[128]; +#endif + /* Functions private to this file. */ static char *buffer; /* 1st char of each buffer of lines is here. */ @@ -735,10 +739,13 @@ read_a_source_file (name) /* Expect pseudo-op or machine instruction. */ pop = NULL; -#define IGNORE_OPCODE_CASE #ifdef IGNORE_OPCODE_CASE { char *s2 = s; + + strncpy (original_case_string, s2, sizeof (original_case_string)); + original_case_string[sizeof (original_case_string) - 1] = 0; + while (*s2) { if (isupper ((unsigned char) *s2)) @@ -85,6 +85,11 @@ enum linkonce_type LINKONCE_SAME_CONTENTS }; +#define IGNORE_OPCODE_CASE +#ifdef IGNORE_OPCODE_CASE +extern char original_case_string[]; +#endif + extern void pop_insert PARAMS ((const pseudo_typeS *)); extern unsigned int get_stab_string_offset PARAMS ((const char *string, const char *stabstr_secname)); |