@@ -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