mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
Remove BRTWOWAY*
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch selector smarter about the code it generates, fixing a case in the readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -48,10 +48,10 @@ FunctionPass *llvm::createPPCBranchSelectionPass() {
|
||||
static unsigned getNumBytesForInstruction(MachineInstr *MI) {
|
||||
switch (MI->getOpcode()) {
|
||||
case PPC::COND_BRANCH:
|
||||
// while this will be 4 most of the time, if we emit 12 it is just a
|
||||
// while this will be 4 most of the time, if we emit 8 it is just a
|
||||
// minor pessimization that saves us from having to worry about
|
||||
// keeping the offsets up to date later when we emit long branch glue.
|
||||
return 12;
|
||||
return 8;
|
||||
case PPC::IMPLICIT_DEF_GPR: // no asm emitted
|
||||
case PPC::IMPLICIT_DEF_F4: // no asm emitted
|
||||
case PPC::IMPLICIT_DEF_F8: // no asm emitted
|
||||
@@ -102,7 +102,6 @@ bool PPCBSel::runOnMachineFunction(MachineFunction &Fn) {
|
||||
// long branch:
|
||||
// bInverseCC $PC+8
|
||||
// b .L_TARGET_MBB
|
||||
// b .L_FALLTHROUGH_MBB
|
||||
for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E;
|
||||
++MFI) {
|
||||
MachineBasicBlock *MBB = MFI;
|
||||
@@ -123,8 +122,6 @@ bool PPCBSel::runOnMachineFunction(MachineFunction &Fn) {
|
||||
// 3. fallthrough MBB
|
||||
MachineBasicBlock *trueMBB =
|
||||
MBBI->getOperand(2).getMachineBasicBlock();
|
||||
MachineBasicBlock *falseMBB =
|
||||
MBBI->getOperand(3).getMachineBasicBlock();
|
||||
|
||||
int Displacement = OffsetMap[trueMBB] - ByteCount;
|
||||
unsigned Opcode = MBBI->getOperand(1).getImmedValue();
|
||||
@@ -136,7 +133,6 @@ bool PPCBSel::runOnMachineFunction(MachineFunction &Fn) {
|
||||
} else {
|
||||
BuildMI(*MBB, MBBJ, Inverted, 2).addReg(CRReg).addSImm(8);
|
||||
BuildMI(*MBB, MBBJ, PPC::B, 1).addMBB(trueMBB);
|
||||
BuildMI(*MBB, MBBJ, PPC::B, 1).addMBB(falseMBB);
|
||||
}
|
||||
|
||||
// Erase the psuedo COND_BRANCH instruction, and then back up the
|
||||
|
||||
Reference in New Issue
Block a user