Author: Maciej Fijalkowski <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit