-
Notifications
You must be signed in to change notification settings - Fork 109
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
change the way lock prefix is handled in Bochs decoder
this solves issue with ALT_MOV_CR0 AMD's feature (where lock mov cr0 is treated as mov cr8) and also speeds up decoding a bit
- Loading branch information
Stanislav Shwartsman
committed
Oct 28, 2024
1 parent
ce83913
commit 94df2e8
Showing
6 changed files
with
78 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -79,18 +79,18 @@ BX_CPP_INLINE Bit64u FetchQWORD(const Bit8u *iptr) | |
} | ||
#endif | ||
|
||
#define BX_PREPARE_AMX (0x800) | ||
#define BX_EVEX_VL_IGNORE (0x400 | BX_PREPARE_EVEX) | ||
#define BX_PREPARE_EVEX_NO_BROADCAST (0x200 | BX_PREPARE_EVEX) | ||
#define BX_PREPARE_EVEX_NO_SAE (0x100 | BX_PREPARE_EVEX) | ||
#define BX_PREPARE_EVEX (0x80) | ||
#define BX_PREPARE_OPMASK (0x40) | ||
#define BX_PREPARE_AVX (0x20) | ||
#define BX_PREPARE_SSE (0x10) | ||
#define BX_PREPARE_MMX (0x08) | ||
#define BX_PREPARE_FPU (0x04) | ||
#define BX_LOCKABLE (0x02) | ||
#define BX_PREPARE_AMX (0x400) | ||
#define BX_EVEX_VL_IGNORE (0x200 | BX_PREPARE_EVEX) | ||
#define BX_PREPARE_EVEX_NO_BROADCAST (0x100 | BX_PREPARE_EVEX) | ||
#define BX_PREPARE_EVEX_NO_SAE (0x08 | BX_PREPARE_EVEX) | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
stlintel
Contributor
|
||
#define BX_PREPARE_EVEX (0x40) | ||
#define BX_PREPARE_OPMASK (0x20) | ||
#define BX_PREPARE_AVX (0x10) | ||
#define BX_PREPARE_SSE (0x08) | ||
#define BX_PREPARE_MMX (0x04) | ||
#define BX_PREPARE_FPU (0x02) | ||
#define BX_TRACE_END (0x01) | ||
#define BX_LOCKABLE (0x00) // keep for history, nattribute not actually used anymore | ||
|
||
struct bxIAOpcodeTable { | ||
#ifndef BX_STANDALONE_DECODER | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@stlintel, is
0x08
intentional here? Looks like typo and0x80
should be instead.