* [committed] MIPS/GAS: Unify GP-relative percent-ops
@ 2017-05-12 1:40 Maciej W. Rozycki
0 siblings, 0 replies; only message in thread
From: Maciej W. Rozycki @ 2017-05-12 1:40 UTC (permalink / raw)
To: binutils; +Cc: Matthew Fortune
For a reason that is unclear commit d6f165938798 ("Support for MIPS16
HI16/LO16 relocations"),
<https://sourceware.org/ml/binutils/2005-02/msg00332.html>, which has
added support for the R_MIPS16_GPREL relocation, has spelled its
corresponding MIPS16 percent-op as `%gprel', rather than `%gp_rel' which
is how its regular MIPS counterpart is spelled. To make assembly code
sharing easier between the regular MIPS and the MIPS16 ISA make both
percent-op spellings acceptable in both kinds of code now.
Parts of this change by Matthew Fortune.
gas/
* config/tc-mips.c (mips_percent_op): Add "%gprel".
(mips16_percent_op): Add "%gp_rel".
* testsuite/gas/mips/elf-rel8.s:: Add `%gprel' forms.
* testsuite/gas/mips/elf-rel8-mips16.s: Add `%gp_rel' forms.
* testsuite/gas/mips/elf-rel8.d: Adjust accordingly.
* testsuite/gas/mips/elf-rel8-mips16.d: Likewise.
---
binutils-mips16-matthewf-gprel.diff
Index: binutils/gas/config/tc-mips.c
===================================================================
--- binutils.orig/gas/config/tc-mips.c 2017-05-12 00:12:16.440212444 +0100
+++ binutils/gas/config/tc-mips.c 2017-05-12 02:01:55.271447015 +0100
@@ -14094,6 +14094,7 @@ static const struct percent_op_match mip
{"%got_lo", BFD_RELOC_MIPS_GOT_LO16},
{"%got", BFD_RELOC_MIPS_GOT16},
{"%gp_rel", BFD_RELOC_GPREL16},
+ {"%gprel", BFD_RELOC_GPREL16},
{"%half", BFD_RELOC_16},
{"%highest", BFD_RELOC_MIPS_HIGHEST},
{"%higher", BFD_RELOC_MIPS_HIGHER},
@@ -14113,6 +14114,7 @@ static const struct percent_op_match mip
static const struct percent_op_match mips16_percent_op[] =
{
{"%lo", BFD_RELOC_MIPS16_LO16},
+ {"%gp_rel", BFD_RELOC_MIPS16_GPREL},
{"%gprel", BFD_RELOC_MIPS16_GPREL},
{"%got", BFD_RELOC_MIPS16_GOT16},
{"%call16", BFD_RELOC_MIPS16_CALL16},
Index: binutils/gas/testsuite/gas/mips/elf-rel8-mips16.d
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/elf-rel8-mips16.d 2017-05-12 00:12:16.451626351 +0100
+++ binutils/gas/testsuite/gas/mips/elf-rel8-mips16.d 2017-05-12 01:24:29.372183202 +0100
@@ -34,5 +34,11 @@
32: R_MIPS16_GPREL gvar
36: f000 4c00 addiu \$4,0
36: R_MIPS16_GPREL gvar
- 3a: 6500 nop
+ 3a: f000 9a80 lw \$4,0\(\$2\)
+ 3a: R_MIPS16_GPREL gvar
+ 3e: f000 da80 sw \$4,0\(\$2\)
+ 3e: R_MIPS16_GPREL gvar
+ 42: f000 4c00 addiu \$4,0
+ 42: R_MIPS16_GPREL gvar
+ 46: 6500 nop
#pass
Index: binutils/gas/testsuite/gas/mips/elf-rel8-mips16.s
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/elf-rel8-mips16.s 2017-05-12 00:12:16.494331325 +0100
+++ binutils/gas/testsuite/gas/mips/elf-rel8-mips16.s 2017-05-12 01:24:29.397970410 +0100
@@ -32,6 +32,13 @@
lw $4,%gprel(gvar)($2)
sw $4,%gprel(gvar)($2)
addiu $4,%gprel(gvar)
+
+ # Check the alternative form.
+
+ lw $4,%gp_rel(gvar)($2)
+ sw $4,%gp_rel(gvar)($2)
+ addiu $4,%gp_rel(gvar)
+
.align 6
.end foo
Index: binutils/gas/testsuite/gas/mips/elf-rel8.d
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/elf-rel8.d 2017-05-12 00:12:16.507519877 +0100
+++ binutils/gas/testsuite/gas/mips/elf-rel8.d 2017-05-12 01:24:29.476514484 +0100
@@ -54,4 +54,10 @@
5c: R_MIPS_GPREL16 gvar
60: 27840000 addiu \$4,\$28,0
60: R_MIPS_GPREL16 gvar
+ 64: 8f840000 lw \$4,0\(\$28\)
+ 64: R_MIPS_GPREL16 gvar
+ 68: af840000 sw \$4,0\(\$28\)
+ 68: R_MIPS_GPREL16 gvar
+ 6c: 27840000 addiu \$4,\$28,0
+ 6c: R_MIPS_GPREL16 gvar
\.\.\.
Index: binutils/gas/testsuite/gas/mips/elf-rel8.s
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/elf-rel8.s 2017-05-12 00:12:16.521783066 +0100
+++ binutils/gas/testsuite/gas/mips/elf-rel8.s 2017-05-12 01:24:29.554556813 +0100
@@ -46,6 +46,12 @@
sw $4,%gp_rel(gvar)($28)
addiu $4,$28,%gp_rel(gvar)
+ # Check the alternative form.
+
+ lw $4,%gprel(gvar)($28)
+ sw $4,%gprel(gvar)($28)
+ addiu $4,$28,%gprel(gvar)
+
.space 64
.end foo
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-05-12 1:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-12 1:40 [committed] MIPS/GAS: Unify GP-relative percent-ops Maciej W. Rozycki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).