Author: niravd Date: Sat Feb 16 19:53:23 2019 New Revision: 354211 URL: http://llvm.org/viewvc/llvm-project?rev=354211&view=rev Log: [X86] Prevent clang clobber checking for asm flag constraints.
Update getConstraintRegister as X86 Asm flag output constraints are no longer fully alphanumeric, Modified: cfe/trunk/lib/Basic/Targets/X86.h cfe/trunk/test/CodeGen/inline-asm-x86-flag-output.c Modified: cfe/trunk/lib/Basic/Targets/X86.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/X86.h?rev=354211&r1=354210&r2=354211&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/X86.h (original) +++ cfe/trunk/lib/Basic/Targets/X86.h Sat Feb 16 19:53:23 2019 @@ -198,7 +198,7 @@ public: StringRef Expression) const override { StringRef::iterator I, E; for (I = Constraint.begin(), E = Constraint.end(); I != E; ++I) { - if (isalpha(*I)) + if (isalpha(*I) || *I == '@') break; } if (I == E) Modified: cfe/trunk/test/CodeGen/inline-asm-x86-flag-output.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/inline-asm-x86-flag-output.c?rev=354211&r1=354210&r2=354211&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/inline-asm-x86-flag-output.c (original) +++ cfe/trunk/test/CodeGen/inline-asm-x86-flag-output.c Sat Feb 16 19:53:23 2019 @@ -363,3 +363,14 @@ int test_ccs(long nr, volatile long *add return 0; return 1; } + +_Bool check_no_clobber_conflicts() { + //CHECK-LABEL: @check_no_clobber_conflicts + //CHECK: = tail call i8 asm "", "={@cce},~{cx},~{dirflag},~{fpsr},~{flags}"() + _Bool b; + asm("" + : "=@cce"(b) + : + : "cx"); + return b; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits