mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-12 11:03:24 +00:00
Fix external symbol printing in the AsmPrinter. Tell the ISel that we
don't support things like memcpy directly. This allows a handful of the Shootout programs to work, yay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2c5b1d2405
commit
01d05266f9
@ -349,7 +349,13 @@ void PowerPCAsmPrinter::printOp(const MachineOperand &MO, bool IsCallOp) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case MachineOperand::MO_ExternalSymbol:
|
case MachineOperand::MO_ExternalSymbol:
|
||||||
O << MO.getSymbolName();
|
if (IsCallOp) {
|
||||||
|
std::string Name(GlobalPrefix); Name += MO.getSymbolName();
|
||||||
|
FnStubs.insert(Name);
|
||||||
|
O << "L" << Name << "$stub";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
O << GlobalPrefix << MO.getSymbolName();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case MachineOperand::MO_GlobalAddress: {
|
case MachineOperand::MO_GlobalAddress: {
|
||||||
|
@ -47,6 +47,10 @@ namespace {
|
|||||||
addRegisterClass(MVT::f32, PPC32::FPRCRegisterClass);
|
addRegisterClass(MVT::f32, PPC32::FPRCRegisterClass);
|
||||||
addRegisterClass(MVT::f64, PPC32::FPRCRegisterClass);
|
addRegisterClass(MVT::f64, PPC32::FPRCRegisterClass);
|
||||||
|
|
||||||
|
setOperationAction(ISD::MEMMOVE, MVT::Other, Expand);
|
||||||
|
setOperationAction(ISD::MEMSET, MVT::Other, Expand);
|
||||||
|
setOperationAction(ISD::MEMCPY, MVT::Other, Expand);
|
||||||
|
|
||||||
computeRegisterProperties();
|
computeRegisterProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -372,6 +376,7 @@ LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList,
|
|||||||
std::pair<SDOperand, SDOperand> PPC32TargetLowering::
|
std::pair<SDOperand, SDOperand> PPC32TargetLowering::
|
||||||
LowerFrameReturnAddress(bool isFrameAddress, SDOperand Chain, unsigned Depth,
|
LowerFrameReturnAddress(bool isFrameAddress, SDOperand Chain, unsigned Depth,
|
||||||
SelectionDAG &DAG) {
|
SelectionDAG &DAG) {
|
||||||
|
assert(0 && "LowerFrameReturnAddress unimplemented");
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1072,6 +1077,7 @@ unsigned ISel::SelectExpr(SDOperand N) {
|
|||||||
|
|
||||||
case ISD::FP_TO_UINT:
|
case ISD::FP_TO_UINT:
|
||||||
case ISD::FP_TO_SINT:
|
case ISD::FP_TO_SINT:
|
||||||
|
assert(0 && "FP_TO_S/UINT unimplemented");
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
case ISD::SETCC:
|
case ISD::SETCC:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user