[pypy-svn] pypy 32ptr-on-64bit: Add support for 'H' in pyjitpl too.

arigo commits-noreply at bitbucket.org
Sat Apr 16 23:10:18 CEST 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: 32ptr-on-64bit
Changeset: r43413:2e27a9ff5b61
Date: 2011-04-16 22:59 +0200
http://bitbucket.org/pypy/pypy/changeset/2e27a9ff5b61/

Log:	Add support for 'H' in pyjitpl too.

diff --git a/pypy/jit/metainterp/history.py b/pypy/jit/metainterp/history.py
--- a/pypy/jit/metainterp/history.py
+++ b/pypy/jit/metainterp/history.py
@@ -138,6 +138,7 @@
     def get_arg_types(self):
         """ Implement in call descr.
         Must return a string of INT, REF and FLOAT ('i', 'r', 'f').
+        Can also contain 'L' or 'H'; see get_return_type().
         """
         raise NotImplementedError
 
@@ -145,6 +146,7 @@
         """ Implement in call descr.
         Must return INT, REF, FLOAT, or 'v' for void.
         On 32-bit (hack) it can also be 'L' for longlongs.
+        On 64-bit (hack) it can also be 'H' for HiddenGcRef32.
         """
         raise NotImplementedError
 

diff --git a/pypy/jit/metainterp/executor.py b/pypy/jit/metainterp/executor.py
--- a/pypy/jit/metainterp/executor.py
+++ b/pypy/jit/metainterp/executor.py
@@ -56,7 +56,7 @@
             metainterp.execute_raised(e)
             result = 0
         return BoxInt(result)
-    if rettype == REF:
+    if rettype == REF or rettype == 'H':
         try:
             result = cpu.bh_call_r(func, descr, args_i, args_r, args_f)
         except Exception, e:

diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -1157,7 +1157,7 @@
                     src_i += 1
                     if box.type == history.INT:
                         break
-            elif kind == history.REF:
+            elif kind == history.REF or kind == 'H':    # HiddenGcRef32
                 while True:
                     box = argboxes[src_r]
                     src_r += 1


More information about the Pypy-commit mailing list