aarch64.c (aarch64_classify_address): Support PC-relative load in SI modes and above...
authorSofiane Naci <sofiane.naci@arm.com>
Tue, 26 Mar 2013 14:41:11 +0000 (14:41 +0000)
committerSofiane Naci <sofiane@gcc.gnu.org>
Tue, 26 Mar 2013 14:41:11 +0000 (14:41 +0000)
* config/aarch64/aarch64.c (aarch64_classify_address): Support
PC-relative load in SI modes and above only.

From-SVN: r197107

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index 34721f752a1c66ae4d8efbaa4975936eb87614a2..51a427614d9811642e9e30cfa46dc705b47703af 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_classify_address): Support
+       PC-relative load in SI modes and above only.
+
 2013-03-26  Xinyu Qi  <xyqi@marvell.com>
 
        * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
index 343586e28c8ed246793bf089047fc03dd0277cf0..d51b8d04bb048b481edc728ff668f64e92162a44 100644 (file)
@@ -2926,9 +2926,10 @@ aarch64_classify_address (struct aarch64_address_info *info,
     case CONST:
     case SYMBOL_REF:
     case LABEL_REF:
-      /* load literal: pc-relative constant pool entry.  */
+      /* load literal: pc-relative constant pool entry.  Only supported
+         for SI mode or larger.  */
       info->type = ADDRESS_SYMBOLIC;
-      if (outer_code != PARALLEL)
+      if (outer_code != PARALLEL && GET_MODE_SIZE (mode) >= 4)
        {
          rtx sym, addend;