mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Add some hooks for selecting memory addresses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26347 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
87bc3bd121
commit
4c12e719c9
@ -49,11 +49,28 @@ public:
|
|||||||
virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF) {}
|
virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF) {}
|
||||||
virtual void InstructionSelectBasicBlock(SelectionDAG &SD) = 0;
|
virtual void InstructionSelectBasicBlock(SelectionDAG &SD) = 0;
|
||||||
|
|
||||||
|
/// SelectInlineAsmMemoryOperand - Select the specified address as a target
|
||||||
|
/// addressing mode, according to the specified constraint code. If this does
|
||||||
|
/// not match or is not implemented, return true. The resultant operands
|
||||||
|
/// (which will appear in the machine instruction) should be added to the
|
||||||
|
/// OutOps vector.
|
||||||
|
virtual bool SelectInlineAsmMemoryOperand(const SDOperand &Op,
|
||||||
|
char ConstraintCode,
|
||||||
|
std::vector<SDOperand> &OutOps,
|
||||||
|
SelectionDAG &DAG) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/// Pick a safe ordering and emit instructions for each target node in the
|
/// Pick a safe ordering and emit instructions for each target node in the
|
||||||
/// graph.
|
/// graph.
|
||||||
void ScheduleAndEmitDAG(SelectionDAG &DAG);
|
void ScheduleAndEmitDAG(SelectionDAG &DAG);
|
||||||
|
|
||||||
|
/// SelectInlineAsmMemoryOperands - Calls to this are automatically generated
|
||||||
|
/// by tblgen. Others should not call it.
|
||||||
|
void SelectInlineAsmMemoryOperands(std::vector<SDOperand> &Ops,
|
||||||
|
SelectionDAG &DAG);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SDOperand CopyValueToVirtualRegister(SelectionDAGLowering &SDL,
|
SDOperand CopyValueToVirtualRegister(SelectionDAGLowering &SDL,
|
||||||
Value *V, unsigned Reg);
|
Value *V, unsigned Reg);
|
||||||
|
Loading…
Reference in New Issue
Block a user