PATCH: Fix split_stack_return
H.J. Lu
hjl.tools@gmail.com
Tue Oct 26 23:28:00 GMT 2010
On Tue, Oct 26, 2010 at 2:39 PM, Andrew Pinski <pinskia@gmail.com> wrote:
> On Tue, Oct 26, 2010 at 2:37 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> One is UNSPEC and the other is USPECV. They are different.
>
> Except you just changed that. Both were unspec_volatile before. So
> why not change the value rather than unspec vs unspec_volatile?
>
I don't want to change
(define_expand "split_stack_space_check"
[(set (pc) (if_then_else
(ltu (minus (reg SP_REG)
(match_operand 0 "register_operand" ""))
(unspec [(const_int 0)] UNSPEC_STACK_CHECK))
(label_ref (match_operand 1 "" ""))
(pc)))]
""
{
rtx reg, size, limit;
reg = gen_reg_rtx (Pmode);
size = force_reg (Pmode, operands[0]);
emit_insn (gen_sub3_insn (reg, stack_pointer_rtx, size));
limit = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx),
UNSPEC_STACK_CHECK);
limit = gen_rtx_MEM (Pmode, gen_rtx_CONST (Pmode, limit));
ix86_expand_branch (GEU, reg, limit, operands[1]);
It uses unspec, not unspec_volatile.
--
H.J.
More information about the Gcc-patches
mailing list