aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2024-09-09 22:33:52 +0200
committerUros Bizjak <ubizjak@gmail.com>2024-09-09 22:34:29 +0200
commit1da79de5275de82bc810d2f8d70fbc98dbce3da5 (patch)
tree23ae7da0bfce6222a2372549aa4707227d8c94de /gcc
parent6e35b0e8572a71d0e6f407cc356592a0b97fc298 (diff)
downloadgcc-1da79de5275de82bc810d2f8d70fbc98dbce3da5.zip
gcc-1da79de5275de82bc810d2f8d70fbc98dbce3da5.tar.gz
gcc-1da79de5275de82bc810d2f8d70fbc98dbce3da5.tar.bz2
i386: Use offsetable address constraint for double-word memory operands
Double-word memory operands are accessed as their high and low part, so the memory location has to be offsettable. Use "o" constraint instead of "m" for double-word memory operands. gcc/ChangeLog: * config/i386/i386.md (*insvdi_lowpart_1): Use "o" constraint instead of "m" for double-word mode memory operands. (*add<dwi>3_doubleword_zext): Ditto. (*addv<dwi>4_doubleword_1): Use "jO" constraint instead of "jM" for double-word mode memory operands.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.md6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 0fae3c1..8d269fe 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -3707,7 +3707,7 @@
[(set (match_operand:DI 0 "nonimmediate_operand" "=ro,r,r,&r")
(any_or_plus:DI
(and:DI
- (match_operand:DI 1 "nonimmediate_operand" "r,m,r,m")
+ (match_operand:DI 1 "nonimmediate_operand" "r,o,r,o")
(match_operand:DI 3 "const_int_operand" "n,n,n,n"))
(zero_extend:DI
(match_operand:SI 2 "nonimmediate_operand" "r,r,m,m"))))]
@@ -6461,7 +6461,7 @@
(plus:<DWI>
(zero_extend:<DWI>
(match_operand:DWIH 2 "nonimmediate_operand" "rm,r,rm,r"))
- (match_operand:<DWI> 1 "nonimmediate_operand" "0,0,r,m")))
+ (match_operand:<DWI> 1 "nonimmediate_operand" "0,0,r,o")))
(clobber (reg:CC FLAGS_REG))]
"ix86_binary_operator_ok (UNKNOWN, <DWI>mode, operands, TARGET_APX_NDD)"
"#"
@@ -7703,7 +7703,7 @@
(eq:CCO
(plus:<QPWI>
(sign_extend:<QPWI>
- (match_operand:<DWI> 1 "nonimmediate_operand" "%0,rjM"))
+ (match_operand:<DWI> 1 "nonimmediate_operand" "%0,rjO"))
(match_operand:<QPWI> 3 "const_scalar_int_operand" "n,n"))
(sign_extend:<QPWI>
(plus:<DWI>