Apply alpha BFD_RELOC_8 fixups

Alan Modra amodra@gmail.com
Mon Oct 22 12:07:00 GMT 2018


This doesn't mean that Alpha now has a byte relocation, just that gas
fixups on byte data that fully resolve to a constant can be applied.

	* config/tc-alpha.c (md_apply_fix): Handle BFD_RELOC_8 for fixups
	without a symbol.
	* testsuite/gas/all/gas.exp: Don't xfail forward test here..
	* testsuite/gas/all/forward.d: ..do so here, removing alpha.

diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index 7fff858f1b..77918118a7 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -5769,6 +5769,12 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
       md_number_to_chars (fixpos, value, 2);
       break;
 
+    case BFD_RELOC_8:
+      if (fixP->fx_pcrel)
+	fixP->fx_r_type = BFD_RELOC_8_PCREL;
+      size = 1;
+      goto do_reloc_xx;
+
     case BFD_RELOC_16:
       if (fixP->fx_pcrel)
 	fixP->fx_r_type = BFD_RELOC_16_PCREL;
diff --git a/gas/testsuite/gas/all/forward.d b/gas/testsuite/gas/all/forward.d
index 8e45201c22..9750133e9e 100644
--- a/gas/testsuite/gas/all/forward.d
+++ b/gas/testsuite/gas/all/forward.d
@@ -1,5 +1,7 @@
 #objdump: -s -j .data
 #name: forward references
+# Some targets don't manage to resolve BFD_RELOC_8 for constants.
+#xfail: *c30-*-* *c4x-*-* d10v-*-* d30v-*-* pdp11-*-* xtensa*-*-*
 
 .*: .*
 
diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp
index 74988a1297..4296b14a70 100644
--- a/gas/testsuite/gas/all/gas.exp
+++ b/gas/testsuite/gas/all/gas.exp
@@ -111,10 +111,6 @@ case $target_triplet in {
     { microblaze-*-* } { }
     { mn10\[23\]00*-*-* } { }
     default {
-	# Some targets don't manage to resolve BFD_RELOC_8 for constants.
-	setup_xfail "alpha*-*-*" "*c30*-*-*" "*c4x*-*-*" \
-	    "d\[13\]0v*-*-*" \
-	    "pdp11-*-*" "xtensa*-*-*"
 	run_dump_test forward
     }
 }

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list