OSDN Git Service

* config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jun 2011 15:05:05 +0000 (15:05 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jun 2011 15:05:05 +0000 (15:05 +0000)
CONST high part large-toc address.
(rs6000_tls_referenced_p): Make static.
* config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175219 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c

index a4b5faf..455fdcf 100644 (file)
@@ -1,3 +1,10 @@
+2011-06-21  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
+       CONST high part large-toc address.
+       (rs6000_tls_referenced_p): Make static.
+       * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
+
 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR middle-end/47725
index b7b60c0..36f2a4c 100644 (file)
@@ -171,7 +171,6 @@ extern unsigned int rs6000_dbx_register_number (unsigned int);
 extern void rs6000_emit_epilogue (int);
 extern void rs6000_emit_eh_reg_restore (rtx, rtx);
 extern const char * output_isel (rtx *);
-extern bool rs6000_tls_referenced_p (rtx);
 
 extern void rs6000_aix_asm_output_dwarf_table_ref (char *);
 
index df6e7d9..cea1650 100644 (file)
@@ -6045,7 +6045,7 @@ rs6000_legitimize_tls_address (rtx addr, enum tls_model model)
 
 /* Return 1 if X contains a thread-local symbol.  */
 
-bool
+static bool
 rs6000_tls_referenced_p (rtx x)
 {
   if (! TARGET_HAVE_TLS)
@@ -6059,6 +6059,11 @@ rs6000_tls_referenced_p (rtx x)
 static bool
 rs6000_cannot_force_const_mem (enum machine_mode mode ATTRIBUTE_UNUSED, rtx x)
 {
+  if (GET_CODE (x) == CONST
+      && GET_CODE (XEXP (x, 0)) == PLUS
+      && GET_CODE (XEXP (XEXP (x, 0), 1)) == HIGH)
+    return true;
+
   return rs6000_tls_referenced_p (x);
 }