mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-14 23:48:49 +00:00
ia64 asmprinter fixes:
- turn off assembler's autoalignment - set FunctionAddrPrefix/Suffix so that .data8 entries pointing to functions have their value wrapped in @fptr(), so that a function descriptor will be materialized for that function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21025 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
855a519741
commit
32c46f33b7
@ -142,9 +142,8 @@ bool IA64SharedAsmPrinter::doFinalization(Module &M) {
|
||||
// FALL THROUGH
|
||||
case GlobalValue::InternalLinkage:
|
||||
if (C->isNullValue())
|
||||
SwitchSection(O, CurSection, ".data"); // FIXME: this was
|
||||
// '.bss', but in ia64-land .bss means "nobits" (i.e. uninitialized)
|
||||
// hmm.
|
||||
SwitchSection(O, CurSection, ".bss");
|
||||
// FIXME? in ia64-land .bss means "nobits" (i.e. uninitialized)
|
||||
else
|
||||
SwitchSection(O, CurSection, ".data");
|
||||
break;
|
||||
@ -191,13 +190,18 @@ namespace {
|
||||
: IA64SharedAsmPrinter(O, TM) {
|
||||
|
||||
CommentString = "//";
|
||||
Data8bitsDirective = "\tdata1\t";
|
||||
Data16bitsDirective = "\tdata2\t";
|
||||
Data32bitsDirective = "\tdata4\t";
|
||||
Data64bitsDirective = "\tdata8\t";
|
||||
Data8bitsDirective = "\tdata1\t"; // FIXME: check that we are
|
||||
Data16bitsDirective = "\tdata2.ua\t"; // disabling auto-alignment
|
||||
Data32bitsDirective = "\tdata4.ua\t"; // properly
|
||||
Data64bitsDirective = "\tdata8.ua\t";
|
||||
ZeroDirective = "\t.skip\t";
|
||||
AsciiDirective = "\tstring\t";
|
||||
|
||||
GlobalVarAddrPrefix="";
|
||||
GlobalVarAddrSuffix="";
|
||||
FunctionAddrPrefix="@fptr(";
|
||||
FunctionAddrSuffix=")";
|
||||
|
||||
}
|
||||
|
||||
virtual const char *getPassName() const {
|
||||
|
Loading…
Reference in New Issue
Block a user