From 4f856a3e28c08d1b03bde0ec6a31da86917f02cf Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 1 Jul 2005 10:25:04 +0200 Subject: re PR target/22262 (stack_protector use creates broken assembler) PR target/22262 * config/i386/i386.md (stack_protect_test_si, stack_protect_test_di): Add earlyclobber for scratch 3. * config/rs6000/rs6000.md (stack_protect_testsi, stack_protect_testdi): Add earlyclobber for scratch 3, remove earlyclobber from scratch 4. From-SVN: r101500 --- gcc/ChangeLog | 9 +++++++++ gcc/config/i386/i386.md | 4 ++-- gcc/config/rs6000/rs6000.md | 8 ++++---- 3 files changed, 15 insertions(+), 6 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89f189c..7840008 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2005-07-01 Jakub Jelinek + + PR target/22262 + * config/i386/i386.md (stack_protect_test_si, + stack_protect_test_di): Add earlyclobber for scratch 3. + * config/rs6000/rs6000.md (stack_protect_testsi, + stack_protect_testdi): Add earlyclobber for scratch 3, + remove earlyclobber from scratch 4. + 2005-06-30 Diego Novillo PR 21584 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 0231565..1ca5d22 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -19662,7 +19662,7 @@ (unspec:CCZ [(match_operand:SI 1 "memory_operand" "m") (match_operand:SI 2 "memory_operand" "m")] UNSPEC_SP_TEST)) - (clobber (match_scratch:SI 3 "=r"))] + (clobber (match_scratch:SI 3 "=&r"))] "" "mov{l}\t{%1, %3|%3, %1}\;xor{l}\t{%2, %3|%3, %2}" [(set_attr "type" "multi")]) @@ -19672,7 +19672,7 @@ (unspec:CCZ [(match_operand:DI 1 "memory_operand" "m") (match_operand:DI 2 "memory_operand" "m")] UNSPEC_SP_TEST)) - (clobber (match_scratch:DI 3 "=r"))] + (clobber (match_scratch:DI 3 "=&r"))] "TARGET_64BIT" "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%2, %3|%3, %2}" [(set_attr "type" "multi")]) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index f7a9df1..9211e56 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -10808,8 +10808,8 @@ (unspec:CCEQ [(match_operand:SI 1 "memory_operand" "m,m") (match_operand:SI 2 "memory_operand" "m,m")] UNSPEC_SP_TEST)) - (clobber (match_scratch:SI 3 "=r,r")) - (set (match_scratch:SI 4 "=&r,&r") (const_int 0))] + (clobber (match_scratch:SI 3 "=&r,&r")) + (set (match_scratch:SI 4 "=r,r") (const_int 0))] "TARGET_32BIT" "@ {l%U1%X1|lwz%U1%X1} %3,%1\;{l%U2%X2|lwz%U2%X2} %4,%2\;xor. %3,%3,%4\;{lil|li} %4,0 @@ -10821,8 +10821,8 @@ (unspec:CCEQ [(match_operand:DI 1 "memory_operand" "m,m") (match_operand:DI 2 "memory_operand" "m,m")] UNSPEC_SP_TEST)) - (clobber (match_scratch:DI 3 "=r,r")) - (set (match_scratch:DI 4 "=&r,&r") (const_int 0))] + (clobber (match_scratch:DI 3 "=&r,&r")) + (set (match_scratch:DI 4 "=r,r") (const_int 0))] "TARGET_64BIT" "@ ld%U1%X1 %3,%1\;ld%U2%X2 %4,%2\;xor. %3,%3,%4\;{lil|li} %4,0 -- cgit v1.1