toplev.c (rest_of_compilation): Delay emit_initial_value_sets until after eh landing pad generation.
* toplev.c (rest_of_compilation): Delay emit_initial_value_sets until after eh landing pad generation. * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof. * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs. From-SVN: r51411
This commit is contained in:
parent
dcce8b1d54
commit
1eefb6c149
@ -1,3 +1,10 @@
|
||||
2002-03-26 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* toplev.c (rest_of_compilation): Delay emit_initial_value_sets
|
||||
until after eh landing pad generation.
|
||||
* config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
|
||||
* config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
|
||||
|
||||
2002-03-26 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* expr.h (ADD_PARM_SIZE): One more convert for INC.
|
||||
|
@ -5011,7 +5011,10 @@ alpha_return_addr (count, frame)
|
||||
rtx
|
||||
alpha_gp_save_rtx ()
|
||||
{
|
||||
return get_hard_reg_initial_val (DImode, 29);
|
||||
rtx r = get_hard_reg_initial_val (DImode, 29);
|
||||
if (GET_CODE (r) != MEM)
|
||||
r = gen_mem_addressof (r, NULL_TREE);
|
||||
return r;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -6706,13 +6706,10 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
|
||||
(set_attr "type" "multi")])
|
||||
|
||||
(define_insn "*exception_receiver_2"
|
||||
[(unspec_volatile [(match_operand:DI 0 "nonimmediate_operand" "r,m")]
|
||||
UNSPECV_EHR)]
|
||||
[(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)]
|
||||
"TARGET_LD_BUGGY_LDGP"
|
||||
"@
|
||||
bis $31,%0,$29
|
||||
ldq $29,%0"
|
||||
[(set_attr "type" "ilog,ild")])
|
||||
"ldq $29,%0"
|
||||
[(set_attr "type" "ild")])
|
||||
|
||||
(define_expand "nonlocal_goto_receiver"
|
||||
[(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE)
|
||||
|
@ -2483,7 +2483,6 @@ rest_of_compilation (decl)
|
||||
carry magic hard reg data throughout the function. */
|
||||
rtx_equal_function_value_matters = 0;
|
||||
purge_hard_subreg_sets (get_insns ());
|
||||
emit_initial_value_sets ();
|
||||
|
||||
/* Early return if there were errors. We can run afoul of our
|
||||
consistency checks, and there's not really much point in fixing them.
|
||||
@ -2518,6 +2517,10 @@ rest_of_compilation (decl)
|
||||
timevar_pop (TV_JUMP);
|
||||
}
|
||||
|
||||
/* Delay emitting hard_reg_initial_value sets until after EH landing pad
|
||||
generation, which might create new sets. */
|
||||
emit_initial_value_sets ();
|
||||
|
||||
#ifdef FINALIZE_PIC
|
||||
/* If we are doing position-independent code generation, now
|
||||
is the time to output special prologues and epilogues.
|
||||
|
Loading…
x
Reference in New Issue
Block a user