mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 21:32:39 +00:00
Generate the correct cast opcode for constant expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32461 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
15f46d6c28
commit
b0e9f722da
@ -761,8 +761,23 @@ void CppWriter::printConstant(const Constant *CV) {
|
||||
} else if (CE->isCast()) {
|
||||
printConstant(CE->getOperand(0));
|
||||
Out << "Constant* " << constName << " = ConstantExpr::getCast(";
|
||||
Out << getCppName(CE->getOperand(0)) << ", " << getCppName(CE->getType())
|
||||
<< ");";
|
||||
switch (CE->getOpcode()) {
|
||||
default: assert(0 && "Invalid cast opcode");
|
||||
case Instruction::Trunc: Out << "Instruction::Trunc"; break;
|
||||
case Instruction::ZExt: Out << "Instruction::ZExt"; break;
|
||||
case Instruction::SExt: Out << "Instruction::SExt"; break;
|
||||
case Instruction::FPTrunc: Out << "Instruction::FPTrunc"; break;
|
||||
case Instruction::FPExt: Out << "Instruction::FPExt"; break;
|
||||
case Instruction::FPToUI: Out << "Instruction::FPToUI"; break;
|
||||
case Instruction::FPToSI: Out << "Instruction::FPToSI"; break;
|
||||
case Instruction::UIToFP: Out << "Instruction::UIToFP"; break;
|
||||
case Instruction::SIToFP: Out << "Instruction::SIToFP"; break;
|
||||
case Instruction::PtrToInt: Out << "Instruction::PtrToInt"; break;
|
||||
case Instruction::IntToPtr: Out << "Instruction::IntToPtr"; break;
|
||||
case Instruction::BitCast: Out << "Instruction::BitCast"; break;
|
||||
}
|
||||
Out << ", " << getCppName(CE->getOperand(0)) << ", "
|
||||
<< getCppName(CE->getType()) << ");";
|
||||
} else {
|
||||
unsigned N = CE->getNumOperands();
|
||||
for (unsigned i = 0; i < N; ++i ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user