浏览代码

OP_TESTSET

Hugo Musso Gualandi 5 年之前
父节点
当前提交
ba647e54e8
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      src/luaot.c

+ 10 - 1
src/luaot.c

@@ -870,7 +870,16 @@ void create_function(Proto *p)
                 println("    docondjump();");
                 break;
             }
-            // case OP_TESTSET
+            case OP_TESTSET: {
+                println("    TValue *rb = vRB(i);");
+                println("    if (l_isfalse(rb) == GETARG_k(i))");
+                println("      goto LUA_AOT_SKIP1;"); // (!)
+                println("    else {");
+                println("      setobj2s(L, ra, rb);");
+                println("      donextjump(ci);");
+                println("    }");
+                break;
+            }
             // case OP_CALL
             // case OP_TAILCAL
             case OP_RETURN: {