qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: Song Gao <gaosong@loongson.cn>, qemu-devel@nongnu.org
Cc: philmd@linaro.org, git@xen0n.name, c@jia.je, maobibo@loongson.cn
Subject: Re: [PATCH 1/1] tcg/loongarch64: Fix tcg_out_mov() Aborted
Date: Mon, 20 Nov 2023 07:59:36 -0800	[thread overview]
Message-ID: <e99f440c-6d95-4e7c-b08e-332897062997@linaro.org> (raw)
In-Reply-To: <20231120065916.374045-1-gaosong@loongson.cn>

On 11/19/23 22:59, Song Gao wrote:
> On LoongArch host,  we got an Aborted from tcg_out_mov().
> 
> qemu-x86_64 configure with '--enable-debug'.
> 
>> (gdb) b /home1/gaosong/code/qemu/tcg/loongarch64/tcg-target.c.inc:312
>> Breakpoint 1 at 0x2576f0: file /home1/gaosong/code/qemu/tcg/loongarch64/tcg-target.c.inc, line 312.
>> (gdb) run hello
> [...]
>> Thread 1 "qemu-x86_64" hit Breakpoint 1, tcg_out_mov (s=0xaaaae91760 <tcg_init_ctx>, type=TCG_TYPE_V128, ret=TCG_REG_V2,
>>      arg=TCG_REG_V0) at /home1/gaosong/code/qemu/tcg/loongarch64/tcg-target.c.inc:312
>> 312           g_assert_not_reached();
>> (gdb) bt
>> #0  tcg_out_mov (s=0xaaaae91760 <tcg_init_ctx>, type=TCG_TYPE_V128, ret=TCG_REG_V2, arg=TCG_REG_V0)
>>      at /home1/gaosong/code/qemu/tcg/loongarch64/tcg-target.c.inc:312
>> #1  0x000000aaaad0fee0 in tcg_reg_alloc_mov (s=0xaaaae91760 <tcg_init_ctx>, op=0xaaaaf67c20) at ../tcg/tcg.c:4632
>> #2  0x000000aaaad142f4 in tcg_gen_code (s=0xaaaae91760 <tcg_init_ctx>, tb=0xffe8030340 <code_gen_buffer+197328>,
>>      pc_start=4346094) at ../tcg/tcg.c:6135
> [...]
>> (gdb) c
>> Continuing.
>> **
>> ERROR:/home1/gaosong/code/qemu/tcg/loongarch64/tcg-target.c.inc:312:tcg_out_mov: code should not be reached
>> Bail out! ERROR:/home1/gaosong/code/qemu/tcg/loongarch64/tcg-target.c.inc:312:tcg_out_mov: code should not be reached
>>
>> Thread 1 "qemu-x86_64" received signal SIGABRT, Aborted.
>> 0x000000fff7b1c390 in raise () from /lib64/libc.so.6
>> (gdb) q
> 
> Signed-off-by: Song Gao <gaosong@loongson.cn>
> ---
>   tcg/loongarch64/tcg-target.c.inc | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.c.inc
> index a588fb3085..5f68040230 100644
> --- a/tcg/loongarch64/tcg-target.c.inc
> +++ b/tcg/loongarch64/tcg-target.c.inc
> @@ -308,6 +308,9 @@ static bool tcg_out_mov(TCGContext *s, TCGType type, TCGReg ret, TCGReg arg)
>            */
>           tcg_out_opc_or(s, ret, arg, TCG_REG_ZERO);
>           break;
> +    case TCG_TYPE_V128:
> +        tcg_out_opc_vaddi_du(s, ret, arg, 0);
> +        break;

Is add with immediate zero really the canonical alias for "vector move"?

There is often some form that is recommended by the architecture, so that it may be 
recognized for register renaming.  Usually it is some form of logic instruction, not 
arithmetic.  I see that LLVM emits "vori.b dst, src, 0" for this case.

Regardless, this patch works to fix the assert so,

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~


  parent reply	other threads:[~2023-11-20 16:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-20  6:59 [PATCH 1/1] tcg/loongarch64: Fix tcg_out_mov() Aborted Song Gao
2023-11-20 12:13 ` [PATCH-for-8.2 " Philippe Mathieu-Daudé
2023-11-20 15:59 ` Richard Henderson [this message]
2023-11-21  1:50   ` [PATCH " gaosong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e99f440c-6d95-4e7c-b08e-332897062997@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=c@jia.je \
    --cc=gaosong@loongson.cn \
    --cc=git@xen0n.name \
    --cc=maobibo@loongson.cn \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).