Field
Name
BYTE
SHORT
CHAR
INT
LONG
FLOAT
DOUBLE
OBJECT


#define PRIMITIVE_TYPE(x) ((x) & 0x07)
#define ARRAY_TYPE(x)     (((x) >> 3) & 0x03)
#define ADDRESS_MODE(x)   (((x) >> 5) & 0x03)

#define GET_DATA_TYPE(input, primitiveType, dimensionBits, addressMode) do { \
    primitiveType = (input) & 0x07; \
    dimensionBits = ((input) & 0x70) >> 4; \
    addressMode = ((input) & 0xC0) >> 6; \
} while (0)

#define ENCODE_DATA_TYPE(data, primitive, dimension, addressing) \
    ((data) = (primitive & 0x07) | ((dimension << 4) & 0x70) | ((addressing << 6) & 0xC0))

#define STRING_MAX 256
   //------
#define C_STRUCT    0x01
#define JS_OBJECT   0x02
#define JAVA_OBJECT 0x03


//-- array  dimension bits xxx111xxx
#define DATA_P             0 // 1 primitive
#define DATA_ARRAY         1 // array of primitives
#define DATA_2D_ARRAY      2  //2d...
#define DATA_3D_ARRAY      3
#define DATA_4D_ARRAY      4  //
#define DATA_5D_ARRAY      5
#define DATA_6D_ARRAY      6
#define DATA_CUSTOM        7 //

"heap",
"stack",
"shared",
"gpu",
"cloud",
"registry",
"page