Changes in directory llvm/lib/VMCore:
InlineAsm.cpp updated: 1.8 -> 1.9 --- Log message: Parse the %*# constraint modifiers --- Diffs of the changes: (+11 -1) InlineAsm.cpp | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletion(-) Index: llvm/lib/VMCore/InlineAsm.cpp diff -u llvm/lib/VMCore/InlineAsm.cpp:1.8 llvm/lib/VMCore/InlineAsm.cpp:1.9 --- llvm/lib/VMCore/InlineAsm.cpp:1.8 Wed Feb 1 18:23:53 2006 +++ llvm/lib/VMCore/InlineAsm.cpp Thu Feb 23 17:36:53 2006 @@ -51,6 +51,7 @@ isEarlyClobber = false; isIndirectOutput = false; hasMatchingInput = false; + isCommutative = false; // Parse the prefix. if (*I == '~') { @@ -74,12 +75,21 @@ default: DoneWithModifiers = true; break; - case '&': + case '&': // Early clobber. if (Type != isOutput || // Cannot early clobber anything but output. isEarlyClobber) // Reject &&&&&& return true; isEarlyClobber = true; break; + case '%': // Commutative. + if (Type == isClobber || // Cannot commute clobbers. + isCommutative) // Reject %%%%% + return true; + isCommutative = true; + break; + case '#': // Comment. + case '*': // Register preferencing. + return true; // Not supported. } if (!DoneWithModifiers) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits