aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-07-01 10:25:04 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2005-07-01 10:25:04 +0200
commit4f856a3e28c08d1b03bde0ec6a31da86917f02cf (patch)
tree4ffb88d2133ceb6cc427335c3a67bfa9e7ebe334 /gcc
parenta3b6aba29ce755802735a488b436e0b94d10ad15 (diff)
downloadgcc-4f856a3e28c08d1b03bde0ec6a31da86917f02cf.zip
gcc-4f856a3e28c08d1b03bde0ec6a31da86917f02cf.tar.gz
gcc-4f856a3e28c08d1b03bde0ec6a31da86917f02cf.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/i386.md4
-rw-r--r--gcc/config/rs6000/rs6000.md8
3 files changed, 15 insertions, 6 deletions
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 <jakub@redhat.com>
+
+ 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 <dnovillo@redhat.com>
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