[pypy-svn] r53481 - pypy/branch/jit-hotpath/pypy/jit/codegen/test
fijal at codespeak.net
fijal at codespeak.net
Sun Apr 6 21:40:23 CEST 2008
Author: fijal
Date: Sun Apr 6 21:40:20 2008
New Revision: 53481
Modified:
pypy/branch/jit-hotpath/pypy/jit/codegen/test/rgenop_tests.py
Log:
A test pointing out that there is something wrong with genop_call for floats.
Modified: pypy/branch/jit-hotpath/pypy/jit/codegen/test/rgenop_tests.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/codegen/test/rgenop_tests.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/codegen/test/rgenop_tests.py Sun Apr 6 21:40:20 2008
@@ -736,6 +736,7 @@
lltype.Void))
def __init__(self, RGenOp):
def writer(base, value):
+ print value
if value > 5:
RGenOp.write_frame_place(TP, base,
self.place1, value * 7)
@@ -800,6 +801,22 @@
return res
return write_frame_place_runner
+def make_float_caller(rgenop):
+ FUNC = lltype.FuncType([lltype.Signed, lltype.Float], lltype.Float)
+ sigtoken = rgenop.sigToken(FLOATFUNC)
+ innertoken = rgenop.sigToken(FUNC)
+ builder, gv_f, [gv_y, gv_x] = rgenop.newgraph(innertoken, "inner")
+ builder.start_writing()
+ builder.finish_and_return(innertoken, gv_x)
+ builder.end()
+ builder, gv_f2, [gv_x] = rgenop.newgraph(sigtoken, "outer")
+ builder.start_writing()
+ gv_res = builder.genop_call(innertoken, gv_f, [rgenop.genconst(3), gv_x])
+ builder.finish_and_return(sigtoken, gv_res)
+ builder.end()
+
+ return gv_f2
+
class ManyFramePlaceWriter:
FUNC = lltype.Ptr(lltype.FuncType([llmemory.Address, lltype.Signed],
lltype.Void))
@@ -1157,6 +1174,12 @@
res = fnptr(1.2)
assert res == 4.4
+ def test_float_call(self):
+ rgenop = self.RGenOp()
+ gv_f = make_float_caller(rgenop)
+ fnptr = self.cast_float(gv_f, 1)
+ assert fnptr(1.2) == 1.2
+
def test_float_loop_direct(self):
def f(x, y):
i = 0
@@ -1624,9 +1647,9 @@
FramePlaceWriterFloat)
fnptr = self.cast_float(gv_callable, 1)
res = fnptr(3.3)
- assert res == -33.3 - 33.
+ assert res == (-33.3 - 3.3*10)
res = fnptr(6.3)
- assert res == -18.9
+ assert res == -18.9
def test_write_lots_of_frame_places_direct(self):
def get_writer(places):
More information about the Pypy-commit
mailing list