diff options
author | DJ Delorie <dj@redhat.com> | 2013-01-29 22:17:53 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2013-01-29 22:17:53 +0000 |
commit | 392ca752084a7ea99a345a7b19b9e7453f2ea6a2 (patch) | |
tree | 7a8114492181247393bd06b3df5e98f9cb4e4598 /gas | |
parent | 8d9878a4ca345aef7d7a727a11e7f76de787bac0 (diff) | |
download | binutils-gdb-392ca752084a7ea99a345a7b19b9e7453f2ea6a2.tar.gz |
* config/tc-rl78.c (rl78_cons_fix_new): Handle user-specified
relocs in .word/.etc statements.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-rl78.c | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 3083caeda25..b4a211f594b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2013-01-29 DJ Delorie <dj@redhat.com> + + * config/tc-rl78.c (rl78_cons_fix_new): Handle user-specified + relocs in .word/.etc statements. + 2013-01-29 Roland McGrath <mcgrathr@google.com> * config/tc-arm.c (md_apply_fix): Use as_bad_where for "bad diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c index 53d3df2f2b6..bd964dc1630 100644 --- a/gas/config/tc-rl78.c +++ b/gas/config/tc-rl78.c @@ -554,6 +554,23 @@ rl78_cons_fix_new (fragS * frag, return; } + switch (exp->X_md) + { + case BFD_RELOC_RL78_LO16: + case BFD_RELOC_RL78_HI16: + if (size != 2) + as_bad (_("%%hi16/%%lo16 only applies to .short or .hword")); + type = exp->X_md; + break; + case BFD_RELOC_RL78_HI8: + if (size != 1) + as_bad (_("%%hi8 only applies to .byte")); + type = exp->X_md; + break; + default: + break; + } + if (exp->X_op == O_subtract && exp->X_op_symbol) { if (size != 4 && size != 2 && size != 1) |