summaryrefslogtreecommitdiff
path: root/gas/config/tc-sh64.h
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-sh64.h')
-rw-r--r--gas/config/tc-sh64.h9
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