Index: gcc/config/i386/i386.md |
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md |
index 7da4cfc68b24e87d122d8325f93397cb4bc16271..a260bad25dd55030b8da5a657c9895a105318d45 100644 |
--- a/gcc/config/i386/i386.md |
+++ b/gcc/config/i386/i386.md |
@@ -776,7 +776,7 @@ |
(define_expand "cmpsi" |
[(set (reg:CC FLAGS_REG) |
(compare:CC (match_operand:SI 0 "cmpsi_operand" "") |
- (match_operand:SI 1 "general_operand" "")))] |
+ (match_operand:SI 1 "x86_64_general_operand" "")))] |
"" |
{ |
if (MEM_P (operands[0]) && MEM_P (operands[1])) |
@@ -866,7 +866,7 @@ |
(define_insn "*cmpsi_minus_1" |
[(set (reg FLAGS_REG) |
(compare (minus:SI (match_operand:SI 0 "nonimmediate_operand" "rm,r") |
- (match_operand:SI 1 "general_operand" "re,mr")) |
+ (match_operand:SI 1 "x86_64_general_operand" "re,mr")) |
(const_int 0)))] |
"ix86_match_ccmode (insn, CCGOCmode)" |
"cmp{l}\t{%1, %0|%0, %1}" |
@@ -876,14 +876,14 @@ |
(define_expand "cmpsi_1" |
[(set (reg:CC FLAGS_REG) |
(compare:CC (match_operand:SI 0 "nonimmediate_operand" "") |
- (match_operand:SI 1 "general_operand" "")))] |
+ (match_operand:SI 1 "x86_64_general_operand" "")))] |
"" |
"") |
(define_insn "*cmpsi_1_insn" |
[(set (reg FLAGS_REG) |
(compare (match_operand:SI 0 "nonimmediate_operand" "rm,r") |
- (match_operand:SI 1 "general_operand" "re,mr")))] |
+ (match_operand:SI 1 "x86_64_general_operand" "re,mr")))] |
"!(MEM_P (operands[0]) && MEM_P (operands[1])) |
&& ix86_match_ccmode (insn, CCmode)" |
"cmp{l}\t{%1, %0|%0, %1}" |
@@ -5891,7 +5891,7 @@ |
[(set (reg:CCC FLAGS_REG) |
(compare:CCC |
(plusminus:SI (match_operand:SI 1 "nonimmediate_operand" "<comm>0") |
- (match_operand:SI 2 "general_operand" "g")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")) |
(match_dup 1))) |
(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI (plusminus:SI (match_dup 1) (match_dup 2))))] |
@@ -7757,7 +7757,7 @@ |
[(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") |
(minus:SI (match_operand:SI 1 "nonimmediate_operand" "0,0") |
(plus:SI (match_operand:SI 3 "ix86_carry_flag_operator" "") |
- (match_operand:SI 2 "general_operand" "ri,rm")))) |
+ (match_operand:SI 2 "x86_64_general_operand" "ri,rm")))) |
(clobber (reg:CC FLAGS_REG))] |
"ix86_binary_operator_ok (MINUS, SImode, operands)" |
"sbb{l}\t{%2, %0|%0, %2}" |
@@ -7770,7 +7770,7 @@ |
(zero_extend:DI |
(minus:SI (match_operand:SI 1 "register_operand" "0") |
(plus:SI (match_operand:SI 3 "ix86_carry_flag_operator" "") |
- (match_operand:SI 2 "general_operand" "g"))))) |
+ (match_operand:SI 2 "x86_64_general_operand" "g"))))) |
(clobber (reg:CC FLAGS_REG))] |
"TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)" |
"sbb{l}\t{%2, %k0|%k0, %2}" |
@@ -7781,14 +7781,14 @@ |
(define_expand "subsi3" |
[(set (match_operand:SI 0 "nonimmediate_operand" "") |
(minus:SI (match_operand:SI 1 "nonimmediate_operand" "") |
- (match_operand:SI 2 "general_operand" "")))] |
+ (match_operand:SI 2 "x86_64_general_operand" "")))] |
"" |
"ix86_expand_binary_operator (MINUS, SImode, operands); DONE;") |
(define_insn "*subsi_1" |
[(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") |
(minus:SI (match_operand:SI 1 "nonimmediate_operand" "0,0") |
- (match_operand:SI 2 "general_operand" "re,rm"))) |
+ (match_operand:SI 2 "x86_64_general_operand" "re,rm"))) |
(clobber (reg:CC FLAGS_REG))] |
"ix86_binary_operator_ok (MINUS, SImode, operands)" |
"sub{l}\t{%2, %0|%0, %2}" |
@@ -7799,7 +7799,7 @@ |
[(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI |
(minus:SI (match_operand:SI 1 "register_operand" "0") |
- (match_operand:SI 2 "general_operand" "g")))) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")))) |
(clobber (reg:CC FLAGS_REG))] |
"TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)" |
"sub{l}\t{%2, %k0|%k0, %2}" |
@@ -7810,7 +7810,7 @@ |
[(set (reg FLAGS_REG) |
(compare |
(minus:SI (match_operand:SI 1 "nonimmediate_operand" "0,0") |
- (match_operand:SI 2 "general_operand" "ri,rm")) |
+ (match_operand:SI 2 "x86_64_general_operand" "ri,rm")) |
(const_int 0))) |
(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") |
(minus:SI (match_dup 1) (match_dup 2)))] |
@@ -7824,7 +7824,7 @@ |
[(set (reg FLAGS_REG) |
(compare |
(minus:SI (match_operand:SI 1 "register_operand" "0") |
- (match_operand:SI 2 "general_operand" "g")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")) |
(const_int 0))) |
(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI |
@@ -7839,7 +7839,7 @@ |
(define_insn "*subsi_3" |
[(set (reg FLAGS_REG) |
(compare (match_operand:SI 1 "nonimmediate_operand" "0,0") |
- (match_operand:SI 2 "general_operand" "ri,rm"))) |
+ (match_operand:SI 2 "x86_64_general_operand" "ri,rm"))) |
(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") |
(minus:SI (match_dup 1) (match_dup 2)))] |
"ix86_match_ccmode (insn, CCmode) |
@@ -7851,7 +7851,7 @@ |
(define_insn "*subsi_3_zext" |
[(set (reg FLAGS_REG) |
(compare (match_operand:SI 1 "register_operand" "0") |
- (match_operand:SI 2 "general_operand" "g"))) |
+ (match_operand:SI 2 "x86_64_general_operand" "g"))) |
(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI |
(minus:SI (match_dup 1) |
@@ -8025,7 +8025,7 @@ |
(define_expand "mulsi3" |
[(parallel [(set (match_operand:SI 0 "register_operand" "") |
(mult:SI (match_operand:SI 1 "register_operand" "") |
- (match_operand:SI 2 "general_operand" ""))) |
+ (match_operand:SI 2 "x86_64_general_operand" ""))) |
(clobber (reg:CC FLAGS_REG))])] |
"" |
"") |
@@ -8041,7 +8041,7 @@ |
(define_insn "*mulsi3_1" |
[(set (match_operand:SI 0 "register_operand" "=r,r,r") |
(mult:SI (match_operand:SI 1 "nonimmediate_operand" "%rm,rm,0") |
- (match_operand:SI 2 "general_operand" "K,i,mr"))) |
+ (match_operand:SI 2 "x86_64_general_operand" "K,i,mr"))) |
(clobber (reg:CC FLAGS_REG))] |
"!(MEM_P (operands[1]) && MEM_P (operands[2]))" |
"@ |
@@ -8070,7 +8070,7 @@ |
[(set (match_operand:DI 0 "register_operand" "=r,r,r") |
(zero_extend:DI |
(mult:SI (match_operand:SI 1 "nonimmediate_operand" "%rm,rm,0") |
- (match_operand:SI 2 "general_operand" "K,i,mr")))) |
+ (match_operand:SI 2 "x86_64_general_operand" "K,i,mr")))) |
(clobber (reg:CC FLAGS_REG))] |
"TARGET_64BIT |
&& !(MEM_P (operands[1]) && MEM_P (operands[2]))" |
@@ -8925,7 +8925,7 @@ |
[(set (reg FLAGS_REG) |
(compare |
(and:SI (match_operand:SI 0 "nonimmediate_operand" "%!*a,r,rm") |
- (match_operand:SI 1 "general_operand" "i,i,ri")) |
+ (match_operand:SI 1 "x86_64_general_operand" "i,i,ri")) |
(const_int 0)))] |
"ix86_match_ccmode (insn, CCNOmode) |
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))" |
@@ -8939,7 +8939,7 @@ |
[(set (reg:CCNO FLAGS_REG) |
(compare:CCNO |
(and:SI (match_operand:SI 0 "nonimmediate_operand" "") |
- (match_operand:SI 1 "nonmemory_operand" "")) |
+ (match_operand:SI 1 "x86_64_nonmemory_operand" "")) |
(const_int 0)))] |
"" |
"") |
@@ -9747,14 +9747,14 @@ |
(define_expand "iorsi3" |
[(set (match_operand:SI 0 "nonimmediate_operand" "") |
(ior:SI (match_operand:SI 1 "nonimmediate_operand" "") |
- (match_operand:SI 2 "general_operand" "")))] |
+ (match_operand:SI 2 "x86_64_general_operand" "")))] |
"" |
"ix86_expand_binary_operator (IOR, SImode, operands); DONE;") |
(define_insn "*iorsi_1" |
[(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") |
(ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0") |
- (match_operand:SI 2 "general_operand" "ri,g"))) |
+ (match_operand:SI 2 "x86_64_general_operand" "ri,g"))) |
(clobber (reg:CC FLAGS_REG))] |
"ix86_binary_operator_ok (IOR, SImode, operands)" |
"or{l}\t{%2, %0|%0, %2}" |
@@ -9766,7 +9766,7 @@ |
[(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI |
(ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0") |
- (match_operand:SI 2 "general_operand" "g")))) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")))) |
(clobber (reg:CC FLAGS_REG))] |
"TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)" |
"or{l}\t{%2, %k0|%k0, %2}" |
@@ -9786,7 +9786,7 @@ |
(define_insn "*iorsi_2" |
[(set (reg FLAGS_REG) |
(compare (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0") |
- (match_operand:SI 2 "general_operand" "g,ri")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g,ri")) |
(const_int 0))) |
(set (match_operand:SI 0 "nonimmediate_operand" "=r,rm") |
(ior:SI (match_dup 1) (match_dup 2)))] |
@@ -9801,7 +9801,7 @@ |
(define_insn "*iorsi_2_zext" |
[(set (reg FLAGS_REG) |
(compare (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0") |
- (match_operand:SI 2 "general_operand" "g")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")) |
(const_int 0))) |
(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI (ior:SI (match_dup 1) (match_dup 2))))] |
@@ -10130,7 +10130,7 @@ |
(define_insn "*iorsi_3" |
[(set (reg FLAGS_REG) |
(compare (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0") |
- (match_operand:SI 2 "general_operand" "g")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")) |
(const_int 0))) |
(clobber (match_scratch:SI 0 "=r"))] |
"ix86_match_ccmode (insn, CCNOmode) |
@@ -10418,14 +10418,14 @@ |
(define_expand "xorsi3" |
[(set (match_operand:SI 0 "nonimmediate_operand" "") |
(xor:SI (match_operand:SI 1 "nonimmediate_operand" "") |
- (match_operand:SI 2 "general_operand" "")))] |
+ (match_operand:SI 2 "x86_64_general_operand" "")))] |
"" |
"ix86_expand_binary_operator (XOR, SImode, operands); DONE;") |
(define_insn "*xorsi_1" |
[(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") |
(xor:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0") |
- (match_operand:SI 2 "general_operand" "ri,rm"))) |
+ (match_operand:SI 2 "x86_64_general_operand" "ri,rm"))) |
(clobber (reg:CC FLAGS_REG))] |
"ix86_binary_operator_ok (XOR, SImode, operands)" |
"xor{l}\t{%2, %0|%0, %2}" |
@@ -10438,7 +10438,7 @@ |
[(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI |
(xor:SI (match_operand:SI 1 "nonimmediate_operand" "%0") |
- (match_operand:SI 2 "general_operand" "g")))) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")))) |
(clobber (reg:CC FLAGS_REG))] |
"TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)" |
"xor{l}\t{%2, %k0|%k0, %2}" |
@@ -10458,7 +10458,7 @@ |
(define_insn "*xorsi_2" |
[(set (reg FLAGS_REG) |
(compare (xor:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0") |
- (match_operand:SI 2 "general_operand" "g,ri")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g,ri")) |
(const_int 0))) |
(set (match_operand:SI 0 "nonimmediate_operand" "=r,rm") |
(xor:SI (match_dup 1) (match_dup 2)))] |
@@ -10473,7 +10473,7 @@ |
(define_insn "*xorsi_2_zext" |
[(set (reg FLAGS_REG) |
(compare (xor:SI (match_operand:SI 1 "nonimmediate_operand" "%0") |
- (match_operand:SI 2 "general_operand" "g")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")) |
(const_int 0))) |
(set (match_operand:DI 0 "register_operand" "=r") |
(zero_extend:DI (xor:SI (match_dup 1) (match_dup 2))))] |
@@ -10499,7 +10499,7 @@ |
(define_insn "*xorsi_3" |
[(set (reg FLAGS_REG) |
(compare (xor:SI (match_operand:SI 1 "nonimmediate_operand" "%0") |
- (match_operand:SI 2 "general_operand" "g")) |
+ (match_operand:SI 2 "x86_64_general_operand" "g")) |
(const_int 0))) |
(clobber (match_scratch:SI 0 "=r"))] |
"ix86_match_ccmode (insn, CCNOmode) |
@@ -15342,7 +15342,7 @@ |
operands[0] = expand_simple_binop (Pmode, code, op0, op1, NULL_RTX, 0, |
OPTAB_DIRECT); |
} |
- |
+ |
/* For NativeClient, force address into register and wrap it into UNSPEC. */ |
if (TARGET_NACL) |
{ |
@@ -15633,7 +15633,7 @@ |
/* In order to give reg-stack an easier job in validating two |
coprocessor registers as containing a possible return value, |
simply pretend the untyped call returns a complex long double |
- value. |
+ value. |
We can't use SSE_REGPARM_MAX here since callee is unprototyped |
and should have the default ABI. */ |
@@ -20558,8 +20558,8 @@ |
(define_expand "movsicc" |
[(set (match_operand:SI 0 "register_operand" "") |
(if_then_else:SI (match_operand 1 "comparison_operator" "") |
- (match_operand:SI 2 "general_operand" "") |
- (match_operand:SI 3 "general_operand" "")))] |
+ (match_operand:SI 2 "x86_64_general_operand" "") |
+ (match_operand:SI 3 "x86_64_general_operand" "")))] |
"" |
"if (ix86_expand_int_movcc (operands)) DONE; else FAIL;") |
@@ -21613,7 +21613,7 @@ |
[(match_dup 0) |
(match_operand 2 "memory_operand" "")]))] |
"REGNO (operands[0]) != REGNO (operands[1]) |
- && ((MMX_REG_P (operands[0]) && MMX_REG_P (operands[1])) |
+ && ((MMX_REG_P (operands[0]) && MMX_REG_P (operands[1])) |
|| (SSE_REG_P (operands[0]) && SSE_REG_P (operands[1])))" |
[(set (match_dup 0) (match_dup 2)) |
(set (match_dup 0) |