heiher wrote: > I have a C test case: > > ```c > unsigned long > test (unsigned long x, unsigned long y) > { > register unsigned long ra asm ("ra"); > asm("" : "+r"(ra)); > > unsigned long t = ra; > asm ("csrxchg %0, %1, 0" : "+r" (x) : "r" (t)); > > return x; > } > ``` > > clang-20.1.4 errors out: > > ``` > t.c:8:8: error: must not be $r0 or $r1 > 8 | asm ("csrxchg %0, %1, 0" : "+r" (x) : "r" (t)); > | ^ > <inline asm>:1:16: note: instantiated into assembly here > 1 | csrxchg $a0, $ra, 0 > | ^ > 1 error generated. > ``` > > And I suppose it should work after this PR and changing the second `"r"` to > `"q"`.
Good idea! https://github.com/llvm/llvm-project/pull/141037 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits