[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