blueloveTH 2 лет назад
Родитель
Сommit
b8100bcce5
3 измененных файлов с 5 добавлено и 5 удалено
  1. 1 1
      include/pocketpy/opcodes.h
  2. 3 2
      src/ceval.cpp
  3. 1 2
      src/expr.cpp

+ 1 - 1
include/pocketpy/opcodes.h

@@ -90,7 +90,7 @@ OPCODE(LOOP_CONTINUE)
 OPCODE(LOOP_BREAK)
 OPCODE(GOTO)
 /**************************/
-OPCODE(EVAL)
+OPCODE(EVAL_CONST)
 OPCODE(REPR)
 OPCODE(CALL)
 OPCODE(CALL_TP)

+ 3 - 2
src/ceval.cpp

@@ -568,9 +568,10 @@ __NEXT_STEP:;
         frame->jump_abs_break(index);
     } DISPATCH();
     /*****************************************/
-    TARGET(EVAL){
+    TARGET(EVAL_CONST){
         PyObject* _0 = builtins->attr(pk_id_eval);
-        TOP() = call(_0, TOP());
+        PyObject* _1 = co_consts[byte.arg];
+        PUSH(call(_0, _1));
     } DISPATCH();
     TARGET(REPR)
         TOP() = py_repr(TOP());

+ 1 - 2
src/expr.cpp

@@ -392,8 +392,7 @@ namespace pkpy{
             }
         }else{
             int index = ctx->add_const(py_var(ctx->vm, expr));
-            ctx->emit_(OP_LOAD_CONST, index, line);
-            ctx->emit_(OP_EVAL, BC_NOARG, line);
+            ctx->emit_(OP_EVAL_CONST, index, line);
         }
         if(repr){
             ctx->emit_(OP_REPR, BC_NOARG, line);