[pypy-svn] r63012 - pypy/trunk/pypy/lang/gameboy
tverwaes at codespeak.net
tverwaes at codespeak.net
Tue Mar 17 20:55:59 CET 2009
Author: tverwaes
Date: Tue Mar 17 20:55:56 2009
New Revision: 63012
Modified:
pypy/trunk/pypy/lang/gameboy/cpu.py
pypy/trunk/pypy/lang/gameboy/cpu_register.py
Log:
removing specialize.arg. this even seems to have a very slight negative performance impact
Modified: pypy/trunk/pypy/lang/gameboy/cpu.py
==============================================================================
--- pypy/trunk/pypy/lang/gameboy/cpu.py (original)
+++ pypy/trunk/pypy/lang/gameboy/cpu.py Tue Mar 17 20:55:56 2009
@@ -1,4 +1,4 @@
-from pypy.rlib.objectmodel import we_are_translated, specialize
+from pypy.rlib.objectmodel import we_are_translated
from pypy.lang.gameboy import constants
from pypy.lang.gameboy.interrupt import Interrupt
from pypy.lang.gameboy.cpu_register import Register, DoubleRegister,\
@@ -236,7 +236,6 @@
self.memory.write(address, data)
self.cycles -= 2
- @specialize.arg(-1)
def fetch(self, use_cycles=True):
# Fetching 1 cycle
if use_cycles:
@@ -257,19 +256,16 @@
def fetch_double_register(self, register):
self.double_register_inverse_call(CPUFetchCaller(self), register)
- @specialize.arg(-1)
def push(self, data, use_cycles=True):
# Stack, 2 cycles
self.sp.dec(use_cycles) # 2 cycles
self.memory.write(self.sp.get(use_cycles), data)
- @specialize.arg(-1)
def push_double_register(self, register, use_cycles=True):
# PUSH rr 4 cycles
self.push(register.get_hi(), use_cycles) # 2 cycles
self.push(register.get_lo(), use_cycles) # 2 cycles
- @specialize.arg(-1)
def pop(self, use_cycles=True):
# 1 cycle
data = self.memory.read(self.sp.get())
@@ -287,7 +283,6 @@
register.set_hi_lo(a, b) # 2 cycles
self.cycles += 1
- @specialize.arg(-1)
def call(self, address, use_cycles=True):
# 4 cycles
self.push_double_register(self.pc, use_cycles)
@@ -745,11 +740,9 @@
# Call Wrappers --------------------------------------------------------------
class CallWrapper(object):
- @specialize.arg(-1)
def get(self, use_cycles=True):
raise Exception("called CallWrapper.get")
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
raise Exception("called CallWrapper.set")
@@ -757,11 +750,9 @@
def __init__(self, number):
self.number = number
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.number
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
raise Exception("called CallWrapper.set")
@@ -769,11 +760,9 @@
def __init__(self, register):
self.register = register
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.register.get(use_cycles)
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
return self.register.set(value, use_cycles)
@@ -782,11 +771,9 @@
def __init__(self, register):
self.register = register
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.register.get(use_cycles)
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
return self.register.set(value, use_cycles)
@@ -795,7 +782,6 @@
def __init__(self, cpu):
self.cpu = cpu
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.cpu.pop(use_cycles)
@@ -804,7 +790,6 @@
def __init__(self, cpu):
self.cpu = cpu
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.cpu.fetch(use_cycles)
Modified: pypy/trunk/pypy/lang/gameboy/cpu_register.py
==============================================================================
--- pypy/trunk/pypy/lang/gameboy/cpu_register.py (original)
+++ pypy/trunk/pypy/lang/gameboy/cpu_register.py Tue Mar 17 20:55:56 2009
@@ -1,8 +1,6 @@
-from pypy.rlib.objectmodel import specialize
# ---------------------------------------------------------------------------
class AbstractRegister(object):
- @specialize.arg(-1)
def get(self, use_cycles=True):
return 0xFF
@@ -18,21 +16,17 @@
def reset(self):
self.value = self.reset_value
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
self.value = value & 0xFF
if use_cycles:
self.cpu.cycles -= 1
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.value
- @specialize.arg(-1)
def add(self, value, use_cycles=True):
self.set(self.get(use_cycles)+value, use_cycles)
- @specialize.arg(-1)
def sub(self, value, use_cycles=True):
self.set(self.get(use_cycles)-value, use_cycles)
@@ -44,12 +38,10 @@
self.cpu = cpu
self.reset_value = reset_value
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
# 1 Cycle
raise Exception("Not Implemented")
- @specialize.arg(-1)
def set_hi_lo(self, hi, lo, use_cycles=True):
# 2 Cycles
raise Exception("Not Implemented")
@@ -57,44 +49,36 @@
def reset(self):
self.set(self.reset_value, use_cycles=False)
- @specialize.arg(-1)
def set_hi(self, hi=0, use_cycles=True):
# 1 Cycle
raise Exception("Not Implemented")
- @specialize.arg(-1)
def set_lo(self, lo=0, use_cycles=True):
# 1 Cycle
raise Exception("Not Implemented")
- @specialize.arg(-1)
def get(self, use_cycles=True):
# 0 Cycles TODO: Check entanglement of cycles in CPU class.
raise Exception("Not Implemented")
- @specialize.arg(-1)
def get_hi(self, use_cycles=True):
# 0 Cycles
raise Exception("Not Implemented")
- @specialize.arg(-1)
def get_lo(self, use_cycles=True):
# 0 Cycles
raise Exception("Not Implemented")
- @specialize.arg(-1)
def inc(self, use_cycles=True):
self.add(1, use_cycles)
if use_cycles:
self.cpu.cycles += 1
- @specialize.arg(-1)
def dec(self, use_cycles=True):
self.add(-1, use_cycles)
if use_cycles:
self.cpu.cycles += 1
- @specialize.arg(-1)
def add(self, value, use_cycles=True):
self.set(self.get(use_cycles) + value, use_cycles=use_cycles)
if use_cycles:
@@ -108,7 +92,6 @@
self.hi = hi
self.lo = lo
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
value = value & 0xFFFF
self.set_hi(value >> 8, use_cycles)
@@ -116,28 +99,22 @@
if use_cycles:
self.cpu.cycles += 1
- @specialize.arg(-1)
def set_hi_lo(self, hi, lo, use_cycles=True):
self.set_hi(hi, use_cycles)
self.set_lo(lo, use_cycles)
- @specialize.arg(-1)
def set_hi(self, hi=0, use_cycles=True):
self.hi.set(hi, use_cycles)
- @specialize.arg(-1)
def set_lo(self, lo=0, use_cycles=True):
self.lo.set(lo, use_cycles)
- @specialize.arg(-1)
def get(self, use_cycles=True):
return (self.hi.get(use_cycles)<<8) + self.lo.get(use_cycles)
- @specialize.arg(-1)
def get_hi(self, use_cycles=True):
return self.hi.get(use_cycles)
- @specialize.arg(-1)
def get_lo(self, use_cycles=True):
return self.lo.get(use_cycles)
@@ -148,13 +125,11 @@
AbstractDoubleRegister.__init__(self, cpu, reset_value)
self.value = 0x0000
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
self.value = value & 0xFFFF
if use_cycles:
self.cpu.cycles -= 1
- @specialize.arg(-1)
def set_hi_lo(self, hi, lo, use_cycles=True):
hi &= 0xFF
lo &= 0xFF
@@ -162,45 +137,37 @@
if use_cycles:
self.cpu.cycles -= 1
- @specialize.arg(-1)
def set_hi(self, hi=0, use_cycles=True):
self.set_hi_lo(hi, self.get_lo(False), use_cycles)
if use_cycles:
self.cpu.cycles += 1
- @specialize.arg(-1)
def set_lo(self, lo=0, use_cycles=True):
self.set_hi_lo(self.get_hi(False), lo, use_cycles)
if use_cycles:
self.cpu.cycles += 1
- @specialize.arg(-1)
def get(self, use_cycles=True):
return self.value
- @specialize.arg(-1)
def get_hi(self, use_cycles=True):
return (self.value >> 8)
- @specialize.arg(-1)
def get_lo(self, use_cycles=True):
return (self.value & 0xFF)
- @specialize.arg(-1)
def inc(self, use_cycles=True):
self.value += 1
self.value &= 0xFFFF
if use_cycles:
self.cpu.cycles -= 2
- @specialize.arg(-1)
def dec(self, use_cycles=True):
self.value -= 1
self.value &= 0xFFFF
if use_cycles:
self.cpu.cycles -= 2
- @specialize.arg(-1)
def add(self, value, use_cycles=True):
self.value += value
self.value &= 0xFFFF
@@ -216,13 +183,11 @@
self.cpu = cpu
self.hl = hl
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
self.cpu.write(self.hl.get(use_cycles=use_cycles), value) # 2 + 0
if not use_cycles:
self.cpu.cycles += 2
- @specialize.arg(-1)
def get(self, use_cycles=True):
if not use_cycles:
self.cpu.cycles += 1
@@ -293,7 +258,6 @@
self.s_flag = False
self.lower = 0x00
- @specialize.arg(-1)
def get(self, use_cycles=True):
value = 0
value += (int(self.is_carry) << 4)
@@ -302,7 +266,6 @@
value += (int(self.is_zero) << 7)
return value + self.lower
- @specialize.arg(-1)
def set(self, value, use_cycles=True):
self.is_carry = bool(value & (1 << 4))
self.is_half_carry = bool(value & (1 << 5))
More information about the Pypy-commit
mailing list