mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 16:17:17 +00:00
1. Tidy up jump table info.
2. Allow the jit to handle PIC relocable jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32581 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
#include "llvm/CodeGen/MachineJumpTableInfo.h"
|
||||
#include "llvm/CodeGen/Passes.h"
|
||||
#include "llvm/Target/TargetData.h"
|
||||
#include "llvm/Target/TargetLowering.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Target/TargetFrameInfo.h"
|
||||
#include "llvm/Function.h"
|
||||
@@ -117,7 +118,14 @@ MachineFunction::MachineFunction(const Function *F,
|
||||
MFInfo = 0;
|
||||
FrameInfo = new MachineFrameInfo();
|
||||
ConstantPool = new MachineConstantPool(TM.getTargetData());
|
||||
JumpTableInfo = new MachineJumpTableInfo(TM.getTargetData());
|
||||
|
||||
// Set up jump table.
|
||||
const TargetData &TD = *TM.getTargetData();
|
||||
bool IsPic = TM.getRelocationModel() == Reloc::PIC_;
|
||||
unsigned EntrySize = IsPic ? 4 : TD.getPointerSize();
|
||||
unsigned Alignment = IsPic ? TD.getIntAlignment() : TD.getPointerAlignment();
|
||||
JumpTableInfo = new MachineJumpTableInfo(EntrySize, Alignment);
|
||||
|
||||
BasicBlocks.Parent = this;
|
||||
}
|
||||
|
||||
@@ -380,14 +388,6 @@ void MachineJumpTableInfo::print(std::ostream &OS) const {
|
||||
}
|
||||
}
|
||||
|
||||
unsigned MachineJumpTableInfo::getEntrySize() const {
|
||||
return TD->getPointerSize();
|
||||
}
|
||||
|
||||
unsigned MachineJumpTableInfo::getAlignment() const {
|
||||
return TD->getPointerAlignment();
|
||||
}
|
||||
|
||||
void MachineJumpTableInfo::dump() const { print(*cerr.stream()); }
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user