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