mirror of https://github.com/xemu-project/xemu.git
target/riscv: Add infrastructure for 'B' MISA extension
Add the infrastructure for the 'B' extension which is the union of the Zba, Zbb and Zbs instructions. Signed-off-by: Rob Bradford <rbradford@rivosinc.com> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20240111161644.33630-2-rbradford@rivosinc.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
878502e5fe
commit
2317ba9fa7
|
@ -38,9 +38,9 @@
|
||||||
#include "tcg/tcg.h"
|
#include "tcg/tcg.h"
|
||||||
|
|
||||||
/* RISC-V CPU definitions */
|
/* RISC-V CPU definitions */
|
||||||
static const char riscv_single_letter_exts[] = "IEMAFDQCPVH";
|
static const char riscv_single_letter_exts[] = "IEMAFDQCBPVH";
|
||||||
const uint32_t misa_bits[] = {RVI, RVE, RVM, RVA, RVF, RVD, RVV,
|
const uint32_t misa_bits[] = {RVI, RVE, RVM, RVA, RVF, RVD, RVV,
|
||||||
RVC, RVS, RVU, RVH, RVJ, RVG, 0};
|
RVC, RVS, RVU, RVH, RVJ, RVG, RVB, 0};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* From vector_helper.c
|
* From vector_helper.c
|
||||||
|
@ -1304,6 +1304,7 @@ static const MISAExtInfo misa_ext_info_arr[] = {
|
||||||
MISA_EXT_INFO(RVJ, "x-j", "Dynamic translated languages"),
|
MISA_EXT_INFO(RVJ, "x-j", "Dynamic translated languages"),
|
||||||
MISA_EXT_INFO(RVV, "v", "Vector operations"),
|
MISA_EXT_INFO(RVV, "v", "Vector operations"),
|
||||||
MISA_EXT_INFO(RVG, "g", "General purpose (IMAFD_Zicsr_Zifencei)"),
|
MISA_EXT_INFO(RVG, "g", "General purpose (IMAFD_Zicsr_Zifencei)"),
|
||||||
|
MISA_EXT_INFO(RVB, "x-b", "Bit manipulation (Zba_Zbb_Zbs)")
|
||||||
};
|
};
|
||||||
|
|
||||||
static int riscv_validate_misa_info_idx(uint32_t bit)
|
static int riscv_validate_misa_info_idx(uint32_t bit)
|
||||||
|
|
|
@ -69,6 +69,7 @@ typedef struct CPUArchState CPURISCVState;
|
||||||
#define RVH RV('H')
|
#define RVH RV('H')
|
||||||
#define RVJ RV('J')
|
#define RVJ RV('J')
|
||||||
#define RVG RV('G')
|
#define RVG RV('G')
|
||||||
|
#define RVB RV('B')
|
||||||
|
|
||||||
extern const uint32_t misa_bits[];
|
extern const uint32_t misa_bits[];
|
||||||
const char *riscv_get_misa_ext_name(uint32_t bit);
|
const char *riscv_get_misa_ext_name(uint32_t bit);
|
||||||
|
|
|
@ -1056,6 +1056,7 @@ static const RISCVCPUMisaExtConfig misa_ext_cfgs[] = {
|
||||||
MISA_CFG(RVJ, false),
|
MISA_CFG(RVJ, false),
|
||||||
MISA_CFG(RVV, false),
|
MISA_CFG(RVV, false),
|
||||||
MISA_CFG(RVG, false),
|
MISA_CFG(RVG, false),
|
||||||
|
MISA_CFG(RVB, false),
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue