aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-11-02 19:32:47 +0000
committerNick Clifton <nickc@redhat.com>2000-11-02 19:32:47 +0000
commit37d8bb275baa259bc12f873cc4bf2a4f8ef81af5 (patch)
treef06648f4f4f5b9466fe60a5d0cd0f20b2ce5dbbb
parentd75bb8cff629c43a78bb39d87f544f686b0aae2a (diff)
downloadgdb-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/ChangeLog13
-rw-r--r--gas/config/tc-arm.c7
-rw-r--r--gas/read.c9
-rw-r--r--gas/read.h5
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);
diff --git a/gas/read.c b/gas/read.c
index 371a930..d776c0f 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -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))
diff --git a/gas/read.h b/gas/read.h
index 8c248f2..66fb08a 100644
--- a/gas/read.h
+++ b/gas/read.h
@@ -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));