mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 06:30:16 +00:00
move SETB pseudos into the same place in InstrCompiler.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115686 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
508fc4708b
commit
2c383d8c4d
@ -628,24 +628,7 @@ def CMOVNO64rm : RI<0x41, MRMSrcMem, // if !overflow, GR64 = [mem64]
|
||||
X86_COND_NO, EFLAGS))]>, TB;
|
||||
} // Constraints = "$src1 = $dst"
|
||||
|
||||
|
||||
|
||||
let Uses = [EFLAGS] in {
|
||||
// Use sbb to materialize carry bit.
|
||||
let Defs = [EFLAGS], isCodeGenOnly = 1 in {
|
||||
// FIXME: These are pseudo ops that should be replaced with Pat<> patterns.
|
||||
// However, Pat<> can't replicate the destination reg into the inputs of the
|
||||
// result.
|
||||
// FIXME: Change these to have encoding Pseudo when X86MCCodeEmitter replaces
|
||||
// X86CodeEmitter.
|
||||
def SETB_C8r : I<0x18, MRMInitReg, (outs GR8:$dst), (ins), "",
|
||||
[(set GR8:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>;
|
||||
def SETB_C16r : I<0x19, MRMInitReg, (outs GR16:$dst), (ins), "",
|
||||
[(set GR16:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>,
|
||||
OpSize;
|
||||
def SETB_C32r : I<0x19, MRMInitReg, (outs GR32:$dst), (ins), "",
|
||||
[(set GR32:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>;
|
||||
} // isCodeGenOnly
|
||||
|
||||
def SETEr : I<0x94, MRM0r,
|
||||
(outs GR8 :$dst), (ins),
|
||||
|
@ -158,15 +158,24 @@ def MOV64ri64i32 : Ii32<0xB8, AddRegFrm, (outs GR64:$dst), (ins i64i32imm:$src),
|
||||
"", [(set GR64:$dst, i64immZExt32:$src)]>;
|
||||
|
||||
|
||||
// Use sbb to materialize carry flag into a GPR.
|
||||
// FIXME: This are pseudo ops that should be replaced with Pat<> patterns.
|
||||
// Use sbb to materialize carry bit.
|
||||
let Uses = [EFLAGS], Defs = [EFLAGS], isCodeGenOnly = 1 in {
|
||||
// FIXME: These are pseudo ops that should be replaced with Pat<> patterns.
|
||||
// However, Pat<> can't replicate the destination reg into the inputs of the
|
||||
// result.
|
||||
// FIXME: Change this to have encoding Pseudo when X86MCCodeEmitter replaces
|
||||
// FIXME: Change these to have encoding Pseudo when X86MCCodeEmitter replaces
|
||||
// X86CodeEmitter.
|
||||
let Defs = [EFLAGS], Uses = [EFLAGS], isCodeGenOnly = 1 in
|
||||
def SETB_C8r : I<0x18, MRMInitReg, (outs GR8:$dst), (ins), "",
|
||||
[(set GR8:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>;
|
||||
def SETB_C16r : I<0x19, MRMInitReg, (outs GR16:$dst), (ins), "",
|
||||
[(set GR16:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>,
|
||||
OpSize;
|
||||
def SETB_C32r : I<0x19, MRMInitReg, (outs GR32:$dst), (ins), "",
|
||||
[(set GR32:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>;
|
||||
def SETB_C64r : RI<0x19, MRMInitReg, (outs GR64:$dst), (ins), "",
|
||||
[(set GR64:$dst, (X86setcc_c X86_COND_B, EFLAGS))]>;
|
||||
} // isCodeGenOnly
|
||||
|
||||
|
||||
def : Pat<(i64 (anyext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
|
||||
(SETB_C64r)>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user