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

Reply via email to