[pypy-svn] r41256 - in pypy/dist/pypy/translator/llvm: . test
mwh at codespeak.net
mwh at codespeak.net
Sat Mar 24 20:06:38 CET 2007
Author: mwh
Date: Sat Mar 24 20:06:36 2007
New Revision: 41256
Modified:
pypy/dist/pypy/translator/llvm/opwriter.py
pypy/dist/pypy/translator/llvm/test/test_genllvm.py
Log:
some kind of llvm support for call_boehm_gc_alloc.
Modified: pypy/dist/pypy/translator/llvm/opwriter.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/opwriter.py (original)
+++ pypy/dist/pypy/translator/llvm/opwriter.py Sat Mar 24 20:06:36 2007
@@ -329,6 +329,11 @@
else:
raise NotImplementedError
+ def call_boehm_gc_alloc(self, opr):
+ word = self.db.get_machine_word()
+ self.codewriter.call(opr.retref, 'sbyte*', '%pypy_malloc',
+ [word], [opr.argrefs[0]])
+
def getfield(self, opr):
op = opr.op
if opr.rettype != "void":
Modified: pypy/dist/pypy/translator/llvm/test/test_genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/test_genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/test/test_genllvm.py Sat Mar 24 20:06:36 2007
@@ -459,3 +459,15 @@
f = compile_function(func, [int])
res = f(4)
assert res == 16
+
+def test_call_boehm_gc_alloc():
+ from pypy.rpython.lltypesystem import llmemory, lltype
+ from pypy.rpython.lltypesystem.lloperation import llop
+ def f(s):
+ a = llop.call_boehm_gc_alloc(llmemory.Address, 100)
+ a.signed[0] = s
+ a.signed[1] = s+2
+ return a.signed[0]*a.signed[1]
+ f = compile_function(f, [int])
+ res = f(4)
+ assert res == 4*(4+2)
More information about the Pypy-commit
mailing list