[pypy-svn] r12793 - pypy/dist/pypy/translator/llvm

ericvrp at codespeak.net ericvrp at codespeak.net
Wed May 25 12:39:24 CEST 2005


Author: ericvrp
Date: Wed May 25 12:39:24 2005
New Revision: 12793

Modified:
   pypy/dist/pypy/translator/llvm/classrepr.py
   pypy/dist/pypy/translator/llvm/funcrepr.py
   pypy/dist/pypy/translator/llvm/pbcrepr.py
Log:
this makes all llvm tests pass on x86-64


Modified: pypy/dist/pypy/translator/llvm/classrepr.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/classrepr.py	(original)
+++ pypy/dist/pypy/translator/llvm/classrepr.py	Wed May 25 12:39:24 2005
@@ -21,8 +21,8 @@
 from pypy.translator.llvm.funcrepr import VirtualMethodRepr
 from pypy.translator.llvm.memorylayout import MemoryLayout
 
-debug = True
-lazy_debug = True
+debug = False
+lazy_debug = False
 
 class ClassRepr(TypeRepr):
     l_classes = {}
@@ -122,7 +122,7 @@
 
     def get_globals(self):
         s = "\n%s = internal global %%std.class {%%std.class* null, uint %i}"
-        s = s % (self.objectname, abs(id(self)))
+        s = s % (self.objectname, abs(id(self)) & 0xFFFFFFF)
         return self.definition + s
 
     def collect_init_code(self, lblock, l_func):
@@ -247,7 +247,7 @@
         self.objectname = gen.get_global_tmp("class.%s.object" %
                                              self.exception.__name__)
         s = "%s = internal global %%std.class {%%std.class* null, uint %i}"
-        self.definition = s % (self.objectname, abs(id(exception)))
+        self.definition = s % (self.objectname, abs(id(exception)) & 0xFFFFFFF)
         self.dependencies = sets.Set()
 
     lazy_attributes = ['l_base', 'memlayout']

Modified: pypy/dist/pypy/translator/llvm/funcrepr.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/funcrepr.py	(original)
+++ pypy/dist/pypy/translator/llvm/funcrepr.py	Wed May 25 12:39:24 2005
@@ -342,7 +342,7 @@
         if len(l_exits) == 1 and self.pyblock.exits[1].exitcase == Exception:
             lexcblock.uncond_branch("%" + l_exits[0].toblock)
         else:
-            sw = [(str(abs(id(ex.exitcase))), "%" + l_l.toblock)
+            sw = [(str(abs(id(ex.exitcase)) & 0xFFFFFFF), "%" + l_l.toblock)
                   for ex, l_l in zip(self.pyblock.exits[1:], l_exits)]
             lexcblock.switch(l_ui, "%" + self.lblock.label + ".unwind", sw)
             lunwindblock = llvmbc.BasicBlock(self.lblock.label + ".unwind")
@@ -628,7 +628,7 @@
         entryblock.getelementptr(l_uip, l_cl, [0, 1])
         entryblock.load(l_ui, l_uip)
         entryblock.switch(l_ui, "%" + self.l_commonbase.classdef.cls.__name__,
-                          [(str(abs(id(l_c))), "%" + l_c.classdef.cls.__name__)
+                          [(str(abs(id(l_c)) & 0xFFFFFFF), "%" + l_c.classdef.cls.__name__)
                            for l_c in self.l_classes])
         lfunc = llvmbc.Function(self.llvmfuncdef(), entryblock)
         for i, l_cls in enumerate(self.l_classes):

Modified: pypy/dist/pypy/translator/llvm/pbcrepr.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/pbcrepr.py	(original)
+++ pypy/dist/pypy/translator/llvm/pbcrepr.py	Wed May 25 12:39:24 2005
@@ -85,7 +85,7 @@
         self.memlayout = MemoryLayout(attribs, l_types, self.gen)
         self.definition = "%s = %s" % (self.name, self.memlayout.definition())
         s = "\n%s = internal global %%std.class {%%std.class* null, uint %i}"
-        self.definition += s % (self.objectname, abs(id(self)))
+        self.definition += s % (self.objectname, abs(id(self)) & 0xFFFFFFF)
 
     def llvmtype(self):
         return "%std.class*"



More information about the Pypy-commit mailing list