mirror of
https://github.com/PabloMK7/citra.git
synced 2025-09-12 13:50:03 +00:00
Perf: Remove more breakpoint checking in the interpreter. Move filtering earlier in the logging chain
This commit is contained in:
parent
cddd447506
commit
9f4501aceb
6 changed files with 59 additions and 62 deletions
|
@ -953,6 +953,9 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
|
|||
#define INC_PC(l) ptr += sizeof(arm_inst) + l
|
||||
#define INC_PC_STUB ptr += sizeof(arm_inst)
|
||||
|
||||
#ifdef ANDROID
|
||||
#define GDB_BP_CHECK
|
||||
#else
|
||||
#define GDB_BP_CHECK \
|
||||
cpu->Cpsr &= ~(1 << 5); \
|
||||
cpu->Cpsr |= cpu->TFlag << 5; \
|
||||
|
@ -965,6 +968,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
|
|||
goto END; \
|
||||
} \
|
||||
}
|
||||
#endif
|
||||
|
||||
// GCC and Clang have a C++ extension to support a lookup table of labels. Otherwise, fallback to a
|
||||
// clunky switch statement.
|
||||
|
@ -1652,11 +1656,13 @@ DISPATCH : {
|
|||
goto END;
|
||||
}
|
||||
|
||||
#ifndef ANDROID
|
||||
// Find breakpoint if one exists within the block
|
||||
if (GDBStub::IsConnected()) {
|
||||
breakpoint_data =
|
||||
GDBStub::GetNextBreakpointFromAddress(cpu->Reg[15], GDBStub::BreakpointType::Execute);
|
||||
}
|
||||
#endif
|
||||
|
||||
inst_base = (arm_inst*)&trans_cache_buf[ptr];
|
||||
GOTO_NEXT_INST;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue