Home | History | Annotate | Download | only in Basic

Lines Matching refs:Constraint

980               // `m', this constraint can be used in asm statements that
1009 std::string convertConstraint(const char *&Constraint) const override {
1011 switch (*Constraint) {
1014 // Two-character constraint; add "^" hint for later parsing.
1015 R = std::string("^") + std::string(Constraint, 2);
1016 Constraint++;
1019 return TargetInfo::convertConstraint(Constraint);
2382 bool validateOutputSize(StringRef Constraint, unsigned Size) const override;
2384 bool validateInputSize(StringRef Constraint, unsigned Size) const override;
2386 virtual bool validateOperandSize(StringRef Constraint, unsigned Size) const;
2388 std::string convertConstraint(const char *&Constraint) const override;
3509 // Shift the pointer to the second character of the constraint.
3522 // Constraint 'f' cannot be used for output operands.
3552 bool X86TargetInfo::validateOutputSize(StringRef Constraint,
3554 // Strip off constraint modifiers.
3555 while (Constraint[0] == '=' ||
3556 Constraint[0] == '+' ||
3557 Constraint[0] == '&')
3558 Constraint = Constraint.substr(1);
3560 return validateOperandSize(Constraint, Size);
3563 bool X86TargetInfo::validateInputSize(StringRef Constraint,
3565 return validateOperandSize(Constraint, Size);
3568 bool X86TargetInfo::validateOperandSize(StringRef Constraint,
3570 switch (Constraint[0]) {
3588 switch (Constraint[1]) {
3609 X86TargetInfo::convertConstraint(const char *&Constraint) const {
3610 switch (*Constraint) {
3624 return std::string(1, *Constraint);
3661 bool validateOperandSize(StringRef Constraint,
3663 switch (Constraint[0]) {
3679 return X86TargetInfo::validateOperandSize(Constraint, Size);
4929 std::string convertConstraint(const char *&Constraint) const override {
4931 switch (*Constraint) {
4932 case 'U': // Two-character constraint; add "^" hint for later parsing.
4933 R = std::string("^") + std::string(Constraint, 2);
4934 Constraint++;
4940 return std::string(1, *Constraint);
4945 validateConstraintModifier(StringRef Constraint, char Modifier, unsigned Size,
4947 bool isOutput = (Constraint[0] == '=');
4948 bool isInOut = (Constraint[0] == '+');
4950 // Strip off constraint modifiers.
4951 while (Constraint[0] == '=' ||
4952 Constraint[0] == '+' ||
4953 Constraint[0] == '&')
4954 Constraint = Constraint.substr(1);
4956 switch (Constraint[0]) {
5477 validateConstraintModifier(StringRef Constraint, char Modifier, unsigned Size,
5479 // Strip off constraint modifiers.
5480 while (Constraint[0] == '=' || Constraint[0] == '+' || Constraint[0] == '&')
5481 Constraint = Constraint.substr(1);
5483 switch (Constraint[0]) {
5495 // By default an 'r' constraint will be in the 'x'
6669 std::string convertConstraint(const char *&Constraint) const override {
6671 switch (*Constraint) {
6672 case 'Z': // Two-character constraint; add "^" hint for later parsing.
6673 if (Constraint[1] == 'C') {
6674 R = std::string("^") + std::string(Constraint, 2);
6675 Constraint++;
6680 return TargetInfo::convertConstraint(Constraint);