wangleiat wrote: > There're four possible formats to refer a register in inline assembly, > > 1. Numeric name without dollar sign ("f0") > 2. Numeric name with dollar sign ("$f0") > 3. ABI name without dollar sign ("fa0") > 4. ABI name with dollar sign ("$fa0") > > LoongArch GCC accepts 1 and 2 for FPRs before r15-8284[1] and all these > formats after the chagne. But Clang supports only 2 and 4 for FPRs. The > inconsistency has caused compatibility issues, such as QEMU's case[2]. > > This patch follows > [0bbf3dd](https://github.com/llvm/llvm-project/commit/0bbf3ddf5fea86e0eb0726142827e175aadaf53b) > ("[Clang][LoongArch] Add GPR alias handling without `$` prefix") and accepts > FPRs without dollar sign prefixes as well to keep aligned with GCC, avoiding > future compatibility problems. > > Link: > https://gcc.gnu.org/cgit/gcc/commit/?id=d0110185eb78f14a8e485f410bee237c9c71548d > [1] Link: > https://lore.kernel.org/qemu-devel/20250314033150.53268-3-zi...@disroot.org/ > [2]
GCC handles `vr` and `xr` in the same way, but the generated registers are incorrect. For now, it's sufficient to handle only fr. https://github.com/llvm/llvm-project/pull/138391 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits