[llvm-commits] [llvm] r55439 - in /llvm/trunk: include/llvm/CodeGen/FastISel.h lib/CodeGen/SelectionDAG/FastISel.cpp
Owen Anderson
resistor at mac.com
Wed Aug 27 15:30:03 PDT 2008
Author: resistor
Date: Wed Aug 27 17:30:02 2008
New Revision: 55439
URL: http://llvm.org/viewvc/llvm-project?rev=55439&view=rev
Log:
Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel.
Modified:
llvm/trunk/include/llvm/CodeGen/FastISel.h
llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
Modified: llvm/trunk/include/llvm/CodeGen/FastISel.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/FastISel.h?rev=55439&r1=55438&r2=55439&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/FastISel.h (original)
+++ llvm/trunk/include/llvm/CodeGen/FastISel.h Wed Aug 27 17:30:02 2008
@@ -193,6 +193,11 @@
const TargetRegisterClass *RC,
uint64_t Imm);
+ /// FastEmitInst_extractsubreg - Emit a MachineInstr for an extract_subreg
+ /// from a specified index of a superregister.
+ unsigned FastEmitInst_extractsubreg(const TargetRegisterClass *RC,
+ unsigned Op0, uint32_t Idx);
+
private:
unsigned getRegForValue(Value *V,
DenseMap<const Value*, unsigned> &ValueMap);
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp?rev=55439&r1=55438&r2=55439&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp Wed Aug 27 17:30:02 2008
@@ -586,3 +586,14 @@
BuildMI(MBB, II, ResultReg).addImm(Imm);
return ResultReg;
}
+
+unsigned FastISel::FastEmitInst_extractsubreg(const TargetRegisterClass *RC,
+ unsigned Op0, uint32_t Idx) {
+ const TargetRegisterClass* SRC = *(RC->subregclasses_begin()+Idx-1);
+
+ unsigned ResultReg = createResultReg(SRC);
+ const TargetInstrDesc &II = TII.get(TargetInstrInfo::EXTRACT_SUBREG);
+
+ BuildMI(MBB, II, ResultReg).addReg(Op0);
+ return ResultReg;
+}
More information about the llvm-commits
mailing list