On Fri, Mar 07, 2025 at 09:13:39AM +0800, Bibo Mao wrote:
> Float register name f0 - f31 is not recognized with clang compiler
> with LoongArch64 target, its name should be $f0 - $f31. It is ok
> for both gcc and clang compiler.

Sorry I didn't search the list carefully and sent a similar patch[1].

Apart from preventing the disk tools to be built, this issue affects
several headers used by linux-user emulators as well. IMHO this should
be fixed, too, or my patch could be taken.

Sorry for the inconvenience,
Yao Zi

[1]: https://lore.kernel.org/all/20250314033150.53268-3-zi...@disroot.org/

> Signed-off-by: Bibo Mao <maob...@loongson.cn>
> ---
>  host/include/loongarch64/host/bufferiszero.c.inc | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/host/include/loongarch64/host/bufferiszero.c.inc 
> b/host/include/loongarch64/host/bufferiszero.c.inc
> index 69891eac80..bb2598fdc3 100644
> --- a/host/include/loongarch64/host/bufferiszero.c.inc
> +++ b/host/include/loongarch64/host/bufferiszero.c.inc
> @@ -61,7 +61,8 @@ static bool buffer_is_zero_lsx(const void *buf, size_t len)
>      "2:"
>          : "=&r"(ret), "+r"(p)
>          : "r"(buf), "r"(e), "r"(l)
> -        : "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "fcc0");
> +        : "$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7", "$f8",
> +          "$fcc0");
>  
>      return ret;
>  }
> @@ -119,7 +120,8 @@ static bool buffer_is_zero_lasx(const void *buf, size_t 
> len)
>      "3:"
>          : "=&r"(ret), "+r"(p)
>          : "r"(buf), "r"(e), "r"(l)
> -        : "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "fcc0");
> +        : "$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7", "$f8",
> +          "$fcc0");
>  
>      return ret;
>  }
> 
> base-commit: 661c2e1ab29cd9c4d268ae3f44712e8d421c0e56
> -- 
> 2.39.3

Reply via email to