(define_insn "*pushtf"
[(set (match_operand:TF 0 "push_operand" "=<,<")
- (match_operand:TF 1 "general_no_elim_operand" "v,*roF"))]
+ (match_operand:TF 1 "general_no_elim_operand" "v,*roC"))]
"TARGET_64BIT || TARGET_SSE"
{
/* This insn should be already split before reg-stack. */
(symbol_ref "true")))])
(define_insn "*pushxf"
- [(set (match_operand:XF 0 "push_operand" "=<,<,<,<")
- (match_operand:XF 1 "general_no_elim_operand" "f,r,*r,oF"))]
+ [(set (match_operand:XF 0 "push_operand" "=<,<,<,<,<")
+ (match_operand:XF 1 "general_no_elim_operand" "f,r,*r,oF,oC"))]
""
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();
}
- [(set_attr "type" "multi")
- (set_attr "unit" "i387,*,*,*")
+ [(set_attr "isa" "*,*,*,nox64,x64")
+ (set_attr "type" "multi")
+ (set_attr "unit" "i387,*,*,*,*")
(set (attr "mode")
- (cond [(eq_attr "alternative" "1,2,3")
+ (cond [(eq_attr "alternative" "1,2,3,4")
(if_then_else (match_test "TARGET_64BIT")
(const_string "DI")
(const_string "SI"))
[(set (reg:P SP_REG) (plus:P (reg:P SP_REG) (match_dup 2)))
(set (match_dup 0) (match_dup 1))]
{
- operands[2] = GEN_INT (-GET_MODE_SIZE (XFmode));
+ operands[2] = GEN_INT (-PUSH_ROUNDING (GET_MODE_SIZE (XFmode)));
/* Preserve memory attributes. */
operands[0] = replace_equiv_address (operands[0], stack_pointer_rtx);
})
(define_insn "*pushdf"
[(set (match_operand:DF 0 "push_operand" "=<,<,<,<,<,<")
- (match_operand:DF 1 "general_no_elim_operand" "f,r,*r,oF,rmF,x"))]
+ (match_operand:DF 1 "general_no_elim_operand" "f,r,*r,oF,rmC,x"))]
""
{
/* This insn should be already split before reg-stack. */