[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