Skip to content

Commit

Permalink
target/xtensa: make opcode properties more dynamic
Browse files Browse the repository at this point in the history
There's XtensaOpcodeOps::test_ill that is used to check whether opcode
generates illegal opcode exception or not. The illegal opcode exception
is not special and so this callback can be generalized to provide any
XTENSA_OP_* flags that are not completely static.
Introduce XtensaOpcodeOps::test_exceptions and convert all test_ill
users to test_exceptions.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
  • Loading branch information
jcmvbkbc committed Aug 21, 2020
1 parent f86d9a0 commit 91dc2b2
Show file tree
Hide file tree
Showing 2 changed files with 278 additions and 265 deletions.
5 changes: 1 addition & 4 deletions target/xtensa/cpu.h
Expand Up @@ -364,9 +364,6 @@ typedef struct opcode_arg {
typedef struct DisasContext DisasContext;
typedef void (*XtensaOpcodeOp)(DisasContext *dc, const OpcodeArg arg[],
const uint32_t par[]);
typedef bool (*XtensaOpcodeBoolTest)(DisasContext *dc,
const OpcodeArg arg[],
const uint32_t par[]);
typedef uint32_t (*XtensaOpcodeUintTest)(DisasContext *dc,
const OpcodeArg arg[],
const uint32_t par[]);
Expand Down Expand Up @@ -408,7 +405,7 @@ enum {
typedef struct XtensaOpcodeOps {
const void *name;
XtensaOpcodeOp translate;
XtensaOpcodeBoolTest test_ill;
XtensaOpcodeUintTest test_exceptions;
XtensaOpcodeUintTest test_overflow;
const uint32_t *par;
uint32_t op_flags;
Expand Down

0 comments on commit 91dc2b2

Please sign in to comment.