[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v8 04/12] target/rx: RX disassembler
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH RFC v8 04/12] target/rx: RX disassembler |
Date: |
Fri, 3 May 2019 11:37:30 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
On 5/2/19 7:34 AM, Yoshinori Sato wrote:
> +static int32_t li(DisasContext *ctx, int sz)
> +{
> + int32_t addr;
> + bfd_byte buf[4];
> + addr = ctx->addr;
> +
> + switch (sz) {
> + case 1:
> + ctx->addr += 1;
> + ctx->dis->read_memory_func(addr, buf, 1, ctx->dis);
> + return buf[0];
> + case 2:
> + ctx->addr += 2;
> + ctx->dis->read_memory_func(addr, buf, 2, ctx->dis);
> + return buf[1] << 8 | buf[0];
> + case 3:
> + ctx->addr += 3;
> + ctx->dis->read_memory_func(addr, buf, 3, ctx->dis);
> + return buf[2] << 16 | buf[1] << 8 | buf[0];
> + case 0:
> + ctx->addr += 4;
> + ctx->dis->read_memory_func(addr, buf, 4, ctx->dis);
> + return buf[3] << 24 | buf[2] << 16 | buf[1] << 8 | buf[0];
> + default:
> + g_assert_not_reached();
> + }
> +}
These should be computing signed values. This is already correct over in
translate.c. Also, we can make use of some endian-specific unaligned load
functions from <qemu/bswap.h>. So for the 4 cases:
return (int8_t)buf[0];
return ldsw_le_p(buf);
return (int8_t)buf[2] << 16 | buf[1] << 8 | buf[0];
return ldl_le_p(buf);
r~
- Re: [Qemu-devel] [PATCH RFC v8 08/12] hw/char: RX62N serical communication interface (SCI), (continued)
- [Qemu-devel] [PATCH RFC v8 07/12] hw/timer: RX62N internal timer modules, Yoshinori Sato, 2019/05/02
- [Qemu-devel] [PATCH RFC v8 06/12] hw/intc: RX62N interrupt controller (ICUa), Yoshinori Sato, 2019/05/02
- [Qemu-devel] [PATCH RFC v8 04/12] target/rx: RX disassembler, Yoshinori Sato, 2019/05/02
- [Qemu-devel] [PATCH RFC v8 01/12] target/rx: TCG translation, Yoshinori Sato, 2019/05/02
- [Qemu-devel] [PATCH RFC v8 09/12] hw/rx: RX Target hardware definition, Yoshinori Sato, 2019/05/02
- Re: [Qemu-devel] [PATCH RFC v8 00/12] Add RX archtecture support, Alex Bennée, 2019/05/03