--- gcc/config/i386.md 2018/04/24 16:53:28 1.1.1.1 +++ gcc/config/i386.md 2018/04/24 16:55:13 1.1.1.2 @@ -390,7 +390,10 @@ xops[2] = stack_pointer_rtx; /* fp_pop_level--; */ output_asm_insn (AS2 (sub%L0,%1,%2), xops); - output_asm_insn (\"fstp%S0 %0\", xops); + if (top_dead_p (insn)) + output_asm_insn (\"fstp%S0 %0\", xops); + else + output_asm_insn (\"fst%S0\", xops); RET; } return \"push%L0 %1\"; @@ -426,7 +429,10 @@ xops[2] = stack_pointer_rtx; /* fp_pop_level--; */ output_asm_insn (AS2 (sub%L0,%1,%2), xops); - output_asm_insn (\"fstp%Q0 %0\", xops); + if (top_dead_p(insn)) + output_asm_insn (\"fstp%Q0 %0\", xops); + else + output_asm_insn (\"fst%Q0 %0\", xops); RETCOM (pushdf); } else @@ -544,21 +550,21 @@ (truncate:QI (match_operand:SI 1 "general_operand" "qi,m")))] "" - "mov%B0 %1,%0") + "mov%B0 %b1,%0") (define_insn "trunchiqi2" [(set (match_operand:QI 0 "general_operand" "=qm,q") (truncate:QI (match_operand:HI 1 "general_operand" "qi,m")))] "" - "mov%B0 %1,%0") + "mov%B0 %b1,%0") (define_insn "truncsihi2" [(set (match_operand:HI 0 "general_operand" "=rm,r") (truncate:HI (match_operand:SI 1 "general_operand" "ri,m")))] "" - "mov%W0 %1,%0") + "mov%W0 %w1,%0") ;;- zero extension instructions ;; Note that the one starting from HImode comes before those for QImode