From abaa15898f3a06733b6e9abf8bb64b321b6143d5 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 7 Feb 2006 20:16:30 +0000 Subject: [PATCH] Implement getConstraintType for PPC. llvm-svn: 26042 --- lib/Target/PowerPC/PPCISelLowering.cpp | 17 +++++++++++++++++ lib/Target/PowerPC/PPCISelLowering.h | 1 + 2 files changed, 18 insertions(+) diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index 76bcf1e5c36..8e454105a0f 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -980,6 +980,23 @@ PPCTargetLowering::InsertAtEndOfBasicBlock(MachineInstr *MI, return BB; } +/// getConstraintType - Given a constraint letter, return the type of +/// constraint it is for this target. +PPCTargetLowering::ConstraintType +PPCTargetLowering::getConstraintType(char ConstraintLetter) const { + switch (ConstraintLetter) { + default: break; + case 'b': + case 'r': + case 'f': + case 'v': + case 'y': + return C_RegisterClass; + } + return TargetLowering::getConstraintType(ConstraintLetter); +} + + std::vector PPCTargetLowering:: getRegForInlineAsmConstraint(const std::string &Constraint) const { if (Constraint.size() == 1) { diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h index bcf4c6ffe48..681d41a8534 100644 --- a/lib/Target/PowerPC/PPCISelLowering.h +++ b/lib/Target/PowerPC/PPCISelLowering.h @@ -97,6 +97,7 @@ namespace llvm { virtual MachineBasicBlock *InsertAtEndOfBasicBlock(MachineInstr *MI, MachineBasicBlock *MBB); + ConstraintType getConstraintType(char ConstraintLetter) const; std::vector getRegForInlineAsmConstraint(const std::string &Constraint) const; bool isOperandValidForConstraint(SDOperand Op, char ConstraintLetter);