More...
Go to the source code of this file.
|
#define | MRB_FIXNUM_MIN INT32_MIN |
|
#define | MRB_FIXNUM_MAX INT32_MAX |
|
#define | SET_FLOAT_VALUE(mrb, r, f) |
|
#define | mrb_float_p(o) |
|
#define | mrb_nb_tt(o) |
|
#define | NANBOX_SET_MISC_VALUE(r, t, i) |
|
#define | mrb_float(o) |
|
#define | mrb_fixnum(o) |
|
#define | mrb_integer(o) |
|
#define | mrb_symbol(o) |
|
#define | mrb_ptr(o) |
|
#define | mrb_cptr(o) |
|
#define | NANBOX_SET_VALUE(o, tt, v) |
|
#define | SET_NIL_VALUE(r) |
|
#define | SET_FALSE_VALUE(r) |
|
#define | SET_TRUE_VALUE(r) |
|
#define | SET_BOOL_VALUE(r, b) |
|
#define | SET_INT_VALUE(mrb, r, n) |
|
#define | SET_FIXNUM_VALUE(r, n) |
|
#define | SET_SYM_VALUE(r, v) |
|
#define | SET_OBJ_VALUE(r, v) |
|
#define | SET_CPTR_VALUE(mrb, r, v) |
|
#define | SET_UNDEF_VALUE(r) |
|
#define | mrb_immediate_p(o) |
|
#define | mrb_nil_p(o) |
|
#define | mrb_false_p(o) |
|
#define | mrb_fixnum_p(o) |
|
|
typedef struct mrb_value | mrb_value |
|
|
enum | mrb_nanbox_tt_inline { MRB_NANBOX_TT_OBJECT = 0
, MRB_NANBOX_TT_INTEGER = 1
, MRB_NANBOX_TT_MISC = 2
, MRB_NANBOX_TT_CPTR = 3
} |
|
See Copyright Notice in mruby.h
◆ mrb_cptr
Value:((void*)(uintptr_t)(0xffffffffffffULL&(o).u))
◆ mrb_false_p
Value:(mrb_type(o) == MRB_TT_FALSE || (o).u == 0)
◆ mrb_fixnum
Value:((mrb_int)(((uintptr_t)0xffffffff)&((o).u)))
◆ mrb_fixnum_p
#define mrb_fixnum_p |
( |
| o | ) |
|
Value:(!mrb_float_p(o) && mrb_nb_tt(o)==MRB_NANBOX_TT_INTEGER)
◆ mrb_float
Value:mrb_nan_boxing_value_float(o)
◆ mrb_float_p
Value:(((uint64_t)((o).u)&0xfffc000000000000) != 0)
◆ mrb_immediate_p
#define mrb_immediate_p |
( |
| o | ) |
|
Value:((mrb_float_p(o) || mrb_nb_tt(o) != MRB_NANBOX_TT_OBJECT) || (o).u == 0)
◆ mrb_integer
◆ mrb_nb_tt
Value:((enum mrb_nanbox_tt_inline)((uint32_t)((o).u>>48)&3))
◆ mrb_nil_p
◆ mrb_ptr
Value:((void*)(uintptr_t)(o).u)
◆ mrb_symbol
Value:((
mrb_sym)((uintptr_t)0xffffffff)&((o).u))
◆ NANBOX_SET_MISC_VALUE
#define NANBOX_SET_MISC_VALUE |
( |
| r, |
|
|
| t, |
|
|
| i ) |
Value:NANBOX_SET_VALUE(r, MRB_NANBOX_TT_MISC, ((uint64_t)(t)<<32) | (i))
◆ NANBOX_SET_VALUE
#define NANBOX_SET_VALUE |
( |
| o, |
|
|
| tt, |
|
|
| v ) |
Value: do { \
(o).u = ((uint64_t)(tt)<<48) | ((uint64_t)(v)); \
} while (0)
◆ SET_BOOL_VALUE
#define SET_BOOL_VALUE |
( |
| r, |
|
|
| b ) |
Value:NANBOX_SET_MISC_VALUE(r, (b) ? MRB_TT_TRUE : MRB_TT_FALSE, 1)
◆ SET_CPTR_VALUE
#define SET_CPTR_VALUE |
( |
| mrb, |
|
|
| r, |
|
|
| v ) |
Value:NANBOX_SET_VALUE(r, MRB_NANBOX_TT_CPTR, (uint64_t)(uintptr_t)(v) & 0x0000ffffffffffffULL)
◆ SET_FALSE_VALUE
#define SET_FALSE_VALUE |
( |
| r | ) |
|
Value:NANBOX_SET_MISC_VALUE(r, MRB_TT_FALSE, 1)
◆ SET_FIXNUM_VALUE
#define SET_FIXNUM_VALUE |
( |
| r, |
|
|
| n ) |
Value:NANBOX_SET_VALUE(r, MRB_NANBOX_TT_INTEGER, (uint32_t)(n))
◆ SET_FLOAT_VALUE
#define SET_FLOAT_VALUE |
( |
| mrb, |
|
|
| r, |
|
|
| f ) |
Value: do { \
union { \
mrb_float f; \
uint64_t u; \
} float_uint_union; \
if ((f) != (f)) { \
float_uint_union.u = 0x7ff8000000000000UL; \
} \
else { \
float_uint_union.f = (f); \
} \
r.u = float_uint_union.u + 0x8004000000000000; \
} while(0)
◆ SET_INT_VALUE
#define SET_INT_VALUE |
( |
| mrb, |
|
|
| r, |
|
|
| n ) |
◆ SET_NIL_VALUE
#define SET_NIL_VALUE |
( |
| r | ) |
|
◆ SET_OBJ_VALUE
#define SET_OBJ_VALUE |
( |
| r, |
|
|
| v ) |
Value:do {(r).u = (uint64_t)(uintptr_t)(v);} while (0)
◆ SET_SYM_VALUE
#define SET_SYM_VALUE |
( |
| r, |
|
|
| v ) |
Value:NANBOX_SET_MISC_VALUE(r, MRB_TT_SYMBOL, (uint32_t)(v))
◆ SET_TRUE_VALUE
#define SET_TRUE_VALUE |
( |
| r | ) |
|
Value:NANBOX_SET_MISC_VALUE(r, MRB_TT_TRUE, 1)
◆ SET_UNDEF_VALUE
#define SET_UNDEF_VALUE |
( |
| r | ) |
|
Value:NANBOX_SET_MISC_VALUE(r, MRB_TT_UNDEF, 4)