[pypy-svn] r69479 - in pypy/branch/shorter-guard-path/pypy/jit/backend/x86: . test
arigo at codespeak.net
arigo at codespeak.net
Fri Nov 20 18:52:38 CET 2009
Author: arigo
Date: Fri Nov 20 18:52:38 2009
New Revision: 69479
Modified:
pypy/branch/shorter-guard-path/pypy/jit/backend/x86/ri386.py
pypy/branch/shorter-guard-path/pypy/jit/backend/x86/test/test_ri386_auto_encoding.py
Log:
Grrr. Test and fix for mutating global lists. Bad idea.
Modified: pypy/branch/shorter-guard-path/pypy/jit/backend/x86/ri386.py
==============================================================================
--- pypy/branch/shorter-guard-path/pypy/jit/backend/x86/ri386.py (original)
+++ pypy/branch/shorter-guard-path/pypy/jit/backend/x86/ri386.py Fri Nov 20 18:52:38 2009
@@ -259,9 +259,16 @@
xmm6 = XMM6()
xmm7 = XMM7()
-registers = [eax, ecx, edx, ebx, esp, ebp, esi, edi]
-registers8 = [al, cl, dl, bl, ah, ch, dh, bh]
-xmm_registers = [xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7]
+class immutablelist(list):
+ def _dont_modify(self, *args):
+ raise Exception("don't modify this list!")
+ __delitem__ = __delslice__ = __iadd__ = __imul__ = _dont_modify
+ __setitem__ = __setslice__ = _dont_modify
+ append = extend = insert = pop = remove = reverse = sort = _dont_modify
+
+registers = immutablelist([eax, ecx, edx, ebx, esp, ebp, esi, edi])
+registers8 = immutablelist([al, cl, dl, bl, ah, ch, dh, bh])
+xmm_registers = immutablelist([xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7])
for r in registers + registers8:
r.bitmask = 1 << r.op
Modified: pypy/branch/shorter-guard-path/pypy/jit/backend/x86/test/test_ri386_auto_encoding.py
==============================================================================
--- pypy/branch/shorter-guard-path/pypy/jit/backend/x86/test/test_ri386_auto_encoding.py (original)
+++ pypy/branch/shorter-guard-path/pypy/jit/backend/x86/test/test_ri386_auto_encoding.py Fri Nov 20 18:52:38 2009
@@ -92,7 +92,7 @@
return [pick1(i386.memSIB64) for i in range(COUNT2)]
def xmm_tests():
- return i386.xmm_registers
+ return i386.xmm_registers[:]
def modrm8_tests():
return i386.registers8 + [pick1(i386.memSIB8) for i in range(COUNT2)]
More information about the Pypy-commit
mailing list