// constraint codes for all targets.
Constraint_Unknown = 0,
Constraint_m,
- Constraint_o,
- Constraint_v,
+ Constraint_o, // Unused at the moment since Constraint_m is always used.
+ Constraint_v, // Unused at the moment since Constraint_m is always used.
Constraints_Max = Constraint_v,
Constraints_ShiftAmount = 16,
SDValue Inp = Op, Res;
switch (ConstraintID) {
+ case InlineAsm::Constraint_o: // Offsetable.
+ case InlineAsm::Constraint_v: // Not offsetable.
default:
return true;
- case InlineAsm::Constraint_o: // Offsetable.
- case InlineAsm::Constraint_v: // Not offsetable.
- case InlineAsm::Constraint_m: // Memory.
+ case InlineAsm::Constraint_m: // Memory.
if (SelectAddrFI(Inp, Res))
OutOps.push_back(Res);
else
unsigned getInlineAsmMemConstraint(
const std::string &ConstraintCode) const override {
- if (ConstraintCode == "o")
- return InlineAsm::Constraint_o;
- else if (ConstraintCode == "v")
- return InlineAsm::Constraint_v;
- return TargetLowering::getInlineAsmMemConstraint(ConstraintCode);
+ // FIXME: Map different constraints differently.
+ return InlineAsm::Constraint_m;
}
// Intrinsics