[DYNAREC_RV64] Fixed BTS BTR BTC for zbs extension (#1084)

This commit is contained in:
Yang Liu 2023-11-26 23:46:21 +08:00 committed by GitHub
parent e853892282
commit 6ad9435b4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 3 deletions

View File

@ -52,7 +52,7 @@ Only on build with trace enabled. Trace allow the logging of all instruction exe
* 0xXXXXXXX-0xYYYYYYY : Trace only between the 2 addresses.
#### BOX64_TRACE_INIT *
Use BOX64_TRACE_INIT instead of BOX_TRACE to start trace before the initialisation of libraries and the running program
Use BOX64_TRACE_INIT instead of BOX64_TRACE to start trace before the initialisation of libraries and the running program
* 0 : No trace. (Default.)
* 1 : Trace enabled. The trace start with the initialisation of all depending libraries is done.

View File

@ -151,7 +151,7 @@ Only on build with trace enabled. Trace allow the logging of all instruction exe
=item B<BOX64_TRACE_INIT>=I<0|1>
Use B<BOX64_TRACE_INIT> instead of B<BOX_TRACE> to start trace before the
Use B<BOX64_TRACE_INIT> instead of B<BOX64_TRACE> to start trace before the
initialization of libraries and the running program
* 0 : No trace. (Default.)

View File

@ -1045,6 +1045,7 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
ANDI(xFlags, xFlags, ~1);
OR(xFlags, xFlags, x4);
ADDI(x3, xZR, 1);
ANDI(x2, gd, rex.w ? 0x3f : 0x1f);
SLL(x3, x3, x2);
OR(ed, ed, x3);
if (wback) {
@ -1190,6 +1191,7 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
ANDI(xFlags, xFlags, ~1);
OR(xFlags, xFlags, x4);
ADDI(x5, xZR, 1);
ANDI(x2, gd, rex.w ? 0x3f : 0x1f);
SLL(x5, x5, x2);
NOT(x5, x5);
AND(ed, ed, x5);
@ -1351,6 +1353,7 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
ANDI(xFlags, xFlags, ~1);
OR(xFlags, xFlags, x4);
ADDI(x3, xZR, 1);
ANDI(x2, gd, rex.w ? 0x3f : 0x1f);
SLL(x3, x3, x2);
XOR(ed, ed, x3);
if (wback) {

View File

@ -1087,7 +1087,7 @@ void PrintHelp() {
printf(" BOX64_TRACE with 1 to enable x86_64 execution trace\n");
printf(" or with XXXXXX-YYYYYY to enable x86_64 execution trace only between address\n");
printf(" or with FunctionName to enable x86_64 execution trace only in one specific function\n");
printf(" use BOX64_TRACE_INIT instead of BOX_TRACE to start trace before init of Libs and main program\n\t (function name will probably not work then)\n");
printf(" use BOX64_TRACE_INIT instead of BOX64_TRACE to start trace before init of Libs and main program\n\t (function name will probably not work then)\n");
printf(" BOX64_TRACE_EMM with 1 to enable dump of MMX registers along with regular registers\n");
printf(" BOX64_TRACE_XMM with 1 to enable dump of SSE registers along with regular registers\n");
printf(" BOX64_TRACE_COLOR with 1 to enable detection of changed general register values\n");