[AArch64] Fix SYMBOL_REF symbol classification.
authorMarcus Shawcroft <marcus.shawcroft@arm.com>
Thu, 6 Feb 2014 10:17:18 +0000 (10:17 +0000)
committerMarcus Shawcroft <mshawcroft@gcc.gnu.org>
Thu, 6 Feb 2014 10:17:18 +0000 (10:17 +0000)
The symbol classification logic in correctly classifies all
SYMBOL_REF's as SYMBOL_FORCE_TO_MEM, the intention of the code is to
catch only the large memory model case.

From-SVN: r207544

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

index a947212f7d10a69b7d9625f2ba6d35cd30a1eefc..078192de17aacd3218c6f5b94937a21fcce2598b 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
+       for SYMBOL_REF in large memory model.
+
 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
index d3c5cbc7ace9e042ad2575b2ba2356bd17781bf0..16c51a8994e7b8a735a52fbdbb13d170436b4c35 100644 (file)
@@ -5400,9 +5400,8 @@ aarch64_classify_symbol (rtx x,
 
   if (GET_CODE (x) == SYMBOL_REF)
     {
-      if (aarch64_cmodel == AARCH64_CMODEL_LARGE
-         || CONSTANT_POOL_ADDRESS_P (x))
-       return SYMBOL_FORCE_TO_MEM;
+      if (aarch64_cmodel == AARCH64_CMODEL_LARGE)
+         return SYMBOL_FORCE_TO_MEM;
 
       if (aarch64_tls_symbol_p (x))
        return aarch64_classify_tls_symbol (x);