mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-12 06:06:32 +00:00
On 64-bit targets like ppc64, we should use .quad to output pointer directives,
not .long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29157 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ba4733d901
commit
0c4e6789da
@ -217,12 +217,20 @@ void AsmPrinter::EmitJumpTableInfo(MachineJumpTableInfo *MJTI) {
|
||||
|
||||
SwitchToDataSection(JumpTableSection, 0);
|
||||
EmitAlignment(Log2_32(TD->getPointerAlignment()));
|
||||
|
||||
// Pick the directive to use based on the pointer size. FIXME: when we support
|
||||
// PIC jumptables, this should always use the 32-bit directive for label
|
||||
// differences.
|
||||
const char *PtrDataDirective = Data32bitsDirective;
|
||||
if (TD->getPointerSize() == 8)
|
||||
PtrDataDirective = Data64bitsDirective;
|
||||
|
||||
for (unsigned i = 0, e = JT.size(); i != e; ++i) {
|
||||
O << PrivateGlobalPrefix << "JTI" << getFunctionNumber() << '_' << i
|
||||
<< ":\n";
|
||||
const std::vector<MachineBasicBlock*> &JTBBs = JT[i].MBBs;
|
||||
for (unsigned ii = 0, ee = JTBBs.size(); ii != ee; ++ii) {
|
||||
O << Data32bitsDirective << ' ';
|
||||
O << PtrDataDirective << ' ';
|
||||
printBasicBlockLabel(JTBBs[ii]);
|
||||
O << '\n';
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user