trivial x86_64 shift pattern fix commited
Jan Hubicka
jh@suse.cz
Sat Apr 14 07:20:00 GMT 2001
Hi
Two trivial fixes I found while debugging other problems.
Gcc believed that it is unuable to do constant shift left.
I am installing as obvious to the mainline too.
Honza
So dub 14 16:27:36 CEST 2001 Jan Hubicka <jh@suse.cz>
* i386.md (ashldi3_1_rex64): Add 'J' to the constraints
(ashrdi3_1_rex64): Change 'n' constraint to 'J'.
*** i386.md.old Wed Apr 4 14:33:19 2001
--- i386.md Sat Apr 14 15:52:53 2001
***************
*** 10001,10007 ****
(define_insn "*ashldi3_1_rex64"
[(set (match_operand:DI 0 "nonimmediate_operand" "=rm,r")
(ashift:DI (match_operand:DI 1 "nonimmediate_operand" "0,r")
! (match_operand:QI 2 "nonmemory_operand" "c,M")))
(clobber (reg:CC 17))]
"TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, DImode, operands)"
"*
--- 10169,10175 ----
(define_insn "*ashldi3_1_rex64"
[(set (match_operand:DI 0 "nonimmediate_operand" "=rm,r")
(ashift:DI (match_operand:DI 1 "nonimmediate_operand" "0,r")
! (match_operand:QI 2 "nonmemory_operand" "cJ,M")))
(clobber (reg:CC 17))]
"TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, DImode, operands)"
"*
***************
*** 10762,10768 ****
(define_insn "*ashrdi3_1_rex64"
[(set (match_operand:DI 0 "nonimmediate_operand" "=rm,rm")
(ashiftrt:DI (match_operand:DI 1 "nonimmediate_operand" "0,0")
! (match_operand:QI 2 "nonmemory_operand" "n,c")))
(clobber (reg:CC 17))]
"TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)"
"@
--- 10933,10939 ----
(define_insn "*ashrdi3_1_rex64"
[(set (match_operand:DI 0 "nonimmediate_operand" "=rm,rm")
(ashiftrt:DI (match_operand:DI 1 "nonimmediate_operand" "0,0")
! (match_operand:QI 2 "nonmemory_operand" "J,c")))
(clobber (reg:CC 17))]
"TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)"
"@
More information about the Gcc-patches
mailing list