S12Z: Handle 16 bit fixups which are constant.
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 23 Oct 2018 13:33:18 +0000 (15:33 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Tue, 23 Oct 2018 14:09:29 +0000 (16:09 +0200)
Commit 1f38083f425e03faf55595414daf291306738222 added a test
to check that the assembler handled fixups with resolved to
constant values.  We were not handling this in the case of
16 bit values.  This change fixes that.

* gas/config/tc-s12z.c (md_apply_fix): Handle BFD_RELOC_16

gas/ChangeLog
gas/config/tc-s12z.c

index d5935b79f12e9339a1127ad46f8a65e2cc29e30d..759186b00cd12653304b4615c9b998685dd0d213 100644 (file)
@@ -1,3 +1,8 @@
+2018-10-23  John Darrington  <john@darrington.wattle.id.au>
+
+       * config/tc-s12z.c (md_apply_fix): Handle BFD_RELOC_16 for fixups
+       without a symbol.
+
 2018-10-22  Alan Modra  <amodra@gmail.com>
 
        * testsuite/gas/all/simple-forward.d,
index d3b2ea4c4af07f4eab44dfbbf6e4819d378bfc58..9df86432a5f0e3f03ddf7f70d67754a32984c555 100644 (file)
@@ -3815,6 +3815,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
     case BFD_RELOC_8:
       ((bfd_byte *) where)[0] = (bfd_byte) value;
       break;
+    case BFD_RELOC_16:
+      bfd_putb16 ((bfd_vma) value, (unsigned char *) where);
+      break;
     case BFD_RELOC_24:
       bfd_putb24 ((bfd_vma) value, (unsigned char *) where);
       break;