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

rxe at codespeak.net rxe at codespeak.net
Thu Nov 8 13:54:04 CET 2007


Author: rxe
Date: Thu Nov  8 13:54:04 2007
New Revision: 48409

Modified:
   pypy/dist/pypy/translator/llvm/database.py
Log:
use size_and_sign() for rffi lltype sizes.  UniChar should be 4 bytes.

Modified: pypy/dist/pypy/translator/llvm/database.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/database.py	(original)
+++ pypy/dist/pypy/translator/llvm/database.py	Thu Nov  8 13:54:04 2007
@@ -351,7 +351,7 @@
             lltype.Bool: "i1",
             lltype.SingleFloat: "float",
             lltype.Float: "double",
-            lltype.UniChar: "i16",
+            lltype.UniChar: "i32",
             lltype.Void: "void",
             lltype.UnsignedLongLong: "i64",
             lltype.SignedLongLong: "i64",
@@ -401,18 +401,11 @@
                 if from_ not in self.reprs:
                     self.reprs[from_] = self.repr_default
 
-            for k, v in [
-                (rffi.SIGNEDCHAR, 'i18'),
-                (rffi.UCHAR, 'i18'),
-                (rffi.SHORT, 'i16'),
-                (rffi.USHORT, 'i16'),
-                (rffi.INT, 'i32'),
-                (rffi.UINT, 'i32'),
-                (rffi.LONG, self.types[lltype.Signed]),
-                (rffi.ULONG, self.types[lltype.Signed]),
-                (rffi.LONGLONG, 'i64'),
-                (rffi.ULONGLONG, 'i64')]:
-                update(k, v)
+            for tp in [rffi.SIGNEDCHAR, rffi.UCHAR, rffi.SHORT,
+                       rffi.USHORT, rffi.INT, rffi.UINT, rffi.LONG, rffi.ULONG,
+                       rffi.LONGLONG, rffi.ULONGLONG]:
+                bits = rffi.size_and_sign(tp)[0] * 8
+                update(tp, 'i%s' % bits)
         
     def __getitem__(self, key):
         return self.types[key]



More information about the Pypy-commit mailing list