[pypy-svn] r53303 - pypy/branch/jit-hotpath/pypy/jit/codegen/ia32
fijal at codespeak.net
fijal at codespeak.net
Fri Apr 4 00:42:47 CEST 2008
Author: fijal
Date: Fri Apr 4 00:42:45 2008
New Revision: 53303
Modified:
pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
Log:
* Fix the bug that prevented one test to run
* Clarify exceptions as a side-effect
Modified: pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py Fri Apr 4 00:42:45 2008
@@ -229,6 +229,7 @@
class AddrConst(GenConst):
+ SIZE = 1
def __init__(self, addr):
self.addr = addr
@@ -497,9 +498,10 @@
else:
if fieldsize == 1:
op = mem8(edx, offset)
- else:
- assert fieldsize == 2
+ elif fieldsize == 2:
op = mem(edx, offset)
+ else:
+ raise NotImplementedError("fieldsize != 1,2,4")
self.mc.MOVZX(eax, op)
op = eax
return self.returnintvar(op)
@@ -520,8 +522,10 @@
else:
if fieldsize == 2:
self.mc.o16() # followed by the MOV below
+ elif fieldsize == WORD:
+ pass
else:
- assert fieldsize == WORD
+ raise NotImplementedError("fieldsize != 1,2,4")
self.mc.MOV(mem(edx, offset), eax)
def genop_getsubstruct(self, (offset, fieldsize), gv_ptr):
@@ -552,7 +556,8 @@
op = self.itemaddr(edx, arraytoken, gv_index)
_, _, itemsize = arraytoken
if itemsize != WORD:
- assert itemsize == 1 or itemsize == 2
+ if itemsize > 2:
+ raise NotImplementedError("itemsize != 1,2,4")
self.mc.MOVZX(eax, op)
op = eax
return self.returnintvar(op)
@@ -580,7 +585,7 @@
elif itemsize == 2:
self.mc.o16() # followed by the MOV below
else:
- raise AssertionError
+ raise NotImplementedError("setarrayitme for fieldsize != 1,2,4")
self.mc.MOV(destop, eax)
def genop_malloc_fixedsize(self, size):
@@ -1361,7 +1366,8 @@
self.mcs.append(mc)
def check_no_open_mc(self):
- assert len(self.mcs) == self.total_code_blocks
+ if len(self.mcs) != self.total_code_blocks:
+ raise Exception("Open MC!")
def newbuilder(self, stackdepth):
return Builder(self, stackdepth)
More information about the pypy-svn
mailing list