mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-18 11:24:01 +00:00
Finally land the InvokeInst operand reordering.
I have audited all getOperandNo calls now, fixing hidden assumptions. CallSite related uglyness will be eliminated successively. Note this patch has a long and griveous history, for all the back-and-forths have a look at CallSite.h's log. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1875,6 +1875,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
||||
if (PAL.getFnAttributes() != Attribute::None)
|
||||
Out << ' ' << Attribute::getAsString(PAL.getFnAttributes());
|
||||
} else if (const InvokeInst *II = dyn_cast<InvokeInst>(&I)) {
|
||||
Operand = II->getCalledValue();
|
||||
const PointerType *PTy = cast<PointerType>(Operand->getType());
|
||||
const FunctionType *FTy = cast<FunctionType>(PTy->getElementType());
|
||||
const Type *RetTy = FTy->getReturnType();
|
||||
@ -1912,10 +1913,10 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
||||
writeOperand(Operand, true);
|
||||
}
|
||||
Out << '(';
|
||||
for (unsigned op = 3, Eop = I.getNumOperands(); op < Eop; ++op) {
|
||||
if (op > 3)
|
||||
for (unsigned op = 0, Eop = I.getNumOperands() - 3; op < Eop; ++op) {
|
||||
if (op)
|
||||
Out << ", ";
|
||||
writeParamOperand(I.getOperand(op), PAL.getParamAttributes(op-2));
|
||||
writeParamOperand(I.getOperand(op), PAL.getParamAttributes(op + 1));
|
||||
}
|
||||
|
||||
Out << ')';
|
||||
|
Reference in New Issue
Block a user