aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/PowerPC/PowerPCInstrInfo.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PowerPCInstrInfo.h b/lib/Target/PowerPC/PowerPCInstrInfo.h
index dee7c070c3..89ccdafeea 100644
--- a/lib/Target/PowerPC/PowerPCInstrInfo.h
+++ b/lib/Target/PowerPC/PowerPCInstrInfo.h
@@ -14,8 +14,9 @@
#ifndef POWERPCINSTRUCTIONINFO_H
#define POWERPCINSTRUCTIONINFO_H
-#include "llvm/Target/TargetInstrInfo.h"
+#include "PowerPC.h"
#include "PowerPCRegisterInfo.h"
+#include "llvm/Target/TargetInstrInfo.h"
namespace llvm {
@@ -79,6 +80,18 @@ public:
virtual bool isMoveInstr(const MachineInstr& MI,
unsigned& sourceReg,
unsigned& destReg) const;
+
+ static unsigned invertPPCBranchOpcode(unsigned Opcode) {
+ switch (Opcode) {
+ default: assert(0 && "Unknown PPC32 branch opcode!");
+ case PPC32::BEQ: return PPC32::BNE;
+ case PPC32::BNE: return PPC32::BEQ;
+ case PPC32::BLT: return PPC32::BGE;
+ case PPC32::BGE: return PPC32::BLT;
+ case PPC32::BGT: return PPC32::BLE;
+ case PPC32::BLE: return PPC32::BGT;
+ }
+ }
};
}