[pypy-svn] r33157 - in pypy/dist/pypy/jit/codegen/ppc: . test
mwh at codespeak.net
mwh at codespeak.net
Wed Oct 11 13:57:53 CEST 2006
Author: mwh
Date: Wed Oct 11 13:57:51 2006
New Revision: 33157
Added:
pypy/dist/pypy/jit/codegen/ppc/
pypy/dist/pypy/jit/codegen/ppc/__init__.py (contents, props changed)
pypy/dist/pypy/jit/codegen/ppc/rppcgenop.py (contents, props changed)
pypy/dist/pypy/jit/codegen/ppc/test/
pypy/dist/pypy/jit/codegen/ppc/test/__init__.py (contents, props changed)
pypy/dist/pypy/jit/codegen/ppc/test/test_rppcgenop.py (contents, props changed)
Log:
a skeleton of ppc codegen for the jit.
no actual code yet.
Added: pypy/dist/pypy/jit/codegen/ppc/__init__.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/codegen/ppc/__init__.py Wed Oct 11 13:57:51 2006
@@ -0,0 +1 @@
+#
Added: pypy/dist/pypy/jit/codegen/ppc/rppcgenop.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/codegen/ppc/rppcgenop.py Wed Oct 11 13:57:51 2006
@@ -0,0 +1,4 @@
+from pypy.jit.codegen.model import AbstractRGenOp, CodeGenBlock, CodeGenerator
+
+class RPPCGenOp(AbstractRGenOp):
+ pass
Added: pypy/dist/pypy/jit/codegen/ppc/test/__init__.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/codegen/ppc/test/__init__.py Wed Oct 11 13:57:51 2006
@@ -0,0 +1 @@
+#
Added: pypy/dist/pypy/jit/codegen/ppc/test/test_rppcgenop.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/codegen/ppc/test/test_rppcgenop.py Wed Oct 11 13:57:51 2006
@@ -0,0 +1,21 @@
+from pypy.jit.codegen.ppc.rppcgenop import RPPCGenOp
+from ctypes import c_void_p, cast, CFUNCTYPE, c_int
+import py
+
+def make_adder(rgenop, n):
+ # 'return x+n'
+ sigtoken = rgenop.sigToken(FUNC)
+ builder, entrypoint, [gv_x] = rgenop.newgraph(sigtoken)
+ gv_result = builder.genop2("int_add", gv_x, rgenop.genconst(n))
+ builder.finish_and_return(sigtoken, gv_result)
+ gv_add_one = rgenop.gencallableconst(sigtoken, "adder", entrypoint)
+ return gv_add_one
+
+def test_adder_direct():
+ py.test.skip("no way hosay")
+ rgenop = RPPCGenOp()
+ gv_add_5 = make_adder(rgenop, 5)
+ print gv_add_5.value
+ fnptr = cast(c_void_p(gv_add_5.value), CFUNCTYPE(c_int, c_int))
+ res = fnptr(37)
+ assert res == 42
More information about the Pypy-commit
mailing list