Author: Maciej Fijalkowski <fij...@gmail.com> Branch: fast-slowpath Changeset: r65608:67eec70cba8b Date: 2013-07-24 14:20 +0000 http://bitbucket.org/pypy/pypy/changeset/67eec70cba8b/
Log: fix diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py --- a/rpython/jit/backend/test/runner_test.py +++ b/rpython/jit/backend/test/runner_test.py @@ -2288,18 +2288,20 @@ 'calldescr': calldescr}) looptoken = JitCellToken() self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken) - frame = self.cpu.execute_token(looptoken, 1, 0, 1, 2, 3, 4, 5, 1.2, 3.4) + f1 = longlong.getfloatstorage(1.2) + f2 = longlong.getfloatstorage(3.4) + frame = self.cpu.execute_token(looptoken, 1, 0, 1, 2, 3, 4, 5, f1, f2) assert not called for j in range(5): assert self.cpu.get_int_value(frame, j) == j - assert self.cpu.get_float_value(frame, 6) == 1.2 - assert self.cpu.get_float_value(frame, 7) == 3.4 - frame = self.cpu.execute_token(looptoken, 1, 1, 1, 2, 3, 4, 5, 1.2, 3.4) + assert longlong.getrealfloat(self.cpu.get_float_value(frame, 6)) == 1.2 + assert longlong.getrealfloat(self.cpu.get_float_value(frame, 7)) == 3.4 + frame = self.cpu.execute_token(looptoken, 1, 1, 1, 2, 3, 4, 5, f1, f2) assert called == [tuple(range(1, i + 1))] for j in range(4): assert self.cpu.get_int_value(frame, j + 1) == j + 1 - assert self.cpu.get_float_value(frame, 6) == 1.2 - assert self.cpu.get_float_value(frame, 7) == 3.4 + assert longlong.getrealfloat(self.cpu.get_float_value(frame, 6)) == 1.2 + assert longlong.getrealfloat(self.cpu.get_float_value(frame, 7)) == 3.4 def test_force_operations_returning_void(self): values = [] diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py --- a/rpython/jit/backend/x86/assembler.py +++ b/rpython/jit/backend/x86/assembler.py @@ -2169,10 +2169,9 @@ floats = True cond_call_adr = self.cond_call_slowpath[floats * 2 + callee_only] if IS_X86_32: - p = -7 * WORD - for i in range(len(arglocs) - 1, -1, -1): - loc = arglocs[i] - self.mc.MOV(RawEspLoc(p), loc) + p = -8 * WORD + for loc in arglocs: + self.mc.MOV(RawEspLoc(p, INT), loc) p += WORD self.mc.CALL(imm(cond_call_adr)) self.pop_gcmap(self.mc) diff --git a/rpython/jit/backend/x86/regloc.py b/rpython/jit/backend/x86/regloc.py --- a/rpython/jit/backend/x86/regloc.py +++ b/rpython/jit/backend/x86/regloc.py @@ -89,7 +89,6 @@ _location_code = 's' def __init__(self, value, type): - assert value >= 0 self.value = value self.type = type _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit