mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 23:18:58 +00:00
X86: Fix immediate type of FOO64i32 operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104271 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4072886a69
commit
0306e3ddbf
@ -270,7 +270,7 @@ def PUSH64i8 : Ii8<0x6a, RawFrm, (outs), (ins i8imm:$imm),
|
||||
"push{q}\t$imm", []>;
|
||||
def PUSH64i16 : Ii16<0x68, RawFrm, (outs), (ins i16imm:$imm),
|
||||
"push{q}\t$imm", []>;
|
||||
def PUSH64i32 : Ii32<0x68, RawFrm, (outs), (ins i32imm:$imm),
|
||||
def PUSH64i32 : Ii32<0x68, RawFrm, (outs), (ins i64i32imm:$imm),
|
||||
"push{q}\t$imm", []>;
|
||||
}
|
||||
|
||||
@ -507,7 +507,7 @@ let neverHasSideEffects = 1 in {
|
||||
|
||||
let Defs = [EFLAGS] in {
|
||||
|
||||
def ADD64i32 : RIi32<0x05, RawFrm, (outs), (ins i32imm:$src),
|
||||
def ADD64i32 : RIi32<0x05, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"add{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
let isTwoAddress = 1 in {
|
||||
@ -566,7 +566,7 @@ def ADD64mi32 : RIi32<0x81, MRM0m, (outs), (ins i64mem:$dst, i64i32imm :$src2),
|
||||
|
||||
let Uses = [EFLAGS] in {
|
||||
|
||||
def ADC64i32 : RIi32<0x15, RawFrm, (outs), (ins i32imm:$src),
|
||||
def ADC64i32 : RIi32<0x15, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"adc{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
let isTwoAddress = 1 in {
|
||||
@ -640,7 +640,7 @@ def SUB64ri32 : RIi32<0x81, MRM5r, (outs GR64:$dst),
|
||||
(X86sub_flag GR64:$src1, i64immSExt32:$src2))]>;
|
||||
} // isTwoAddress
|
||||
|
||||
def SUB64i32 : RIi32<0x2D, RawFrm, (outs), (ins i32imm:$src),
|
||||
def SUB64i32 : RIi32<0x2D, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"sub{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
// Memory-Register Subtraction
|
||||
@ -687,7 +687,7 @@ def SBB64ri32 : RIi32<0x81, MRM3r, (outs GR64:$dst),
|
||||
[(set GR64:$dst, (sube GR64:$src1, i64immSExt32:$src2))]>;
|
||||
} // isTwoAddress
|
||||
|
||||
def SBB64i32 : RIi32<0x1D, RawFrm, (outs), (ins i32imm:$src),
|
||||
def SBB64i32 : RIi32<0x1D, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"sbb{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
def SBB64mr : RI<0x19, MRMDestMem, (outs), (ins i64mem:$dst, GR64:$src2),
|
||||
@ -1087,7 +1087,7 @@ def NOT64m : RI<0xF7, MRM2m, (outs), (ins i64mem:$dst), "not{q}\t$dst",
|
||||
[(store (not (loadi64 addr:$dst)), addr:$dst)]>;
|
||||
|
||||
let Defs = [EFLAGS] in {
|
||||
def AND64i32 : RIi32<0x25, RawFrm, (outs), (ins i32imm:$src),
|
||||
def AND64i32 : RIi32<0x25, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"and{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
let isTwoAddress = 1 in {
|
||||
@ -1173,7 +1173,7 @@ def OR64mi32 : RIi32<0x81, MRM1m, (outs), (ins i64mem:$dst, i64i32imm:$src),
|
||||
[(store (or (loadi64 addr:$dst), i64immSExt32:$src), addr:$dst),
|
||||
(implicit EFLAGS)]>;
|
||||
|
||||
def OR64i32 : RIi32<0x0D, RawFrm, (outs), (ins i32imm:$src),
|
||||
def OR64i32 : RIi32<0x0D, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"or{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
let isTwoAddress = 1 in {
|
||||
@ -1216,7 +1216,7 @@ def XOR64mi32 : RIi32<0x81, MRM6m, (outs), (ins i64mem:$dst, i64i32imm:$src),
|
||||
[(store (xor (loadi64 addr:$dst), i64immSExt32:$src), addr:$dst),
|
||||
(implicit EFLAGS)]>;
|
||||
|
||||
def XOR64i32 : RIi32<0x35, RawFrm, (outs), (ins i32imm:$src),
|
||||
def XOR64i32 : RIi32<0x35, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"xor{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
|
||||
} // Defs = [EFLAGS]
|
||||
@ -1227,7 +1227,7 @@ def XOR64i32 : RIi32<0x35, RawFrm, (outs), (ins i32imm:$src),
|
||||
|
||||
// Integer comparison
|
||||
let Defs = [EFLAGS] in {
|
||||
def TEST64i32 : RIi32<0xa9, RawFrm, (outs), (ins i32imm:$src),
|
||||
def TEST64i32 : RIi32<0xa9, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"test{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
let isCommutable = 1 in
|
||||
def TEST64rr : RI<0x85, MRMSrcReg, (outs), (ins GR64:$src1, GR64:$src2),
|
||||
@ -1249,7 +1249,7 @@ def TEST64mi32 : RIi32<0xF7, MRM0m, (outs),
|
||||
i64immSExt32:$src2), 0))]>;
|
||||
|
||||
|
||||
def CMP64i32 : RIi32<0x3D, RawFrm, (outs), (ins i32imm:$src),
|
||||
def CMP64i32 : RIi32<0x3D, RawFrm, (outs), (ins i64i32imm:$src),
|
||||
"cmp{q}\t{$src, %rax|%rax, $src}", []>;
|
||||
def CMP64rr : RI<0x39, MRMDestReg, (outs), (ins GR64:$src1, GR64:$src2),
|
||||
"cmp{q}\t{$src2, $src1|$src1, $src2}",
|
||||
|
Loading…
Reference in New Issue
Block a user