Add some methods for inline asm support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25950 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-02-04 02:12:09 +00:00
parent 8666249ad6
commit c991cf58aa

View File

@ -298,7 +298,7 @@ public:
/// New, such that callers of SetBitsAreZero may call CombineTo on them if /// New, such that callers of SetBitsAreZero may call CombineTo on them if
/// desired. /// desired.
bool DemandedBitsAreZero(const SDOperand &Op, uint64_t Mask, SDOperand &Old, bool DemandedBitsAreZero(const SDOperand &Op, uint64_t Mask, SDOperand &Old,
SDOperand &New, SelectionDAG &DAG); SDOperand &New, SelectionDAG &DAG) const;
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// TargetLowering Configuration Methods - These methods should be invoked by // TargetLowering Configuration Methods - These methods should be invoked by
@ -442,13 +442,26 @@ public:
// Inline Asm Support hooks // Inline Asm Support hooks
// //
enum ConstraintType {
C_RegisterClass, // Constraint represents one or more registers.
C_Other, // Something else.
C_Unknown // Unsupported constraint.
// INTEGER, ADDRESS, MEMORY?
};
/// getConstraintType - Given a constraint letter, return the type of
/// constraint it is for this target.
ConstraintType getConstraintType(char ConstraintLetter) const;
/// getRegForInlineAsmConstraint - Given a constraint letter or register /// getRegForInlineAsmConstraint - Given a constraint letter or register
/// name (e.g. "r" or "edx"), return a list of registers that can be used to /// name (e.g. "r" or "edx"), return a list of registers that can be used to
/// satisfy the constraint. If the constraint isn't supported, or isn't a /// satisfy the constraint. This should only be used for physregs and
/// register constraint, return an empty list. /// C_RegisterClass constraints.
virtual std::vector<unsigned> virtual std::vector<unsigned>
getRegForInlineAsmConstraint(const std::string &Constraint) const; getRegForInlineAsmConstraint(const std::string &Constraint) const;
virtual bool isOperandValidForConstraint(SDOperand Op, char ConstraintLetter);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// Scheduler hooks // Scheduler hooks
// //