Alan Modra
2018-10-22 12:07:38 UTC
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
}
}
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
Alan Modra
Australia Development Lab, IBM