diff --git a/src/Compiler/CInit.ZC b/src/Compiler/CInit.ZC index 54c7ae52..ba50e39d 100755 --- a/src/Compiler/CInit.ZC +++ b/src/Compiler/CInit.ZC @@ -1,26 +1,27 @@ -#define INTERNAL_TYPES_NUM 17 +#define INTERNAL_TYPES_NUM 18 class CInternalType { U8 type, size, name[8]; } internal_types_table[INTERNAL_TYPES_NUM] = { - {RT_I0, 0, "I0i"}, - {RT_I0, 0, "I0"}, - {RT_U0, 0, "U0i"}, - {RT_U0, 0, "U0"}, - {RT_I8, 1, "I8i"}, - {RT_I8, 1, "I8"}, - {RT_I8, 1, "Bool"}, - {RT_U8, 1, "U8i"}, - {RT_U8, 1, "U8"}, - {RT_I16, 2, "I16i"}, - {RT_U16, 2, "U16i"}, - {RT_I32, 4, "I32i"}, - {RT_U32, 4, "U32i"}, - {RT_I64, 8, "I64i"}, - {RT_U64, 8, "U64i"}, - {RT_F64, 8, "F64i"}, - {RT_F64, 8, "F64"}, + {RT_I0, 0, "I0i"}, + {RT_I0, 0, "I0"}, + {RT_U0, 0, "U0i"}, + {RT_U0, 0, "U0"}, + {RT_I8, 1, "I8i"}, + {RT_I8, 1, "I8"}, + {RT_I8, 1, "Bool"}, + {RT_U8, 1, "U8i"}, + {RT_U8, 1, "U8"}, + {RT_I16, 2, "I16i"}, + {RT_U16, 2, "U16i"}, + {RT_I32, 4, "I32i"}, + {RT_U32, 4, "U32i"}, + {RT_I64, 8, "I64i"}, + {RT_U64, 8, "U64i"}, + {RT_F64, 8, "F64i"}, + {RT_F64, 8, "F64"}, + {RT_U128, 16, "U128i"} }; CIntermediateStruct intermediate_code_table[IC_ICS_NUM] = { @@ -230,7 +231,8 @@ U0 CompLoadDefines() "F32\0" "UF32\0" "F64\0" - "UF64\0"); + "UF64\0" + "U128\0"); DefineListLoad("ST_NATURAL_TYPES", "I8\0" diff --git a/src/Kernel/KernelA.HH b/src/Kernel/KernelA.HH index 9444724d..739e60ad 100755 --- a/src/Kernel/KernelA.HH +++ b/src/Kernel/KernelA.HH @@ -110,6 +110,17 @@ I64i union I64 U32 u32[2]; }; +U128i union U128 +{ + I8i i8[16]; + U8i u8[16]; + I16 i16[8]; + U16 u16[8]; + I32 i32[4]; + U32 u32[4]; + U64 u64[2]; + I64 i64[2]; +}; #help_index "Math/Complex;Data Types/Complex" public class Complex { @@ -1708,7 +1719,8 @@ public class CAutoCompleteDictGlobals #define RT_UF32 13 //Not implemented, Fictitious #define RT_F64 14 #define RT_UF64 15 //Fictitious -#define RT_RTS_NUM 16 +#define RT_U128 16 +#define RT_RTS_NUM 17 #define RTF_UNSIGNED 1 #define RTG_MASK 0xFF