mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-17 18:24:34 +00:00
be layout aware, to produce:
testb $1, %al je LBB0_2 ## BB#1: ## %if.then movb $0, %al instead of: testb $1, %al jne LBB0_1 jmp LBB0_2 LBB0_1: ## %if.then movb $0, %al how 'bout that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129749 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1084,7 +1084,14 @@ bool X86FastISel::X86SelectBranch(const Instruction *I) {
|
|||||||
if (OpReg == 0) return false;
|
if (OpReg == 0) return false;
|
||||||
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(TestOpc))
|
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(TestOpc))
|
||||||
.addReg(OpReg).addImm(1);
|
.addReg(OpReg).addImm(1);
|
||||||
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(X86::JNE_4))
|
|
||||||
|
unsigned JmpOpc = X86::JNE_4;
|
||||||
|
if (FuncInfo.MBB->isLayoutSuccessor(TrueMBB)) {
|
||||||
|
std::swap(TrueMBB, FalseMBB);
|
||||||
|
JmpOpc = X86::JE_4;
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(JmpOpc))
|
||||||
.addMBB(TrueMBB);
|
.addMBB(TrueMBB);
|
||||||
FastEmitBranch(FalseMBB, DL);
|
FastEmitBranch(FalseMBB, DL);
|
||||||
FuncInfo.MBB->addSuccessor(TrueMBB);
|
FuncInfo.MBB->addSuccessor(TrueMBB);
|
||||||
|
@@ -142,5 +142,7 @@ if.end: ; preds = %if.then, %entry
|
|||||||
ret void
|
ret void
|
||||||
; CHECK: test12:
|
; CHECK: test12:
|
||||||
; CHECK: testb $1,
|
; CHECK: testb $1,
|
||||||
|
; CHECK-NEXT: je L
|
||||||
|
; CHECK-NEXT: movb $0, %al
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user