aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>2019-10-16 02:58:40 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>2019-10-16 02:58:40 +0000
commit0dc4a7057c22b9cf6d6b8dcb53aed60c2dc86f58 (patch)
tree1156baee649fb103191358c03c8050189b8b3099
parentdfc911a13f19b768efb07a3a8a571801fe5c55b7 (diff)
Add (0),1 to @pcrel syntax.
2019-10-15 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/rs6000.c (print_operand_address): Add (0),1 to @pcrel to catch errant usage. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/ibm/pcrel-trunk@277045 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.meissner5
-rw-r--r--gcc/config/rs6000/rs6000.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 469e1dae5ef..e3fe0e5b16b 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,5 +1,10 @@
2019-10-15 Michael Meissner <meissner@linux.ibm.com>
+ * config/rs6000/rs6000.c (print_operand_address): Add (0),1 to
+ @pcrel to catch errant usage.
+
+2019-10-15 Michael Meissner <meissner@linux.ibm.com>
+
* config/rs6000/linux64.h (TARGET_PREFIXED_ADDR_DEFAULT): Enable
prefixed addressing by default.
(TARGET_PCREL_DEFAULT): Enable pc-relative addressing by default.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 9704f703586..fe6aea37bc4 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -13272,7 +13272,10 @@ print_operand_address (FILE *file, rtx x)
if (SYMBOL_REF_P (x) && !SYMBOL_REF_LOCAL_P (x))
fprintf (file, "@got");
- fprintf (file, "@pcrel");
+ /* Specifically add (0),1 to catch uses where a @pcrel was added to a an
+ address with a base register, since the hardware does not support
+ adding a base register to a PC-relative address. */
+ fprintf (file, "@pcrel(0),1");
}
else if (SYMBOL_REF_P (x) || GET_CODE (x) == CONST
|| GET_CODE (x) == LABEL_REF)