aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/arm/arm.c4
-rw-r--r--gcc/config/darwin.c2
3 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4de76bd..02662d4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-04-28 Andrew Pinski <pinskia@gmail.com>
+
+ PR target/39929
+ * config/darwin.c (machopic_gen_offset): Check
+ currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
+ * config/arm/arm.c (require_pic_register): Likewise.
+
2009-04-28 Paolo Bonzini <bonzini@gnu.org>
* config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 0b4a06c..055cb36 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -3565,7 +3565,7 @@ require_pic_register (void)
/* Play games to avoid marking the function as needing pic
if we are being called as part of the cost-estimation
process. */
- if (current_ir_type () != IR_GIMPLE)
+ if (current_ir_type () != IR_GIMPLE || currently_expanding_to_rtl)
crtl->uses_pic_offset_table = 1;
}
else
@@ -3578,7 +3578,7 @@ require_pic_register (void)
/* Play games to avoid marking the function as needing pic
if we are being called as part of the cost-estimation
process. */
- if (current_ir_type () != IR_GIMPLE)
+ if (current_ir_type () != IR_GIMPLE || currently_expanding_to_rtl)
{
crtl->uses_pic_offset_table = 1;
start_sequence ();
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index f8c982e..88d032f 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -281,7 +281,7 @@ machopic_gen_offset (rtx orig)
{
/* Play games to avoid marking the function as needing pic if we
are being called as part of the cost-estimation process. */
- if (current_ir_type () != IR_GIMPLE)
+ if (current_ir_type () != IR_GIMPLE || currently_expanding_to_rtl)
crtl->uses_pic_offset_table = 1;
orig = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, orig),
UNSPEC_MACHOPIC_OFFSET);