[pypy-svn] r30714 - pypy/dist/pypy/translator/cli

fijal at codespeak.net fijal at codespeak.net
Fri Jul 28 20:43:39 CEST 2006


Author: fijal
Date: Fri Jul 28 20:43:37 2006
New Revision: 30714

Modified:
   pypy/dist/pypy/translator/cli/database.py
Log:
Added support for CDefinedIntSymbolic, right now as static lookup table. Should be moved to some kind of #define's for ilasm (howto do that?). At least tests passes.


Modified: pypy/dist/pypy/translator/cli/database.py
==============================================================================
--- pypy/dist/pypy/translator/cli/database.py	(original)
+++ pypy/dist/pypy/translator/cli/database.py	Fri Jul 28 20:43:37 2006
@@ -13,6 +13,7 @@
 from pypy.rpython.lltypesystem import lltype
 from pypy.rpython.lltypesystem import llmemory
 from pypy.translator.cli.opcodes import opcodes
+from pypy.rpython.objectmodel import CDefinedIntSymbolic
 
 try:
     set
@@ -36,6 +37,8 @@
     ll_os.STAT_RESULT: '[pypylib]pypy.runtime.Record_Stat_Result',
     }
 
+DEFINED_INT_SYMBOLICS = {'MALLOC_ZERO_FILLED':1}
+
 def isnan(v):
 	return v != v*1.0 or (v == 1.0 and v == 2.0)
 
@@ -290,6 +293,8 @@
                 ilasm.opcode('ldc.r8', '(00 00 00 00 00 00 f8 ff)')
             else:
                 ilasm.opcode('ldc.r8', repr(value))
+        elif isinstance(value, CDefinedIntSymbolic):
+            ilasm.opcode('ldc.i4', DEFINED_INT_SYMBOLICS[value.expr])
         elif TYPE in (ootype.Signed, ootype.Unsigned):
             ilasm.opcode('ldc.i4', str(value))
         elif TYPE in (lltype.SignedLongLong, lltype.UnsignedLongLong):



More information about the Pypy-commit mailing list