[pypy-svn] r68170 - pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86
arigo at codespeak.net
arigo at codespeak.net
Mon Oct 5 15:19:06 CEST 2009
Author: arigo
Date: Mon Oct 5 15:19:05 2009
New Revision: 68170
Modified:
pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py
Log:
This _no_const_locs() makes zero sense at all (to take
words from Samuele).
Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py (original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py Mon Oct 5 15:19:05 2009
@@ -63,12 +63,6 @@
if name.upper() == name:
setattr(MachineCodeBlockWrapper, name, _new_method(name))
-class ExecutableToken386(object):
- _x86_loop_code = 0
- _x86_bootstrap_code = 0
- _x86_stack_depth = 0
- _x86_arglocs = (None, None)
-
class Assembler386(object):
mc = None
mc2 = None
@@ -724,22 +718,19 @@
self.mc.CMP(mem(locs[0], offset), locs[1])
return self.implement_guard(addr, self.mc.JNE)
- def _no_const_locs(self, args, locs):
- """ returns those locs which correspond to non-const args
+ def _no_const_locs(self, args):
+ """ assert that all args are actually Boxes
"""
- newlocs = []
- for i in range(len(args)):
- arg = args[i]
- if isinstance(arg, Box):
- newlocs.append(locs[i])
- return newlocs
+ for arg in args:
+ assert isinstance(arg, Box)
def implement_guard_recovery(self, guard_opnum, faildescr, failargs,
fail_locs):
+ self._no_const_locs(failargs)
addr = self.mc2.tell()
exc = (guard_opnum == rop.GUARD_EXCEPTION or
guard_opnum == rop.GUARD_NO_EXCEPTION)
- faildescr._x86_faillocs = self._no_const_locs(failargs, fail_locs)
+ faildescr._x86_faillocs = fail_locs
self.generate_failure(self.mc2, faildescr, failargs, fail_locs, exc)
return addr
@@ -749,12 +740,11 @@
for i in range(len(failargs)):
arg = failargs[i]
loc = locs[i]
- if arg.type == FLOAT:
- if isinstance(loc, REG):
+ if isinstance(loc, REG):
+ if arg.type == FLOAT:
mc.MOVSD(addr64_add(imm(self.fail_box_float_addr),
imm(i*WORD*2)), loc)
- else:
- if isinstance(loc, REG):
+ else:
if arg.type == REF:
base = self.fail_box_ptr_addr
else:
@@ -763,13 +753,12 @@
for i in range(len(failargs)):
arg = failargs[i]
loc = locs[i]
- if arg.type == FLOAT:
- if not isinstance(loc, REG):
+ if not isinstance(loc, REG):
+ if arg.type == FLOAT:
mc.MOVSD(xmm0, loc)
mc.MOVSD(addr64_add(imm(self.fail_box_float_addr),
imm(i*WORD*2)), xmm0)
- else:
- if not isinstance(loc, REG):
+ else:
if arg.type == REF:
base = self.fail_box_ptr_addr
else:
More information about the Pypy-commit
mailing list