From bfc5637339cb2f046bb5a5aeb864b248340404bc Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Mon, 27 Aug 2018 04:17:17 -0400 Subject: [PATCH] target/mips: Add nanoMIPS decoding and extraction utilities Add some basic utility functions and macros for nanoMIPS decoding engine. Backports commit 6bfa9f4c9cf24d6cfaaa227722e9cdcca1ad6fe9 from qemu --- qemu/target/mips/translate.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qemu/target/mips/translate.c b/qemu/target/mips/translate.c index f86d6990..cdd61f94 100644 --- a/qemu/target/mips/translate.c +++ b/qemu/target/mips/translate.c @@ -16703,6 +16703,17 @@ enum { * */ + +/* extraction utilities */ + +#define NANOMIPS_EXTRACT_RD(op) ((op >> 7) & 0x7) +#define NANOMIPS_EXTRACT_RS(op) ((op >> 4) & 0x7) +#define NANOMIPS_EXTRACT_RS2(op) uMIPS_RS(op) +#define NANOMIPS_EXTRACT_RS1(op) ((op >> 1) & 0x7) +#define NANOMIPS_EXTRACT_RD5(op) ((op >> 5) & 0x1f) +#define NANOMIPS_EXTRACT_RS5(op) (op & 0x1f) + + static int decode_nanomips_opc(CPUMIPSState *env, DisasContext *ctx) { return 2;