diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 4 | ||||
-rw-r--r-- | gcc/config/darwin.c | 2 |
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); |