[pypy-svn] r40595 - in pypy/branch/jit-virtual-world/pypy/translator/js: . test
ac at codespeak.net
ac at codespeak.net
Fri Mar 16 18:06:20 CET 2007
Author: ac
Date: Fri Mar 16 18:06:16 2007
New Revision: 40595
Modified:
pypy/branch/jit-virtual-world/pypy/translator/js/function.py
pypy/branch/jit-virtual-world/pypy/translator/js/opcodes.py
pypy/branch/jit-virtual-world/pypy/translator/js/test/test_genllvm.py
Log:
is_early_constant for JavaScript.
Modified: pypy/branch/jit-virtual-world/pypy/translator/js/function.py
==============================================================================
--- pypy/branch/jit-virtual-world/pypy/translator/js/function.py (original)
+++ pypy/branch/jit-virtual-world/pypy/translator/js/function.py Fri Mar 16 18:06:16 2007
@@ -444,3 +444,6 @@
self.load(base_obj)
self.load(item)
self.ilasm.list_getitem()
+
+ def push_primitive_constant(self, TYPE, value):
+ self.db.load_const(TYPE, value, self.ilasm)
Modified: pypy/branch/jit-virtual-world/pypy/translator/js/opcodes.py
==============================================================================
--- pypy/branch/jit-virtual-world/pypy/translator/js/opcodes.py (original)
+++ pypy/branch/jit-virtual-world/pypy/translator/js/opcodes.py Fri Mar 16 18:06:16 2007
@@ -2,7 +2,7 @@
"""
from pypy.translator.oosupport.metavm import PushArg, PushAllArgs, StoreResult,\
- InstructionList, New, SetField, GetField, MicroInstruction, RuntimeNew
+ InstructionList, New, SetField, GetField, MicroInstruction, RuntimeNew, PushPrimitive
from pypy.translator.oosupport.metavm import _GetFieldDispatcher, _SetFieldDispatcher, \
_CallDispatcher, _MethodDispatcher
@@ -12,6 +12,7 @@
IndirectCall, CallExternalObject, SetExternalField, _CastMethod, _LoadConst
from pypy.translator.js.jsbuiltin import Builtins
+from pypy.rpython.ootypesystem import ootype
DoNothing = [PushAllArgs]
@@ -147,6 +148,7 @@
'truncate_longlong_to_int': CopyName,
'debug_assert' : DoNothing,
+ 'is_early_constant': [PushPrimitive(ootype.Bool, False)]
}
for key, value in opcodes.iteritems():
Modified: pypy/branch/jit-virtual-world/pypy/translator/js/test/test_genllvm.py
==============================================================================
--- pypy/branch/jit-virtual-world/pypy/translator/js/test/test_genllvm.py (original)
+++ pypy/branch/jit-virtual-world/pypy/translator/js/test/test_genllvm.py Fri Mar 16 18:06:16 2007
@@ -441,3 +441,14 @@
fn = compile_function(symbolic1, [])
assert fn() == 2
+
+def test_is_early_constant():
+ from pypy.rlib import objectmodel
+ def f(x):
+ if objectmodel._is_early_constant(x):
+ return 42
+ return 0
+ fn = compile_function(f, [int])
+ res = fn(5)
+ assert res == 0
+
More information about the pypy-svn
mailing list