aboutsummaryrefslogtreecommitdiff
path: root/source/cpuaddr.h
diff options
context:
space:
mode:
authoraliaspider2014-10-28 05:39:03 +0100
committeraliaspider2014-10-28 05:39:03 +0100
commit76fef9625dd83399979a653b74f377f730725a70 (patch)
treef043e3774bc36acd7af98a2e8c3beb4a6fcbbf88 /source/cpuaddr.h
parent5a96997f186b2cff1a24ed5572430fe0f031e8d3 (diff)
downloadsnes9x2005-76fef9625dd83399979a653b74f377f730725a70.tar.gz
snes9x2005-76fef9625dd83399979a653b74f377f730725a70.tar.bz2
snes9x2005-76fef9625dd83399979a653b74f377f730725a70.zip
64-bit safer
Diffstat (limited to 'source/cpuaddr.h')
-rw-r--r--source/cpuaddr.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/source/cpuaddr.h b/source/cpuaddr.h
index 4423b7c..6335495 100644
--- a/source/cpuaddr.h
+++ b/source/cpuaddr.h
@@ -119,7 +119,7 @@ static void Immediate16 (AccessMode a, InternalOp op)
static void Relative (AccessMode a, InternalOp op)
{
int8 Int8 = *CPU.PC++;
- long Addr = ((int) (CPU.PC - CPU.PCBase) + Int8) & 0xffff;
+ long Addr = ((intptr_t) (CPU.PC - CPU.PCBase) + Int8) & 0xffff;
(*op)(Addr);
}
@@ -207,7 +207,7 @@ static void AbsoluteLong (AccessMode a, InternalOp op)
#ifdef FAST_LSB_WORD_ACCESS
Addr = (*(uint32 *) CPU.PC) & 0xffffff;
#elif defined FAST_ALIGNED_LSB_WORD_ACCESS
- if (((int) CPU.PC & 1) == 0)
+ if (((intptr_t) CPU.PC & 1) == 0)
Addr = (*(uint16 *) CPU.PC) + (*(CPU.PC + 2) << 16);
else
Addr = *CPU.PC + ((*(uint16 *) (CPU.PC + 1)) << 8);
@@ -322,7 +322,7 @@ static void AbsoluteLongIndexedX (AccessMode a, InternalOp op)
#ifdef FAST_LSB_WORD_ACCESS
Addr = (*(uint32 *) CPU.PC + ICPU.Registers.X.W) & 0xffffff;
#elif defined FAST_ALIGNED_LSB_WORD_ACCESS
- if (((int) CPU.PC & 1) == 0)
+ if (((intptr_t) CPU.PC & 1) == 0)
Addr = ((*(uint16 *) CPU.PC) + (*(CPU.PC + 2) << 16) + ICPU.Registers.X.W) & 0xFFFFFF;
else
Addr = (*CPU.PC + ((*(uint16 *) (CPU.PC + 1)) << 8) + ICPU.Registers.X.W) & 0xFFFFFF;