[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 26/30] RISC-V: Remove unnecessary disassemble
From: |
Alistair Francis |
Subject: |
Re: [Qemu-devel] [PATCH v1 26/30] RISC-V: Remove unnecessary disassembler constraints |
Date: |
Thu, 24 May 2018 15:45:57 -0700 |
On Tue, May 22, 2018 at 5:15 PM, Michael Clark <address@hidden> wrote:
> Remove machine generated constraints that are not
> referenced by the pseudo-instruction constraints.
>
> Cc: Palmer Dabbelt <address@hidden>
> Cc: Sagar Karandikar <address@hidden>
> Cc: Bastian Koppelmann <address@hidden>
> Cc: Alistair Francis <address@hidden>
> Signed-off-by: Michael Clark <address@hidden>
Acked-by: Alistair Francis <address@hidden>
Alistair
> ---
> disas/riscv.c | 138
> ----------------------------------------------------------
> 1 file changed, 138 deletions(-)
>
> diff --git a/disas/riscv.c b/disas/riscv.c
> index 7fd1019623ee..27546dd7902c 100644
> --- a/disas/riscv.c
> +++ b/disas/riscv.c
> @@ -87,33 +87,10 @@ typedef enum {
>
> typedef enum {
> rvc_end,
> - rvc_simm_6,
> - rvc_imm_6,
> - rvc_imm_7,
> - rvc_imm_8,
> - rvc_imm_9,
> - rvc_imm_10,
> - rvc_imm_12,
> - rvc_imm_18,
> - rvc_imm_nz,
> - rvc_imm_x2,
> - rvc_imm_x4,
> - rvc_imm_x8,
> - rvc_imm_x16,
> - rvc_rd_b3,
> - rvc_rs1_b3,
> - rvc_rs2_b3,
> - rvc_rd_eq_rs1,
> rvc_rd_eq_ra,
> - rvc_rd_eq_sp,
> rvc_rd_eq_x0,
> - rvc_rs1_eq_sp,
> rvc_rs1_eq_x0,
> rvc_rs2_eq_x0,
> - rvc_rd_ne_x0_x2,
> - rvc_rd_ne_x0,
> - rvc_rs1_ne_x0,
> - rvc_rs2_ne_x0,
> rvc_rs2_eq_rs1,
> rvc_rs1_eq_ra,
> rvc_imm_eq_zero,
> @@ -2522,111 +2499,16 @@ static bool check_constraints(rv_decode *dec, const
> rvc_constraint *c)
> uint8_t rd = dec->rd, rs1 = dec->rs1, rs2 = dec->rs2;
> while (*c != rvc_end) {
> switch (*c) {
> - case rvc_simm_6:
> - if (!(imm >= -32 && imm < 32)) {
> - return false;
> - }
> - break;
> - case rvc_imm_6:
> - if (!(imm <= 63)) {
> - return false;
> - }
> - break;
> - case rvc_imm_7:
> - if (!(imm <= 127)) {
> - return false;
> - }
> - break;
> - case rvc_imm_8:
> - if (!(imm <= 255)) {
> - return false;
> - }
> - break;
> - case rvc_imm_9:
> - if (!(imm <= 511)) {
> - return false;
> - }
> - break;
> - case rvc_imm_10:
> - if (!(imm <= 1023)) {
> - return false;
> - }
> - break;
> - case rvc_imm_12:
> - if (!(imm <= 4095)) {
> - return false;
> - }
> - break;
> - case rvc_imm_18:
> - if (!(imm <= 262143)) {
> - return false;
> - }
> - break;
> - case rvc_imm_nz:
> - if (!(imm != 0)) {
> - return false;
> - }
> - break;
> - case rvc_imm_x2:
> - if (!((imm & 0b1) == 0)) {
> - return false;
> - }
> - break;
> - case rvc_imm_x4:
> - if (!((imm & 0b11) == 0)) {
> - return false;
> - }
> - break;
> - case rvc_imm_x8:
> - if (!((imm & 0b111) == 0)) {
> - return false;
> - }
> - break;
> - case rvc_imm_x16:
> - if (!((imm & 0b1111) == 0)) {
> - return false;
> - }
> - break;
> - case rvc_rd_b3:
> - if (!(rd >= 8 && rd <= 15)) {
> - return false;
> - }
> - break;
> - case rvc_rs1_b3:
> - if (!(rs1 >= 8 && rs1 <= 15)) {
> - return false;
> - }
> - break;
> - case rvc_rs2_b3:
> - if (!(rs2 >= 8 && rs2 <= 15)) {
> - return false;
> - }
> - break;
> - case rvc_rd_eq_rs1:
> - if (!(rd == rs1)) {
> - return false;
> - }
> - break;
> case rvc_rd_eq_ra:
> if (!(rd == 1)) {
> return false;
> }
> break;
> - case rvc_rd_eq_sp:
> - if (!(rd == 2)) {
> - return false;
> - }
> - break;
> case rvc_rd_eq_x0:
> if (!(rd == 0)) {
> return false;
> }
> break;
> - case rvc_rs1_eq_sp:
> - if (!(rs1 == 2)) {
> - return false;
> - }
> - break;
> case rvc_rs1_eq_x0:
> if (!(rs1 == 0)) {
> return false;
> @@ -2637,26 +2519,6 @@ static bool check_constraints(rv_decode *dec, const
> rvc_constraint *c)
> return false;
> }
> break;
> - case rvc_rd_ne_x0_x2:
> - if (!(rd != 0 && rd != 2)) {
> - return false;
> - }
> - break;
> - case rvc_rd_ne_x0:
> - if (!(rd != 0)) {
> - return false;
> - }
> - break;
> - case rvc_rs1_ne_x0:
> - if (!(rs1 != 0)) {
> - return false;
> - }
> - break;
> - case rvc_rs2_ne_x0:
> - if (!(rs2 != 0)) {
> - return false;
> - }
> - break;
> case rvc_rs2_eq_rs1:
> if (!(rs2 == rs1)) {
> return false;
> --
> 2.7.0
>
>
- Re: [Qemu-devel] [PATCH v1 18/30] RISC-V: Add missing free for plic_hart_config, (continued)
- [Qemu-devel] [PATCH v1 19/30] RISC-V: Allow interrupt controllers to claim interrupts, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 20/30] RISC-V: Add misa to DisasContext, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 21/30] RISC-V: Add misa.MAFD checks to translate, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 22/30] RISC-V: Add misa runtime write support, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 23/30] RISC-V: Fix CLINT timecmp low 32-bit writes, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 24/30] RISC-V: Fix PLIC pending bitfield reads, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 25/30] RISC-V: Enable second UART on sifive_e and sifive_u, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 26/30] RISC-V: Remove unnecessary disassembler constraints, Michael Clark, 2018/05/22
- Re: [Qemu-devel] [PATCH v1 26/30] RISC-V: Remove unnecessary disassembler constraints,
Alistair Francis <=
- [Qemu-devel] [PATCH v1 27/30] elf: Add RISC-V PSABI ELF header defines, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 28/30] RISC-V: linux-user support for RVE ABI, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 29/30] RISC-V: Don't add NULL bootargs to device-tree, Michael Clark, 2018/05/22
- [Qemu-devel] [PATCH v1 30/30] RISC-V: Support separate firmware and kernel payload, Michael Clark, 2018/05/22