| /* |
| |
| ** $Id: lubit.c,v 1.00 2011/10/30 17:17:17 jano Exp $ |
| |
| ** Code generator for Lua |
| |
| ** See Copyright Notice in lua.h |
| |
| */ |
| |
| |
| |
| |
| |
| #define lubit_c |
| |
| #define LUA_CORE |
| |
| |
| |
| #include "lua.h" |
| |
| |
| |
| #include "lubit.h" |
| |
| |
| |
| #ifdef GCW_BIT |
| |
| lua_Number bit_and(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| lua_Unsigned u1,u2; |
| |
| lua_number2unsigned(u1,v1); |
| |
| lua_number2unsigned(u2,v2); |
| |
| return lua_unsigned2number(u1 & u2); |
| |
| } |
| |
| lua_Number bit_or(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| lua_Unsigned u1,u2; |
| |
| lua_number2unsigned(u1,v1); |
| |
| lua_number2unsigned(u2,v2); |
| |
| return lua_unsigned2number(u1 | u2); |
| |
| } |
| |
| lua_Number bit_xor(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| lua_Unsigned u1,u2; |
| |
| lua_number2unsigned(u1,v1); |
| |
| lua_number2unsigned(u2,v2); |
| |
| return lua_unsigned2number(u1 ^ u2); |
| |
| } |
| |
| lua_Number bit_lshift(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| lua_Unsigned u1,u2; |
| |
| lua_number2unsigned(u1,v1); |
| |
| lua_number2unsigned(u2,v2); |
| |
| return lua_unsigned2number(u1 << u2); |
| |
| } |
| |
| lua_Number bit_rshift(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| lua_Unsigned u1,u2; |
| |
| lua_number2unsigned(u1,v1); |
| |
| lua_number2unsigned(u2,v2); |
| |
| return lua_unsigned2number(u1 >> u2); |
| |
| } |
| |
| lua_Number bit_not(lua_State *L, lua_Number v1) { |
| |
| lua_Unsigned u1; |
| |
| lua_number2unsigned(u1, v1); |
| |
| return lua_unsigned2number(~ u1); |
| |
| } |
| |
| |
| |
| lua_Number log_and(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| return (v1 && v2); |
| |
| } |
| |
| lua_Number log_or(lua_State *L, lua_Number v1, lua_Number v2) { |
| |
| return (v1 || v2); |
| |
| } |
| |
| lua_Number log_not(lua_State *L, lua_Number v1) { |
| |
| return (! v1); |
| |
| } |
| |
| #endif |
| |
| |
| |
| |
| |