mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 06:30:16 +00:00
Avoid SSE instructions in FastIsel when it is not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108091 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c5080ba0c8
commit
75be45cb2e
@ -791,15 +791,15 @@ bool X86FastISel::X86SelectLoad(const Instruction *I) {
|
||||
return false;
|
||||
}
|
||||
|
||||
static unsigned X86ChooseCmpOpcode(EVT VT) {
|
||||
static unsigned X86ChooseCmpOpcode(EVT VT, const X86Subtarget *Subtarget) {
|
||||
switch (VT.getSimpleVT().SimpleTy) {
|
||||
default: return 0;
|
||||
case MVT::i8: return X86::CMP8rr;
|
||||
case MVT::i16: return X86::CMP16rr;
|
||||
case MVT::i32: return X86::CMP32rr;
|
||||
case MVT::i64: return X86::CMP64rr;
|
||||
case MVT::f32: return X86::UCOMISSrr;
|
||||
case MVT::f64: return X86::UCOMISDrr;
|
||||
case MVT::f32: return Subtarget->hasSSE1() ? X86::UCOMISSrr : X86::UCOM_Fpr32;
|
||||
case MVT::f64: return Subtarget->hasSSE2() ? X86::UCOMISDrr : X86::UCOM_Fpr64;
|
||||
}
|
||||
}
|
||||
|
||||
@ -843,7 +843,7 @@ bool X86FastISel::X86FastEmitCompare(const Value *Op0, const Value *Op1,
|
||||
}
|
||||
}
|
||||
|
||||
unsigned CompareOpc = X86ChooseCmpOpcode(VT);
|
||||
unsigned CompareOpc = X86ChooseCmpOpcode(VT, Subtarget);
|
||||
if (CompareOpc == 0) return false;
|
||||
|
||||
unsigned Op1Reg = getRegForValue(Op1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user