diff --git a/core/hw/aica/dsp_arm64.cpp b/core/hw/aica/dsp_arm64.cpp index 305649695..6328f75de 100644 --- a/core/hw/aica/dsp_arm64.cpp +++ b/core/hw/aica/dsp_arm64.cpp @@ -261,8 +261,8 @@ public: // ACCUM //s64 v = ((s64)X * (s64)Y) >> 10; // magic value from dynarec. 1 sign bit + 24-1 bits + 13-1 bits -> 26 bits? - const vixl::aarch64::Register X64 = Register::GetXRegFromCode(X_alias->GetCode()); - const vixl::aarch64::Register Y64 = Register::GetXRegFromCode(Y.GetCode()); + const Register& X64 = Register::GetXRegFromCode(X_alias->GetCode()); + const Register& Y64 = Register::GetXRegFromCode(Y.GetCode()); Sxtw(X64, *X_alias); Sxtw(Y64, Y); Mul(x0, X64, Y64); @@ -340,7 +340,7 @@ public: if (op.EWT) { // 4 ???? - //DSPData->EFREG[op.EWA] += SHIFTED >> 4; // dynarec uses = instead of += + //DSPData->EFREG[op.EWA] += SHIFTED >> 4; // x86 dynarec uses = instead of += MemOperand mem_operand = dspdata_operand(DSPData->EFREG, op.EWA); Ldr(w1, mem_operand); Asr(w2, SHIFTED, 4); diff --git a/core/hw/arm7/arm64.cpp b/core/hw/arm7/arm64.cpp index 5dd9e64e8..bcaf7d70c 100644 --- a/core/hw/arm7/arm64.cpp +++ b/core/hw/arm7/arm64.cpp @@ -500,10 +500,10 @@ __asm__ ( "arm_dispatch: \n\t" "ldp w0, w1, [x28, #184] \n\t" // load Next PC, interrupt - "ubfx w2, w0, #2, #21 \n\t" - "cbnz w1, arm_dofiq \n\t" + "ubfx w2, w0, #2, #21 \n\t" // w2 = pc >> 2. Note: assuming address space <= 8 MB (23 bits) + "cbnz w1, arm_dofiq \n\t" // if interrupt pending, handle it - "add x2, x26, x2, lsl #3 \n\t" + "add x2, x26, x2, lsl #3 \n\t" // x2 = EntryPoints + pc << 1 "ldr x3, [x2] \n\t" "br x3 \n" diff --git a/core/hw/arm7/arm_mem.h b/core/hw/arm7/arm_mem.h index fa41e9e06..ee4055e41 100644 --- a/core/hw/arm7/arm_mem.h +++ b/core/hw/arm7/arm_mem.h @@ -62,9 +62,6 @@ void term_mem(); #define AICA_RAM_SIZE (ARAM_SIZE) #define AICA_RAM_MASK (ARAM_MASK) -#define AICA_MEMMAP_RAM_SIZE (8*1024*1024) //this is the max for the map, the actual ram size is AICA_RAM_SIZE -#define AICA_MEMMAP_RAM_MASK (AICA_MEMMAP_RAM_SIZE-1) - extern bool e68k_out; -void update_armintc(); \ No newline at end of file +void update_armintc(); diff --git a/core/hw/naomi/awcartridge.h b/core/hw/naomi/awcartridge.h index cbb8390f3..f7072dcb5 100644 --- a/core/hw/naomi/awcartridge.h +++ b/core/hw/naomi/awcartridge.h @@ -27,8 +27,8 @@ public: virtual void AdvancePtr(u32 size) override; virtual std::string GetGameId() override; - void SetKey(u32 key); - void SetKeyData(u8 *key) { SetKey(key[0] | (key[1] << 8) | (key[2] << 16) | (key[3] << 24)); } + void SetKey(u32 key) override; + void SetKeyData(u8 *key) override { SetKey(key[0] | (key[1] << 8) | (key[2] << 16) | (key[3] << 24)); } private: virtual void device_reset(); diff --git a/core/hw/sh4/dyna/blockmanager.cpp b/core/hw/sh4/dyna/blockmanager.cpp index b69d79090..20abaa1f4 100644 --- a/core/hw/sh4/dyna/blockmanager.cpp +++ b/core/hw/sh4/dyna/blockmanager.cpp @@ -165,22 +165,6 @@ void bm_AddBlock(RuntimeBlockInfo* blk) } -u32 PAGE_STATE[RAM_SIZE/32]; - -bool PageIsConst(u32 addr) -{ - if (IsOnRam(addr)) - { - addr&=RAM_MASK; - if (addr>0x0010100) - { - return PAGE_STATE[addr/32]&(1<runs > elem2->runs;