[pypy-svn] r25210 - in pypy/dist/pypy/jit: . hintannotator hintannotator/test llabstractinterp llabstractinterp/test test timeshifter timeshifter/test tl tl/test
arigo at codespeak.net
arigo at codespeak.net
Sat Apr 1 17:30:18 CEST 2006
Author: arigo
Date: Sat Apr 1 17:30:08 2006
New Revision: 25210
Added:
pypy/dist/pypy/jit/hintannotator/ (props changed)
pypy/dist/pypy/jit/hintannotator/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/hintannotator/annotator.py
- copied, changed from r25203, pypy/dist/pypy/jit/hintannotator.py
pypy/dist/pypy/jit/hintannotator/bookkeeper.py
- copied, changed from r25203, pypy/dist/pypy/jit/hintbookkeeper.py
pypy/dist/pypy/jit/hintannotator/container.py
- copied, changed from r25203, pypy/dist/pypy/jit/hintcontainer.py
pypy/dist/pypy/jit/hintannotator/model.py
- copied, changed from r25203, pypy/dist/pypy/jit/hintmodel.py
pypy/dist/pypy/jit/hintannotator/test/ (props changed)
pypy/dist/pypy/jit/hintannotator/test/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/hintannotator/test/test_annotator.py
- copied, changed from r25203, pypy/dist/pypy/jit/test/test_hint_annotation.py
pypy/dist/pypy/jit/hintannotator/vlist.py
- copied, changed from r25203, pypy/dist/pypy/jit/hintvlist.py
pypy/dist/pypy/jit/llabstractinterp/ (props changed)
pypy/dist/pypy/jit/llabstractinterp/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/llabstractinterp/llabstractinterp.py
- copied, changed from r25203, pypy/dist/pypy/jit/llabstractinterp.py
pypy/dist/pypy/jit/llabstractinterp/llcontainer.py
- copied, changed from r25203, pypy/dist/pypy/jit/llcontainer.py
pypy/dist/pypy/jit/llabstractinterp/llvalue.py
- copied unchanged from r25203, pypy/dist/pypy/jit/llvalue.py
pypy/dist/pypy/jit/llabstractinterp/test/ (props changed)
pypy/dist/pypy/jit/llabstractinterp/test/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/llabstractinterp/test/test_jit_tl.py
- copied, changed from r25203, pypy/dist/pypy/jit/test/test_jit_tl.py
pypy/dist/pypy/jit/llabstractinterp/test/test_jit_tlr.py
- copied, changed from r25203, pypy/dist/pypy/jit/test/test_jit_tlr.py
pypy/dist/pypy/jit/llabstractinterp/test/test_llabstractinterp.py
- copied, changed from r25203, pypy/dist/pypy/jit/test/test_llabstractinterp.py
pypy/dist/pypy/jit/llabstractinterp/test/test_vlist.py
- copied, changed from r25203, pypy/dist/pypy/jit/test/test_vlist.py
pypy/dist/pypy/jit/llabstractinterp/vlist.py
- copied, changed from r25203, pypy/dist/pypy/jit/vlist.py
pypy/dist/pypy/jit/timeshifter/ (props changed)
pypy/dist/pypy/jit/timeshifter/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/timeshifter/rtimeshift.py
- copied unchanged from r25207, pypy/dist/pypy/jit/rtimeshift.py
pypy/dist/pypy/jit/timeshifter/rtyper.py
- copied, changed from r25203, pypy/dist/pypy/jit/hintrtyper.py
pypy/dist/pypy/jit/timeshifter/test/ (props changed)
pypy/dist/pypy/jit/timeshifter/test/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/timeshifter/test/test_timeshift.py
- copied, changed from r25207, pypy/dist/pypy/jit/test/test_hint_timeshift.py
pypy/dist/pypy/jit/timeshifter/timeshift.py
- copied, changed from r25205, pypy/dist/pypy/jit/hinttimeshift.py
pypy/dist/pypy/jit/tl/ (props changed)
pypy/dist/pypy/jit/tl/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/tl/opcode.py
- copied unchanged from r25203, pypy/dist/pypy/jit/tlopcode.py
pypy/dist/pypy/jit/tl/test/ (props changed)
pypy/dist/pypy/jit/tl/test/__init__.py
- copied unchanged from r25203, pypy/dist/pypy/jit/__init__.py
pypy/dist/pypy/jit/tl/test/test_tl.py
- copied, changed from r25203, pypy/dist/pypy/jit/test/test_tl.py
pypy/dist/pypy/jit/tl/test/test_tlr.py (contents, props changed)
pypy/dist/pypy/jit/tl/tl.py
- copied, changed from r25203, pypy/dist/pypy/jit/tl.py
pypy/dist/pypy/jit/tl/tlr.py (contents, props changed)
Removed:
pypy/dist/pypy/jit/hintannotator.py
pypy/dist/pypy/jit/hintbookkeeper.py
pypy/dist/pypy/jit/hintcontainer.py
pypy/dist/pypy/jit/hintmodel.py
pypy/dist/pypy/jit/hintrtyper.py
pypy/dist/pypy/jit/hinttimeshift.py
pypy/dist/pypy/jit/hintvlist.py
pypy/dist/pypy/jit/llabstractinterp.py
pypy/dist/pypy/jit/llcontainer.py
pypy/dist/pypy/jit/llvalue.py
pypy/dist/pypy/jit/rtimeshift.py
pypy/dist/pypy/jit/test/
pypy/dist/pypy/jit/tl.py
pypy/dist/pypy/jit/tlopcode.py
pypy/dist/pypy/jit/vlist.py
Log:
(arre, pedronis, arigo)
Split the content of the jit directory in subdirectories.
Added: pypy/dist/pypy/jit/tl/test/test_tlr.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/tl/test/test_tlr.py Sat Apr 1 17:30:08 2006
@@ -0,0 +1,7 @@
+from pypy.jit.tl import tlr
+
+
+def test_square():
+ assert tlr.interpret(tlr.SQUARE, 1) == 1
+ assert tlr.interpret(tlr.SQUARE, 7) == 49
+ assert tlr.interpret(tlr.SQUARE, 9) == 81
Added: pypy/dist/pypy/jit/tl/tlr.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/tl/tlr.py Sat Apr 1 17:30:08 2006
@@ -0,0 +1,73 @@
+from pypy.rpython.objectmodel import hint
+
+
+MOV_A_R = 1
+MOV_R_A = 2
+JUMP_IF_A = 3
+SET_A = 4
+ADD_R_TO_A = 5
+RETURN_A = 6
+ALLOCATE = 7
+NEG_A = 8
+
+
+def interpret(bytecode, a):
+ """Another Toy Language interpreter, this one register-based."""
+ regs = []
+ pc = 0
+ while True:
+ opcode = hint(ord(bytecode[pc]), concrete=True)
+ pc += 1
+ if opcode == MOV_A_R:
+ n = ord(bytecode[pc])
+ pc += 1
+ regs[n] = a
+ elif opcode == MOV_R_A:
+ n = ord(bytecode[pc])
+ pc += 1
+ a = regs[n]
+ elif opcode == JUMP_IF_A:
+ target = ord(bytecode[pc])
+ pc += 1
+ if a:
+ pc = target
+ elif opcode == SET_A:
+ a = ord(bytecode[pc])
+ pc += 1
+ elif opcode == ADD_R_TO_A:
+ n = ord(bytecode[pc])
+ pc += 1
+ a += regs[n]
+ elif opcode == RETURN_A:
+ return a
+ elif opcode == ALLOCATE:
+ n = ord(bytecode[pc])
+ pc += 1
+ regs = [0] * n
+ elif opcode == NEG_A:
+ a = -a
+
+# ____________________________________________________________
+# example bytecode: compute the square of 'a' >= 1
+
+SQUARE_LIST = [
+ ALLOCATE, 3,
+ MOV_A_R, 0, # counter
+ MOV_A_R, 1, # copy of 'a'
+ SET_A, 0,
+ MOV_A_R, 2, # accumulator for the result
+ # 10:
+ SET_A, 1,
+ NEG_A,
+ ADD_R_TO_A, 0,
+ MOV_A_R, 0,
+ MOV_R_A, 2,
+ ADD_R_TO_A, 1,
+ MOV_A_R, 2,
+ MOV_R_A, 0,
+ JUMP_IF_A, 10,
+
+ MOV_R_A, 2,
+ RETURN_A ]
+
+SQUARE = ''.join([chr(n) for n in SQUARE_LIST])
More information about the Pypy-commit
mailing list