mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-08 11:37:03 +00:00
This code doesn't modify the LLVM structure, keep stuff const
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7343 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1d598fa25a
commit
6856d11231
@ -571,7 +571,7 @@ int64_t SparcV9CodeEmitter::getMachineOpValue(MachineInstr &MI,
|
|||||||
// Duplicate code of the above case for VirtualRegister, BasicBlock...
|
// Duplicate code of the above case for VirtualRegister, BasicBlock...
|
||||||
// It should really hit this case, but Sparc backend uses VRegs instead
|
// It should really hit this case, but Sparc backend uses VRegs instead
|
||||||
DEBUG(std::cerr << "Saving reference to MBB\n");
|
DEBUG(std::cerr << "Saving reference to MBB\n");
|
||||||
BasicBlock *BB = MO.getMachineBasicBlock()->getBasicBlock();
|
const BasicBlock *BB = MO.getMachineBasicBlock()->getBasicBlock();
|
||||||
unsigned* CurrPC = (unsigned*)(intptr_t)MCE.getCurrentPCValue();
|
unsigned* CurrPC = (unsigned*)(intptr_t)MCE.getCurrentPCValue();
|
||||||
BBRefs.push_back(std::make_pair(BB, std::make_pair(CurrPC, &MI)));
|
BBRefs.push_back(std::make_pair(BB, std::make_pair(CurrPC, &MI)));
|
||||||
} else if (MO.isExternalSymbol()) {
|
} else if (MO.isExternalSymbol()) {
|
||||||
|
@ -18,13 +18,13 @@ class MachineOperand;
|
|||||||
class SparcV9CodeEmitter : public MachineFunctionPass {
|
class SparcV9CodeEmitter : public MachineFunctionPass {
|
||||||
TargetMachine &TM;
|
TargetMachine &TM;
|
||||||
MachineCodeEmitter &MCE;
|
MachineCodeEmitter &MCE;
|
||||||
BasicBlock *currBB;
|
const BasicBlock *currBB;
|
||||||
|
|
||||||
// Tracks which instruction references which BasicBlock
|
// Tracks which instruction references which BasicBlock
|
||||||
std::vector<std::pair<BasicBlock*,
|
std::vector<std::pair<const BasicBlock*,
|
||||||
std::pair<unsigned*,MachineInstr*> > > BBRefs;
|
std::pair<unsigned*,MachineInstr*> > > BBRefs;
|
||||||
// Tracks where each BasicBlock starts
|
// Tracks where each BasicBlock starts
|
||||||
std::map<BasicBlock*, long> BBLocations;
|
std::map<const BasicBlock*, long> BBLocations;
|
||||||
|
|
||||||
// Tracks locations of Constants which are laid out in memory (e.g. FP)
|
// Tracks locations of Constants which are laid out in memory (e.g. FP)
|
||||||
// But we also need to map Constants to ConstantPool indices
|
// But we also need to map Constants to ConstantPool indices
|
||||||
|
@ -133,8 +133,8 @@ void InsertPrologEpilogCode::InsertEpilogCode(MachineFunction &MF)
|
|||||||
|
|
||||||
for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I) {
|
for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I) {
|
||||||
MachineBasicBlock &MBB = *I;
|
MachineBasicBlock &MBB = *I;
|
||||||
BasicBlock &BB = *I->getBasicBlock();
|
const BasicBlock &BB = *I->getBasicBlock();
|
||||||
Instruction *TermInst = (Instruction*)BB.getTerminator();
|
const Instruction *TermInst = (Instruction*)BB.getTerminator();
|
||||||
if (TermInst->getOpcode() == Instruction::Ret)
|
if (TermInst->getOpcode() == Instruction::Ret)
|
||||||
{
|
{
|
||||||
int ZR = TM.getRegInfo().getZeroRegNum();
|
int ZR = TM.getRegInfo().getZeroRegNum();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user