[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaISelLowering.cpp AlphaTargetAsmInfo.cpp AlphaTargetMachine.cpp
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Sun Sep 24 12:47:10 PDT 2006
Changes in directory llvm/lib/Target/Alpha:
AlphaISelLowering.cpp updated: 1.61 -> 1.62
AlphaTargetAsmInfo.cpp updated: 1.1 -> 1.2
AlphaTargetMachine.cpp updated: 1.32 -> 1.33
---
Log message:
Fix jump tables to match gcc (and the ABI and whatnot)
---
Diffs of the changes: (+7 -0)
AlphaISelLowering.cpp | 4 ++++
AlphaTargetAsmInfo.cpp | 2 ++
AlphaTargetMachine.cpp | 1 +
3 files changed, 7 insertions(+)
Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp
diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.61 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.62
--- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.61 Mon Sep 18 13:01:03 2006
+++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Sun Sep 24 14:46:56 2006
@@ -129,6 +129,8 @@
setOperationAction(ISD::RET, MVT::Other, Custom);
setOperationAction(ISD::JumpTable, MVT::i64, Custom);
+ setOperationAction(ISD::JumpTable, MVT::i32, Custom);
+ setOperationAction(ISD::JumpTableRelocBase, MVT::i64, Custom);
setStackPointerRegisterToSaveRestore(Alpha::R30);
@@ -412,6 +414,8 @@
GP, RA);
case ISD::RET: return LowerRET(Op,DAG, getVRegRA());
case ISD::JumpTable: return LowerJumpTable(Op, DAG);
+ case ISD::JumpTableRelocBase:
+ return DAG.getNode(AlphaISD::GlobalBaseReg, MVT::i64);
case ISD::SINT_TO_FP: {
assert(MVT::i64 == Op.getOperand(0).getValueType() &&
Index: llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp
diff -u llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp:1.1 llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp:1.2
--- llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp:1.1 Thu Sep 7 17:05:02 2006
+++ llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp Sun Sep 24 14:46:56 2006
@@ -18,4 +18,6 @@
AlphaTargetAsmInfo::AlphaTargetAsmInfo(const AlphaTargetMachine &TM) {
AlignmentIsInBytes = false;
PrivateGlobalPrefix = "$";
+ JumpTableDirective = ".gprel32";
+ JumpTableTextSection = "\t.section .rodata\n";
}
Index: llvm/lib/Target/Alpha/AlphaTargetMachine.cpp
diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.32 llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.33
--- llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.32 Mon Sep 18 14:44:29 2006
+++ llvm/lib/Target/Alpha/AlphaTargetMachine.cpp Sun Sep 24 14:46:56 2006
@@ -59,6 +59,7 @@
FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0),
JITInfo(*this),
Subtarget(M, FS) {
+ setRelocationModel(Reloc::PIC_);
}
More information about the llvm-commits
mailing list