[pypy-commit] pypy tealet: Translation fixes.

arigo noreply at buildbot.pypy.org
Wed Jul 6 20:28:50 CEST 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: tealet
Changeset: r45387:a60fa90a4868
Date: 2011-06-13 10:02 +0000
http://bitbucket.org/pypy/pypy/changeset/a60fa90a4868/

Log:	Translation fixes.

diff --git a/pypy/jit/backend/llsupport/gc.py b/pypy/jit/backend/llsupport/gc.py
--- a/pypy/jit/backend/llsupport/gc.py
+++ b/pypy/jit/backend/llsupport/gc.py
@@ -414,8 +414,8 @@
             signed_count = 0
             gcptr_array = walker.gcptr_array
             #
-            rsbase = gcdata.root_stack_base
-            rsend = gcdata.root_stack_top
+            rsbase = rffi.cast(lltype.Signed, gcdata.root_stack_base)
+            rsend = rffi.cast(lltype.Signed, gcdata.root_stack_top)
             rsaddr = rsbase
             while rsaddr != rsend:
                 if read(rsaddr) != GcRootMap_shadowstack.MARKER:
@@ -446,8 +446,8 @@
                         if offset == 0:
                             break
                         if gcptr_array:
-                            addr = cast_int_to_adr(frame_addr + offset)
-                            gcobj = cast_int_to_ptr(llmemory.GCREF, read(addr))
+                            obj = read(frame_addr + offset)
+                            gcobj = cast_int_to_ptr(llmemory.GCREF, obj)
                             gcptr_array[gcptr_count] = gcobj
                         gcptr_count += 1
                         n += 1
@@ -487,7 +487,7 @@
             signed_count = 0
             gcptr_array = walker.gcptr_array
             #
-            rsbase = gcdata.root_stack_base
+            rsbase = rffi.cast(lltype.Signed, gcdata.root_stack_base)
             rsaddr = rsbase
             rsmarker = rsbase + walker.signed_array[signed_count]
             signed_count += 1
@@ -520,16 +520,15 @@
                         offset = rffi.cast(lltype.Signed, callshape[n])
                         if offset == 0:
                             break
-                        addr = cast_int_to_adr(frame_addr + offset)
                         gcobj = gcptr_array[gcptr_count]
-                        write(addr, cast_ptr_to_int(gcobj))
+                        write(frame_addr + offset, cast_ptr_to_int(gcobj))
                         gcptr_count += 1
                         n += 1
                     #
                     rsmarker = rsbase + walker.signed_array[signed_count+2]
                     signed_count += 3
             #
-            gcdata.root_stack_top = rsmarker
+            gcdata.root_stack_top = cast_int_to_adr(rsmarker)
             ll_assert(signed_count == len(walker.signed_array),
                       "restoring bogus stack signed count")
             ll_assert(gcptr_count == len(walker.gcptr_array),


More information about the pypy-commit mailing list