소스 검색

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: {