aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2014-11-08 11:25:24 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-11-08 11:25:24 +0000
commitf959dcbba24faef0b0c0db98e044dcd3a9174c4e (patch)
tree7234ff9560ab7be8e9f1f653f0489f8c30297736
parent8ee963a298c2049518ba17944f90e55a1bac4f22 (diff)
downloadgcc-f959dcbba24faef0b0c0db98e044dcd3a9174c4e.zip
gcc-f959dcbba24faef0b0c0db98e044dcd3a9174c4e.tar.gz
gcc-f959dcbba24faef0b0c0db98e044dcd3a9174c4e.tar.bz2
arm.c (arm_note_pic_base): Delete.
gcc/ * config/arm/arm.c (arm_note_pic_base): Delete. (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX. From-SVN: r217255
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c21
2 files changed, 15 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d0e0c9e..bf81831 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
+ * config/arm/arm.c (arm_note_pic_base): Delete.
+ (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
+
+2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
+
* config/arm/arm.c: Include rtl-iter.h.
(arm_tls_referenced_p_1): Delete.
(arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 2e7c77b..3f2ddd4 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -13199,16 +13199,6 @@ tls_mentioned_p (rtx x)
/* Must not copy any rtx that uses a pc-relative address. */
-static int
-arm_note_pic_base (rtx *x, void *date ATTRIBUTE_UNUSED)
-{
- if (GET_CODE (*x) == UNSPEC
- && (XINT (*x, 1) == UNSPEC_PIC_BASE
- || XINT (*x, 1) == UNSPEC_PIC_UNIFIED))
- return 1;
- return 0;
-}
-
static bool
arm_cannot_copy_insn_p (rtx_insn *insn)
{
@@ -13217,7 +13207,16 @@ arm_cannot_copy_insn_p (rtx_insn *insn)
if (recog_memoized (insn) == CODE_FOR_tlscall)
return true;
- return for_each_rtx (&PATTERN (insn), arm_note_pic_base, NULL);
+ subrtx_iterator::array_type array;
+ FOR_EACH_SUBRTX (iter, array, PATTERN (insn), ALL)
+ {
+ const_rtx x = *iter;
+ if (GET_CODE (x) == UNSPEC
+ && (XINT (x, 1) == UNSPEC_PIC_BASE
+ || XINT (x, 1) == UNSPEC_PIC_UNIFIED))
+ return true;
+ }
+ return false;
}
enum rtx_code