mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-25 12:50:00 +00:00
"Fix and issue in SparcAsmPrinter where multiple identical .LLGETPCHn symbols could be emitted in the same file (it was uniqued by block number, but not by function number). " Patch by Nathan Keynes!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96495 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0a3f39985b
commit
f3047cdbd4
@ -143,18 +143,19 @@ bool SparcAsmPrinter::printGetPCX(const MachineInstr *MI, unsigned opNum) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned mfNum = MI->getParent()->getParent()->getFunctionNumber();
|
||||||
unsigned bbNum = MI->getParent()->getNumber();
|
unsigned bbNum = MI->getParent()->getNumber();
|
||||||
|
|
||||||
O << '\n' << ".LLGETPCH" << bbNum << ":\n";
|
O << '\n' << ".LLGETPCH" << mfNum << '_' << bbNum << ":\n";
|
||||||
O << "\tcall\t.LLGETPC" << bbNum << '\n' ;
|
O << "\tcall\t.LLGETPC" << mfNum << '_' << bbNum << '\n' ;
|
||||||
|
|
||||||
O << "\t sethi\t"
|
O << "\t sethi\t"
|
||||||
<< "%hi(_GLOBAL_OFFSET_TABLE_+(.-.LLGETPCH" << bbNum << ")), "
|
<< "%hi(_GLOBAL_OFFSET_TABLE_+(.-.LLGETPCH" << mfNum << '_' << bbNum << ")), "
|
||||||
<< operand << '\n' ;
|
<< operand << '\n' ;
|
||||||
|
|
||||||
O << ".LLGETPC" << bbNum << ":\n" ;
|
O << ".LLGETPC" << mfNum << '_' << bbNum << ":\n" ;
|
||||||
O << "\tor\t" << operand
|
O << "\tor\t" << operand
|
||||||
<< ", %lo(_GLOBAL_OFFSET_TABLE_+(.-.LLGETPCH" << bbNum << ")), "
|
<< ", %lo(_GLOBAL_OFFSET_TABLE_+(.-.LLGETPCH" << mfNum << '_' << bbNum << ")), "
|
||||||
<< operand << '\n';
|
<< operand << '\n';
|
||||||
O << "\tadd\t" << operand << ", %o7, " << operand << '\n';
|
O << "\tadd\t" << operand << ", %o7, " << operand << '\n';
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user