diff options
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-sh.c | 6 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4916098..2b7a433 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +Thu Mar 16 23:45:16 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * config/tc-sh.c (md_begin): When encountering insn that are + not supported by the current arch, only change the name if + its contents are the same as prev_name. + (get_specific): If the the architecture doesn't match, fail. + Thu Mar 16 21:18:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk> * config/tc-sh.c (IDENT_CHAR): Define. diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index 561f282..b8b452c 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -222,8 +222,10 @@ md_begin () /* Insert unique names into hash table */ for (opcode = sh_table; opcode->name; opcode++) { - if (opcode->arch & target_arch && strcmp (prev_name, opcode->name)) + if (strcmp (prev_name, opcode->name)) { + if (! (opcode->arch & target_arch)) + continue; prev_name = opcode->name; hash_insert (opcode_hash_control, opcode->name, (char *) opcode); } @@ -1148,6 +1150,8 @@ get_specific (opcode, operands) goto fail; } } + if ( !(valid_arch & this_try->arch)) + goto fail; valid_arch &= this_try->arch; return this_try; fail:; |