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 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:
|
||||
/// Pick a safe ordering and emit instructions for each target node in the
|
||||
/// graph.
|
||||
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:
|
||||
SDOperand CopyValueToVirtualRegister(SelectionDAGLowering &SDL,
|
||||
Value *V, unsigned Reg);
|
||||
|
Loading…
Reference in New Issue
Block a user