| #include <emscripten.h> | |
| // unary | |
| int EMSCRIPTEN_KEEPALIVE clz(int x) { return __builtin_clz(x); } | |
| // binary | |
| int EMSCRIPTEN_KEEPALIVE add(int x, int y) { return x + y; } | |
| int EMSCRIPTEN_KEEPALIVE sub(int x, int y) { return x - y; } | |
| int EMSCRIPTEN_KEEPALIVE mul(int x, int y) { return x * y; } | |
| int EMSCRIPTEN_KEEPALIVE sdiv(int x, int y) { return x / y; } | |
| unsigned EMSCRIPTEN_KEEPALIVE udiv(unsigned x, unsigned y) { return x / y; } | |
| int EMSCRIPTEN_KEEPALIVE srem(int x, int y) { return x % y; } | |
| unsigned EMSCRIPTEN_KEEPALIVE urem(unsigned x, unsigned y) { return x % y; } | |
| int EMSCRIPTEN_KEEPALIVE and (int x, int y) { return x & y; } | |
| int EMSCRIPTEN_KEEPALIVE or (int x, int y) { return x | y; } | |
| int EMSCRIPTEN_KEEPALIVE xor | |
| (int x, int y) { return x ^ y; } int EMSCRIPTEN_KEEPALIVE shl(int x, int y) { | |
| return x << y; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE sshr(int x, int y) { return x >> y; } | |
| unsigned EMSCRIPTEN_KEEPALIVE ushr(unsigned x, unsigned y) { return x >> y; } | |
| // comparisons | |
| int EMSCRIPTEN_KEEPALIVE eq(int x, int y) { return x == y; } | |
| int EMSCRIPTEN_KEEPALIVE ne(int x, int y) { return x != y; } | |
| int EMSCRIPTEN_KEEPALIVE lts(int x, int y) { return x < y; } | |
| int EMSCRIPTEN_KEEPALIVE ltu(unsigned x, unsigned y) { return x < y; } | |
| int EMSCRIPTEN_KEEPALIVE les(int x, int y) { return x <= y; } | |
| int EMSCRIPTEN_KEEPALIVE leu(unsigned x, unsigned y) { return x <= y; } | |
| int EMSCRIPTEN_KEEPALIVE gts(int x, int y) { return x > y; } | |
| int EMSCRIPTEN_KEEPALIVE gtu(unsigned x, unsigned y) { return x > y; } | |
| int EMSCRIPTEN_KEEPALIVE ges(int x, int y) { return x >= y; } | |
| int EMSCRIPTEN_KEEPALIVE geu(unsigned x, unsigned y) { return x >= y; } |