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

antocuni at codespeak.net antocuni at codespeak.net
Fri Jun 16 13:48:16 CEST 2006


Author: antocuni
Date: Fri Jun 16 13:48:11 2006
New Revision: 28876

Modified:
   pypy/dist/pypy/translator/cli/opcodes.py
Log:
Bugfix: don't try to read the exceptions_Overflow_meta constants, as
it's not guaranteed that it's present.



Modified: pypy/dist/pypy/translator/cli/opcodes.py
==============================================================================
--- pypy/dist/pypy/translator/cli/opcodes.py	(original)
+++ pypy/dist/pypy/translator/cli/opcodes.py	Fri Jun 16 13:48:11 2006
@@ -1,5 +1,5 @@
 from pypy.translator.cli.metavm import  Call, CallMethod, RuntimeNew, \
-     IndirectCall, GetField, SetField, CastTo
+     IndirectCall, GetField, SetField, CastTo, OOString
 from pypy.translator.oosupport.metavm import PushArg, PushAllArgs, StoreResult, InstructionList,\
     New
 
@@ -28,9 +28,9 @@
         # if overflow, raise a pypy's OverflowError
         'catch [mscorlib]System.OverflowException {',
         'newobj instance void class exceptions.OverflowError::.ctor()',
-        'dup',
-        'ldsfld class Object_meta pypy.runtime.Constants::exceptions_OverflowError_meta',
-        'stfld class Object_meta Object::meta',
+#        'dup',
+#        'ldsfld class Object_meta pypy.runtime.Constants::exceptions_OverflowError_meta',
+#        'stfld class Object_meta Object::meta',
         'throw }',
 
         '%s: nop' % label      # continue normal execution
@@ -51,7 +51,8 @@
     'instanceof':               [CastTo, 'ldnull', 'cgt.un'],
     'subclassof':               [PushAllArgs, 'call bool [pypylib]pypy.runtime.Utils::SubclassOf(class [mscorlib]System.Type, class[mscorlib]System.Type)'],
     'ooidentityhash':           [PushAllArgs, 'callvirt instance int32 object::GetHashCode()'],
-
+    'oostring':                 [OOString],
+    'ooparse_int':              [PushAllArgs, 'call int32 [pypylib]pypy.runtime.Utils::OOParseInt(string, int32)'],
     
     'same_as':                  DoNothing, # TODO: does same_as really do nothing else than renaming?    
     'direct_call':              [Call],
@@ -206,7 +207,7 @@
     'cast_bool_to_float':       [PushAllArgs, 'ldc.i4 0', 'ceq']+Not+['conv.r8'],
     'cast_char_to_int':         DoNothing,
     'cast_unichar_to_int':      None,
-    'cast_int_to_char':         None,
+    'cast_int_to_char':         DoNothing,
     'cast_int_to_unichar':      None,
     'cast_int_to_uint':         DoNothing,
     'cast_int_to_float':        'conv.r8',



More information about the Pypy-commit mailing list