Sparc doesn't have sext_inreg
authorChris Lattner <sabre@nondot.org>
Sat, 17 Dec 2005 20:50:42 +0000 (20:50 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 17 Dec 2005 20:50:42 +0000 (20:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24791 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Sparc/SparcISelDAGToDAG.cpp
lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp

index 21943a902d7a3785d9da1ae749f05aada97f09de..a2eb9c7acb9d4f995f7edef74b3cb14ed4b6d0e9 100644 (file)
@@ -60,6 +60,11 @@ SparcV8TargetLowering::SparcV8TargetLowering(TargetMachine &TM)
   addRegisterClass(MVT::i32, V8::IntRegsRegisterClass);
   addRegisterClass(MVT::f32, V8::FPRegsRegisterClass);
   addRegisterClass(MVT::f64, V8::DFPRegsRegisterClass);
+
+  // Sparc doesn't have sext_inreg, replace them with shl/sra
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16  , Expand);
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8   , Expand);
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1   , Expand);
   
   computeRegisterProperties();
 }
index 21943a902d7a3785d9da1ae749f05aada97f09de..a2eb9c7acb9d4f995f7edef74b3cb14ed4b6d0e9 100644 (file)
@@ -60,6 +60,11 @@ SparcV8TargetLowering::SparcV8TargetLowering(TargetMachine &TM)
   addRegisterClass(MVT::i32, V8::IntRegsRegisterClass);
   addRegisterClass(MVT::f32, V8::FPRegsRegisterClass);
   addRegisterClass(MVT::f64, V8::DFPRegsRegisterClass);
+
+  // Sparc doesn't have sext_inreg, replace them with shl/sra
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16  , Expand);
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8   , Expand);
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1   , Expand);
   
   computeRegisterProperties();
 }