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!

llvm-svn: 20939
This commit is contained in:
Nate Begeman 2005-03-30 01:45:43 +00:00
parent 695b407b6c
commit ec87399dac
2 changed files with 13 additions and 1 deletions

View File

@ -47,6 +47,10 @@ namespace {
addRegisterClass(MVT::f32, 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();
}
@ -372,6 +376,7 @@ LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList,
std::pair<SDOperand, SDOperand> PPC32TargetLowering::
LowerFrameReturnAddress(bool isFrameAddress, SDOperand Chain, unsigned Depth,
SelectionDAG &DAG) {
assert(0 && "LowerFrameReturnAddress unimplemented");
abort();
}
@ -1072,6 +1077,7 @@ unsigned ISel::SelectExpr(SDOperand N) {
case ISD::FP_TO_UINT:
case ISD::FP_TO_SINT:
assert(0 && "FP_TO_S/UINT unimplemented");
abort();
case ISD::SETCC:

View File

@ -349,7 +349,13 @@ void PowerPCAsmPrinter::printOp(const MachineOperand &MO, bool IsCallOp) {
return;
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;
case MachineOperand::MO_GlobalAddress: {