aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/Sparc
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-01-23 20:39:46 +0000
committerDuncan Sands <baldrick@free.fr>2008-01-23 20:39:46 +0000
commit082524cde46d15558f6270208e32cea0fe774586 (patch)
treeace2a0ea1f07e07713489624acaf2c0d3904621d /lib/Target/Sparc
parentc43fa6c1eedab4f4004617b7e1fe772f97acac82 (diff)
downloadexternal_llvm-082524cde46d15558f6270208e32cea0fe774586.zip
external_llvm-082524cde46d15558f6270208e32cea0fe774586.tar.gz
external_llvm-082524cde46d15558f6270208e32cea0fe774586.tar.bz2
The last pieces needed for loading arbitrary
precision integers. This won't actually work (and most of the code is dead) unless the new legalization machinery is turned on. While there, I rationalized the handling of i1, and removed some bogus (and unused) sextload patterns. For i1, this could result in microscopically better code for some architectures (not X86). It might also result in worse code if annotating with AssertZExt nodes turns out to be more harmful than helpful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46280 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc')
-rw-r--r--lib/Target/Sparc/SparcISelDAGToDAG.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Target/Sparc/SparcISelDAGToDAG.cpp b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
index df63f20..7c3e2a7 100644
--- a/lib/Target/Sparc/SparcISelDAGToDAG.cpp
+++ b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
@@ -138,7 +138,10 @@ SparcTargetLowering::SparcTargetLowering(TargetMachine &TM)
// Turn FP extload into load/fextend
setLoadXAction(ISD::EXTLOAD, MVT::f32, Expand);
-
+
+ // Sparc doesn't have i1 sign extending load
+ setLoadXAction(ISD::SEXTLOAD, MVT::i1, Promote);
+
// Custom legalize GlobalAddress nodes into LO/HI parts.
setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);