static mrb_value flo_rev(mrb_state *mrb, mrb_value x) { int64_t v1; mrb_get_args(mrb, ""); v1 = (int64_t)mrb_float(x); return int64_value(mrb, ~v1); }
static mrb_value flo_xor(mrb_state *mrb, mrb_value x) { mrb_value y; int64_t v1, v2; mrb_get_args(mrb, "o", &y); v1 = (int64_t)mrb_float(x); v2 = value_int64(mrb, y); return int64_value(mrb, v1 ^ v2); }
long int32_value(char *src, cell x) { long long v = int64_value(src, x); long w; char msg[128]; w = (long) v; if (v != w) { sprintf(msg, "%s: int32 too big", src); error(msg, x); } return w; }