diff options
Diffstat (limited to 'gas/config/tc-sh64.h')
-rw-r--r-- | gas/config/tc-sh64.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gas/config/tc-sh64.h b/gas/config/tc-sh64.h index 23e72f62f2c..17f09003c8b 100644 --- a/gas/config/tc-sh64.h +++ b/gas/config/tc-sh64.h @@ -115,10 +115,11 @@ extern int sh64_target_mach (void); /* Don't complain when we leave fx_subsy around. */ #undef TC_VALIDATE_FIX_SUB -#define TC_VALIDATE_FIX_SUB(FIX) \ - ((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ - || (sh_relax && SWITCH_TABLE (FIX)) \ - || *symbol_get_tc ((FIX)->fx_addsy) != NULL) +#define TC_VALIDATE_FIX_SUB(FIX, SEG) \ + ((md_register_arithmetic || (SEG) != reg_section) \ + && ((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ + || (sh_relax && SWITCH_TABLE (FIX)) \ + || *symbol_get_tc ((FIX)->fx_addsy) != NULL)) /* Note the kludge: we want to put back C, and we also want to consume the expression, since we have handled it ourselves. FIXME: What we really |