mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
Add FastISel support for several more binary operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55020 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -50,22 +50,53 @@ protected:
|
||||
|
||||
virtual ~FastISel();
|
||||
|
||||
/// FastEmit_r - This method is called by target-independent code
|
||||
/// to request that an instruction with the given type and opcode
|
||||
/// be emitted.
|
||||
virtual unsigned FastEmit_(MVT::SimpleValueType VT,
|
||||
ISD::NodeType Opcode);
|
||||
|
||||
/// FastEmit_r - This method is called by target-independent code
|
||||
/// to request that an instruction with the given type, opcode, and
|
||||
/// register operand be emitted.
|
||||
///
|
||||
virtual unsigned FastEmit_r(MVT::SimpleValueType VT,
|
||||
ISD::NodeType Opcode, unsigned Op0);
|
||||
|
||||
/// FastEmit_rr - This method is called by target-independent code
|
||||
/// to request that an instruction with the given type, opcode, and
|
||||
/// register operands be emitted.
|
||||
///
|
||||
virtual unsigned FastEmit_rr(MVT::SimpleValueType VT,
|
||||
ISD::NodeType Opcode,
|
||||
unsigned Op0, unsigned Op1);
|
||||
|
||||
/// FastEmitInst_ - Emit a MachineInstr with no operands and a
|
||||
/// result register in the given register class.
|
||||
///
|
||||
unsigned FastEmitInst_(unsigned MachineInstOpcode,
|
||||
const TargetRegisterClass *RC);
|
||||
|
||||
/// FastEmitInst_ - Emit a MachineInstr with one register operand
|
||||
/// and a result register in the given register class.
|
||||
///
|
||||
unsigned FastEmitInst_r(unsigned MachineInstOpcode,
|
||||
const TargetRegisterClass *RC,
|
||||
unsigned Op0);
|
||||
|
||||
/// FastEmitInst_ - Emit a MachineInstr with two register operands
|
||||
/// and a result register in the given register class.
|
||||
///
|
||||
unsigned FastEmitInst_rr(unsigned MachineInstOpcode,
|
||||
const TargetRegisterClass *RC,
|
||||
unsigned Op0, unsigned Op1);
|
||||
|
||||
private:
|
||||
bool SelectBinaryOp(Instruction *I, ISD::NodeType ISDOpcode,
|
||||
DenseMap<const Value*, unsigned> &ValueMap);
|
||||
|
||||
bool SelectGetElementPtr(Instruction *I,
|
||||
DenseMap<const Value*, unsigned> &ValueMap);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user