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