瀏覽代碼

Merge pull request #8594 from liamwhite/skip-wp

core/arm: skip watchpoint checks when reading instructions
bunnei 4 年之前
父節點
當前提交
b8813edc51
共有 2 個文件被更改,包括 6 次插入6 次删除
  1. 3 3
      src/core/arm/dynarmic/arm_dynarmic_32.cpp
  2. 3 3
      src/core/arm/dynarmic/arm_dynarmic_64.cpp

+ 3 - 3
src/core/arm/dynarmic/arm_dynarmic_32.cpp

@@ -52,7 +52,7 @@ public:
         if (!memory.IsValidVirtualAddressRange(vaddr, sizeof(u32))) {
             return std::nullopt;
         }
-        return MemoryRead32(vaddr);
+        return memory.Read32(vaddr);
     }
 
     void MemoryWrite8(u32 vaddr, u8 value) override {
@@ -97,7 +97,7 @@ public:
         parent.LogBacktrace();
         LOG_ERROR(Core_ARM,
                   "Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
-                  num_instructions, MemoryRead32(pc));
+                  num_instructions, memory.Read32(pc));
     }
 
     void ExceptionRaised(u32 pc, Dynarmic::A32::Exception exception) override {
@@ -115,7 +115,7 @@ public:
             parent.LogBacktrace();
             LOG_CRITICAL(Core_ARM,
                          "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X}, thumb = {})",
-                         exception, pc, MemoryRead32(pc), parent.IsInThumbMode());
+                         exception, pc, memory.Read32(pc), parent.IsInThumbMode());
         }
     }
 

+ 3 - 3
src/core/arm/dynarmic/arm_dynarmic_64.cpp

@@ -56,7 +56,7 @@ public:
         if (!memory.IsValidVirtualAddressRange(vaddr, sizeof(u32))) {
             return std::nullopt;
         }
-        return MemoryRead32(vaddr);
+        return memory.Read32(vaddr);
     }
 
     void MemoryWrite8(u64 vaddr, u8 value) override {
@@ -111,7 +111,7 @@ public:
         parent.LogBacktrace();
         LOG_ERROR(Core_ARM,
                   "Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
-                  num_instructions, MemoryRead32(pc));
+                  num_instructions, memory.Read32(pc));
     }
 
     void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op,
@@ -156,7 +156,7 @@ public:
 
             parent.LogBacktrace();
             LOG_CRITICAL(Core_ARM, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
-                         static_cast<std::size_t>(exception), pc, MemoryRead32(pc));
+                         static_cast<std::size_t>(exception), pc, memory.Read32(pc));
         }
     }