Here is the endian-mess. QEMU has:

static bool trans_lhu(DisasContext *ctx, arg_lhu *a)
{
    return gen_load(ctx, a, MO_TEUW);
}

and

static bool trans_c_lhu(DisasContext *ctx, arg_c_lhu *a) 
{
    REQUIRE_ZCB(ctx);
    return gen_load(ctx, a, MO_UW);
}

MO_TEUW  = MO_TE | MO_UW
MO_UW    = MO_16

For target endianness differing from host endianness: MO_TE = MO_BSWAP.

This cannot be correct. Both the compressed instruction and the non-
compressed instruction should consider the host endianness.


** Changed in: qemu (Ubuntu)
       Status: New => Confirmed

** Changed in: glibc (Ubuntu)
       Status: New => Invalid

** Changed in: gcc-15 (Ubuntu)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2123828

Title:
  unsupported version 256 of Verdef record when running qemu-riscv64 on
  s390x

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-15/+bug/2123828/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to