diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-12-12 18:55:37 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-12-12 18:55:37 +0000 |
commit | 2625de35eda2aec28bdec3370a81f533f9721736 (patch) | |
tree | 22670e6097c9233693d5d74826fa3cbc22dbdeca /lib/Target/MSP430/MSP430ISelLowering.h | |
parent | 04ab19cb1486725de7f201dddf596137b112c17e (diff) | |
download | llvm-2625de35eda2aec28bdec3370a81f533f9721736.tar.gz llvm-2625de35eda2aec28bdec3370a81f533f9721736.tar.bz2 llvm-2625de35eda2aec28bdec3370a81f533f9721736.tar.xz |
Implement variable-width shifts.
No testcase yet - it seems we're exposing generic codegen bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91221 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MSP430/MSP430ISelLowering.h')
-rw-r--r-- | lib/Target/MSP430/MSP430ISelLowering.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/Target/MSP430/MSP430ISelLowering.h b/lib/Target/MSP430/MSP430ISelLowering.h index b126d8e431..4921500d39 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.h +++ b/lib/Target/MSP430/MSP430ISelLowering.h @@ -47,7 +47,7 @@ namespace llvm { /// CMP - Compare instruction. CMP, - /// SetCC. Operand 0 is condition code, and operand 1 is the flag + /// SetCC - Operand 0 is condition code, and operand 1 is the flag /// operand produced by a CMP instruction. SETCC, @@ -57,9 +57,12 @@ namespace llvm { /// instruction. BR_CC, - /// SELECT_CC. Operand 0 and operand 1 are selection variable, operand 3 + /// SELECT_CC - Operand 0 and operand 1 are selection variable, operand 3 /// is condition code and operand 4 is flag operand. - SELECT_CC + SELECT_CC, + + /// SHL, SRA, SRL - Non-constant shifts. + SHL, SRA, SRL }; } @@ -99,6 +102,9 @@ namespace llvm { MachineBasicBlock* EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *BB, DenseMap<MachineBasicBlock*, MachineBasicBlock*> *EM) const; + MachineBasicBlock* EmitShiftInstr(MachineInstr *MI, + MachineBasicBlock *BB, + DenseMap<MachineBasicBlock*, MachineBasicBlock*> *EM) const; private: SDValue LowerCCCCallTo(SDValue Chain, SDValue Callee, |