bif.c
Include dependency graph for bif.c:
Defines
-
RAISE_ERROR(error_type_atom)
ctx->x[0] = ERROR_ATOM; \
ctx->x[1] = (error_type_atom); \
return
term_invalid_term();
-
RAISE_ERROR_BIF(fail_label, error_type_atom)
if (fail_label == 0) { \
ctx->x[0] = ERROR_ATOM; \
ctx->x[1] = (error_type_atom); \
} \
return
term_invalid_term();
-
VALIDATE_VALUE_BIF(fail_label, value, verify_function) if (UNLIKELY(!verify_function((value)))) { \
RAISE_ERROR_BIF
(fail_label, BADARG_ATOM); \
}
-
MAX(a, b) ((a) > (b) ? (a) : (b))
-
INT64_MIN_AS_AVM_FLOAT -9223372036854776832.0
-
INT64_MAX_AS_AVM_FLOAT 9223372036854775295.0
Typedefs
-
typedef int64_t (*bitwise_op)(int64_t a, int64_t b)
-
typedef size_t (*bitwise_big_op)(const intn_digit_t m[], size_t m_len, intn_integer_sign_t m_sign, const intn_digit_t n[], size_t n_len, intn_integer_sign_t n_sign, intn_digit_t out[], intn_integer_sign_t *out_sign)
Functions
-
const struct ExportedFunction *bif_registry_get_handler(const char *mfa)
-
term bif_erlang_binary_part_3(Context *ctx, uint32_t fail_label, int live, term arg1, term arg2, term arg3)
-
static inline term make_boxed_int(Context *ctx, uint32_t fail_label, uint32_t live, avm_int_t value)
-
static inline term make_boxed_int64(Context *ctx, uint32_t fail_label, uint32_t live, avm_int64_t value)
-
static inline term make_maybe_boxed_int(Context *ctx, uint32_t fail_label, uint32_t live, avm_int_t value)
-
static inline term make_maybe_boxed_int64(Context *ctx, uint32_t fail_label, uint32_t live, avm_int64_t value)
-
static term make_bigint(Context *ctx, uint32_t fail_label, uint32_t live, const intn_digit_t bigres[], size_t bigres_len, intn_integer_sign_t sign)
-
static void conv_term_to_bigint(term t, intn_digit_t *tmp_buf, const intn_digit_t **bigint, size_t *bigint_len, intn_integer_sign_t *bigint_sign)
-
static term add_int64_to_bigint(Context *ctx, uint32_t fail_label, uint32_t live, int64_t val1, int64_t val2)
-
static term add_maybe_bigint(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term add_overflow_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term add_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term sub_int64_to_bigint(Context *ctx, uint32_t fail_label, uint32_t live, int64_t val1, int64_t val2)
-
static term sub_maybe_bigint(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term sub_overflow_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term sub_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term mul_int64_to_bigint(Context *ctx, uint32_t fail_label, uint32_t live, int64_t val1, int64_t val2)
-
static term mul_maybe_bigint(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term mul_overflow_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term mul_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term div_maybe_bigint(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term div_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term rem_maybe_bigint(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term rem_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term float_to_integer_helper(avm_float_t fresult, Context *ctx, uint32_t fail_label, int live)
-
static inline term bitwise_helper(Context *ctx, uint32_t fail_label, int live, term arg1, term arg2, bitwise_op op, bitwise_big_op big_op)
-
static inline int64_t bor(int64_t a, int64_t b)
-
static inline int64_t band(int64_t a, int64_t b)
-
static inline int64_t bxor(int64_t a, int64_t b)
-
term bif_erlang_binary_to_atom_2(Context *ctx, uint32_t fail_label, int live, term arg1, term arg2)