/
Genesis-1.0p36-DEV/
Genesis-1.0p36-DEV/bin/
Genesis-1.0p36-DEV/doc/
Genesis-1.0p36-DEV/etc/
Genesis-1.0p36-DEV/src/data/
/*
// Full copyright information is available in the file ../doc/CREDITS
*/

#define NATIVE_MODULE "$integer"

#include "cdc.h"

NATIVE_METHOD(and) {
    Int val;

    INIT_2_ARGS(INTEGER, INTEGER);

    val = (Int) INT1 & INT2;

    CLEAN_RETURN_INTEGER(val);
}

NATIVE_METHOD(or) {
    Int val;

    INIT_2_ARGS(INTEGER, INTEGER);

    val = (Int) INT1 | INT2;

    CLEAN_RETURN_INTEGER(val);
}

NATIVE_METHOD(xor) {
    Int val;

    INIT_2_ARGS(INTEGER, INTEGER);

    val = (Int) INT1 ^ INT2;

    CLEAN_RETURN_INTEGER(val);
}

NATIVE_METHOD(shleft) {
    Int val;

    INIT_2_ARGS(INTEGER, INTEGER);

    val = (Int) INT1 << INT2;

    CLEAN_RETURN_INTEGER(val);
}

NATIVE_METHOD(shright) {
    Int val;

    INIT_2_ARGS(INTEGER, INTEGER);

    val = (Int) INT1 >> INT2;

    CLEAN_RETURN_INTEGER(val);
}

NATIVE_METHOD(not) {
    Int val;

    INIT_1_ARG(INTEGER);

    val = (Int) ~ INT1;

    CLEAN_RETURN_INTEGER(val);
}