Hugo Musso Gualandi il y a 5 ans
Parent
commit
c46107e122
1 fichiers modifiés avec 10 ajouts et 1 suppressions
  1. 10 1
      src/luaot.c

+ 10 - 1
src/luaot.c

@@ -814,7 +814,16 @@ void create_function(Proto *p)
                 println("      Protect(luaT_trybinTM(L, rb, rb, ra, TM_UNM));");
                 break;
             }
-            // case OP_BNOT
+            case OP_BNOT: {
+                println("    TValue *rb = vRB(i);");
+                println("    lua_Integer ib;");
+                println("    if (tointegerns(rb, &ib)) {");
+                println("      setivalue(s2v(ra), intop(^, ~l_castS2U(0), ib));");
+                println("    }");
+                println("    else");
+                println("      Protect(luaT_trybinTM(L, rb, rb, ra, TM_BNOT));");
+                break;
+            }
             // case OP_NOT
             // case OP_LEN
             // case OP_CONCAT