Author: Amaury Forgeot d'Arc <amaur...@gmail.com>
Branch: py3k
Changeset: r48186:4f2915663f8e
Date: 2011-10-18 08:24 +0200
http://bitbucket.org/pypy/pypy/changeset/4f2915663f8e/

Log:    It appears that all opcodes must be present in PyFrame, even if the
        compiler does not emit them.

diff --git a/pypy/interpreter/nestedscope.py b/pypy/interpreter/nestedscope.py
--- a/pypy/interpreter/nestedscope.py
+++ b/pypy/interpreter/nestedscope.py
@@ -213,6 +213,9 @@
         cell = self.cells[varindex]
         cell.set(w_newvalue)
 
+    def DELETE_DEREF(self, varindex, next_instr):
+        raise NotImplementedError
+
     @jit.unroll_safe
     def MAKE_CLOSURE(self, numdefaults, next_instr):
         w_codeobj = self.popvalue()
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -362,20 +362,13 @@
         self.pushvalue(w_3)
         self.pushvalue(w_2)
 
-    def ROT_FOUR(self, oparg, next_instr):
-        w_1 = self.popvalue()
-        w_2 = self.popvalue()
-        w_3 = self.popvalue()
-        w_4 = self.popvalue()
-        self.pushvalue(w_1)
-        self.pushvalue(w_4)
-        self.pushvalue(w_3)
-        self.pushvalue(w_2)
-
     def DUP_TOP(self, oparg, next_instr):
         w_1 = self.peekvalue()
         self.pushvalue(w_1)
 
+    def DUP_TOP_TWO(self, oparg, next_instr):
+        self.dupvalues(2)
+
     def DUP_TOPX(self, itemcount, next_instr):
         assert 1 <= itemcount <= 5, "limitation of the current interpreter"
         self.dupvalues(itemcount)
@@ -539,6 +532,9 @@
         if plain:
             self.setdictscope(w_locals)
 
+    def POP_EXCEPT(self, oparg, next_instr):
+        raise NotImplementedError
+
     def POP_BLOCK(self, oparg, next_instr):
         block = self.pop_block()
         block.cleanup(self)  # the block knows how to clean up the value stack
@@ -585,6 +581,9 @@
         items = self.space.fixedview_unroll(w_iterable, itemcount)
         self.pushrevvalues(itemcount, items)
 
+    def UNPACK_EX(self, oparg, next_instr):
+        raise NotImplementedError
+
     def STORE_ATTR(self, nameindex, next_instr):
         "obj.attributename = newvalue"
         w_attributename = self.getname_w(nameindex)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to