From ba2bcd867f91da2d370c8863ae397e3b05791dfe Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Tue, 25 Jan 2005 19:58:40 +0000 Subject: [PATCH] problems with bools, and their work arounds llvm-svn: 19833 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp | 2 +- llvm/lib/Target/Alpha/AlphaISelPattern.cpp | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp b/llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp index 922a465457ac..aaa5a5431506 100644 --- a/llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp +++ b/llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp @@ -164,7 +164,7 @@ bool AlphaAsmPrinter::runOnMachineFunction(MachineFunction &MF) { if (CurrentFnName.compare("main") == 0) { - O << "\n\n#HACK\n\t.text\n\t.ent __main\n__main:\n\tret $31,($26),1\n\t.end __main\n#ENDHACK\n\n"; + // O << "\n\n#HACK\n\t.text\n\t.ent __main\n__main:\n\tret $31,($26),1\n\t.end __main\n#ENDHACK\n\n"; } // Print out constants referenced by the function diff --git a/llvm/lib/Target/Alpha/AlphaISelPattern.cpp b/llvm/lib/Target/Alpha/AlphaISelPattern.cpp index b3426a9c69f3..7862aaf1642d 100644 --- a/llvm/lib/Target/Alpha/AlphaISelPattern.cpp +++ b/llvm/lib/Target/Alpha/AlphaISelPattern.cpp @@ -42,8 +42,6 @@ namespace { addRegisterClass(MVT::f64, Alpha::FPRCRegisterClass); setOperationAction(ISD::EXTLOAD , MVT::i1 , Expand); - setOperationAction(ISD::EXTLOAD , MVT::i8 , Expand); - setOperationAction(ISD::EXTLOAD , MVT::i16 , Expand); setOperationAction(ISD::ZEXTLOAD , MVT::i1 , Expand); setOperationAction(ISD::ZEXTLOAD , MVT::i32 , Expand); @@ -319,7 +317,17 @@ unsigned ISel::SelectExpr(SDOperand N) { case MVT::i64: switch (cast(Node)->getExtraValueType()) { default: - assert(0 && "Bad sign extend!"); + std::cerr << cast(Node)->getExtraValueType() + << "(i1 is " << MVT::i1 + << " i8 is " << MVT::i8 + << " i16 is " << MVT::i16 + << " i32 is " << MVT::i32 + << " i64 is " << MVT::i64 + << ")\n"; + assert(0 && "Bad extend load!"); + case MVT::i64: + BuildMI(BB, Alpha::LDQ, 2, Result).addImm(0).addReg(Tmp1); + break; case MVT::i32: BuildMI(BB, Alpha::LDL, 2, Result).addImm(0).addReg(Tmp1); break; @@ -327,6 +335,7 @@ unsigned ISel::SelectExpr(SDOperand N) { BuildMI(BB, Alpha::LDWU, 2, Result).addImm(0).addReg(Tmp1); break; case MVT::i8: + case MVT::i1: //FIXME: DAG does not expand i8?? BuildMI(BB, Alpha::LDBU, 2, Result).addImm(0).addReg(Tmp1); break; } @@ -822,6 +831,7 @@ void ISel::Select(SDOperand N) { switch (StoredTy) { default: assert(0 && "Unhandled Type"); break; + case MVT::i1: //FIXME: DAG does not promote this load case MVT::i8: Opc = Alpha::STB; break; case MVT::i16: Opc = Alpha::STW; break; case MVT::i32: Opc = Alpha::STL; break;