From f36534f8f6d4ea68f4bc24a6293cf599ff1554cb Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 10 Sep 2020 13:29:57 -0500 Subject: [PATCH] finished initial version of SIMD instructions --- core/simd_intrinsics.onyx | 34 ++-- include/onyxwasm.h | 3 + onyx | Bin 641080 -> 694136 bytes progs/poly_test.onyx | 8 +- progs/simd_test.onyx | 21 +-- src/onyxtypes.c | 2 + src/onyxwasm.c | 322 +++++++++++++++++++++++++++++++++++++- 7 files changed, 355 insertions(+), 35 deletions(-) diff --git a/core/simd_intrinsics.onyx b/core/simd_intrinsics.onyx index 31358bca..bbd88a76 100644 --- a/core/simd_intrinsics.onyx +++ b/core/simd_intrinsics.onyx @@ -18,28 +18,28 @@ f32x4_const :: proc (b1: f32, b2: f32, b3: f32, b4: f32) -> f32x4 #intrinsic f64x2_const :: proc (b1: f64, b2: f64) -> f64x2 #intrinsic --- // NOTE: These u8 values must be compile time known values. -i8x16_shuffle :: proc (v: v128, +i8x16_shuffle :: proc (a: v128, b: v128, b1: u8, b2: u8, b3: u8, b4: u8, b5: u8, b6: u8, b7: u8, b8: u8, b9: u8, b10: u8, b11: u8, b12: u8, b13: u8, b14: u8, b15: u8, b16: u8) -> v128 #intrinsic --- -i8x16_extract_lane_s :: proc (v: i8x16, l: u8) -> i8 #intrinsic --- -i8x16_extract_lane_u :: proc (v: i8x16, l: u8) -> u8 #intrinsic --- -i8x16_replace_lane :: proc (v: i8x16, l: u8, val: i8) -> i8x16 #intrinsic --- -i16x8_extract_lane_s :: proc (v: i16x8, l: u8) -> i16 #intrinsic --- -i16x8_extract_lane_u :: proc (v: i16x8, l: u8) -> u16 #intrinsic --- -i16x8_replace_lane :: proc (v: i16x8, l: u8, val: i16) -> i16x8 #intrinsic --- -i32x4_extract_lane :: proc (v: i32x4, l: u8) -> i32 #intrinsic --- -i32x4_replace_lane :: proc (v: i32x4, l: u8, val: i32) -> i32x4 #intrinsic --- -i64x2_extract_lane :: proc (v: i64x2, l: u8) -> i64 #intrinsic --- -i64x2_replace_lane :: proc (v: i64x2, l: u8, val: i64) -> i64x2 #intrinsic --- -f32x4_extract_lane :: proc (v: f32x4, l: u8) -> f32 #intrinsic --- -f32x4_replace_lane :: proc (v: f32x4, l: u8, val: f32) -> f32x4 #intrinsic --- -f64x2_extract_lane :: proc (v: f64x2, l: u8) -> f64 #intrinsic --- -f64x2_replace_lane :: proc (v: f64x2, l: u8, val: f64) -> f64x2 #intrinsic --- - -i8x16_swizzle :: proc (v: v128) -> v128 #intrinsic --- +i8x16_extract_lane_s :: proc (v: i8x16, l: u32) -> i8 #intrinsic --- +i8x16_extract_lane_u :: proc (v: i8x16, l: u32) -> u8 #intrinsic --- +i8x16_replace_lane :: proc (v: i8x16, l: u32, val: i8) -> i8x16 #intrinsic --- +i16x8_extract_lane_s :: proc (v: i16x8, l: u32) -> i16 #intrinsic --- +i16x8_extract_lane_u :: proc (v: i16x8, l: u32) -> u16 #intrinsic --- +i16x8_replace_lane :: proc (v: i16x8, l: u32, val: i16) -> i16x8 #intrinsic --- +i32x4_extract_lane :: proc (v: i32x4, l: u32) -> i32 #intrinsic --- +i32x4_replace_lane :: proc (v: i32x4, l: u32, val: i32) -> i32x4 #intrinsic --- +i64x2_extract_lane :: proc (v: i64x2, l: u32) -> i64 #intrinsic --- +i64x2_replace_lane :: proc (v: i64x2, l: u32, val: i64) -> i64x2 #intrinsic --- +f32x4_extract_lane :: proc (v: f32x4, l: u32) -> f32 #intrinsic --- +f32x4_replace_lane :: proc (v: f32x4, l: u32, val: f32) -> f32x4 #intrinsic --- +f64x2_extract_lane :: proc (v: f64x2, l: u32) -> f64 #intrinsic --- +f64x2_replace_lane :: proc (v: f64x2, l: u32, val: f64) -> f64x2 #intrinsic --- + +i8x16_swizzle :: proc (v: v128, s: v128) -> v128 #intrinsic --- i8x16_splat :: proc (val: i8) -> i8x16 #intrinsic --- i16x8_splat :: proc (val: i16) -> i16x8 #intrinsic --- i32x4_splat :: proc (val: i32) -> i32x4 #intrinsic --- diff --git a/include/onyxwasm.h b/include/onyxwasm.h index 88d3e817..6bbd2202 100644 --- a/include/onyxwasm.h +++ b/include/onyxwasm.h @@ -492,6 +492,9 @@ typedef struct StrLitInfo { typedef struct OnyxWasmModule { bh_allocator allocator; + bh_arena *extended_instr_data; + bh_allocator extended_instr_alloc; + // NOTE: Mapping ptrs to function / global indicies bh_imap index_map; diff --git a/onyx b/onyx index 3c270817360993f357943ea61cde9c2f7e9c7889..efe0a3be8e7ef743d2aaa53610409a154925250c 100755 GIT binary patch delta 174713 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%0Dn>y)D5d)8O(i@4EPFy7-;s~dtQtvF@ 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.flags & Basic_Flag_Integer) && (t2->Basic.flags & Basic_Flag_Integer)) { return t1->Basic.size == t2->Basic.size; } + + if (t1->Basic.kind == Basic_Kind_V128 || t2->Basic.kind == Basic_Kind_V128) return 1; } if (t1->Basic.kind == Basic_Kind_Rawptr && type_is_pointer(t2)) { diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 775454f8..b9312e9e 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -360,6 +360,7 @@ static u64 local_lookup_idx(LocalAllocator* la, u64 value) { #define WI(instr) bh_arr_push(code, ((WasmInstruction){ instr, 0x00 })) #define WID(instr, data) bh_arr_push(code, ((WasmInstruction){ instr, data })) #define WIL(instr, data) bh_arr_push(code, ((WasmInstruction){ instr, { .l = data } })) +#define WIP(instr, data) bh_arr_push(code, ((WasmInstruction){ instr, { .p = data } })) #define EMIT_FUNC(kind, ...) static void emit_ ## kind (OnyxWasmModule* mod, bh_arr(WasmInstruction)* pcode, __VA_ARGS__) EMIT_FUNC(function_body, AstFunction* fd); @@ -1093,7 +1094,7 @@ EMIT_FUNC(switch, AstSwitch* switch_node) { } u64 count = switch_node->max_case + 1 - switch_node->min_case; - BranchTable* bt = bh_alloc(global_heap_allocator, sizeof(BranchTable) + sizeof(u32) * count); + BranchTable* bt = bh_alloc(mod->extended_instr_alloc, sizeof(BranchTable) + sizeof(u32) * count); bt->count = count; bt->default_case = block_num; fori (i, 0, bt->count) bt->cases[i] = bt->default_case; @@ -1367,14 +1368,58 @@ EMIT_FUNC(call, AstCall* call) { *pcode = code; } +// BUG: This implementation assumes that the host system C's implementation is using +// little endian integers. +#define SIMD_INT_CONST_INTRINSIC(type, count) { \ + type* byte_buffer = bh_alloc(mod->extended_instr_alloc, 16); \ + AstArgument* arg = call->arguments; \ + fori (i, 0, count) { \ + if (arg->value->kind != Ast_Kind_NumLit) { \ + onyx_report_error(arg->token->pos, \ + "SIMD constants expect compile time constants as parameters. The %d%s parameter was not.", \ + i, bh_num_suffix(i)); \ + *pcode = code; \ + return; \ + } \ + byte_buffer[i] = (type) ((AstNumLit *) arg->value)->value.l; \ + arg = (AstArgument *) arg->next; \ + } \ + WIP(WI_V128_CONST, byte_buffer); \ + } + +#define SIMD_LANE_INSTR(instr, arg) \ + emit_expression(mod, &code, arg->value);\ + arg = (AstArgument *) arg->next; \ + if (arg->value->kind != Ast_Kind_NumLit) { \ + onyx_report_error(arg->token->pos, "SIMD lane instructions expect a compile time lane number."); \ + *pcode = code; \ + return; \ + } \ + WID(instr, (u8) ((AstNumLit *) arg->value)->value.i); + + EMIT_FUNC(intrinsic_call, AstIntrinsicCall* call) { bh_arr(WasmInstruction) code = *pcode; - i32 place_arguments_normally = 1; + b32 place_arguments_normally = 1; + + switch (call->intrinsic) { + case ONYX_INTRINSIC_V128_CONST: + case ONYX_INTRINSIC_I8X16_CONST: case ONYX_INTRINSIC_I16X8_CONST: + case ONYX_INTRINSIC_I32X4_CONST: case ONYX_INTRINSIC_I64X2_CONST: + case ONYX_INTRINSIC_F32X4_CONST: case ONYX_INTRINSIC_F64X2_CONST: + case ONYX_INTRINSIC_I8X16_EXTRACT_LANE_S: case ONYX_INTRINSIC_I8X16_EXTRACT_LANE_U: + case ONYX_INTRINSIC_I16X8_EXTRACT_LANE_S: case ONYX_INTRINSIC_I16X8_EXTRACT_LANE_U: + case ONYX_INTRINSIC_I32X4_EXTRACT_LANE: case ONYX_INTRINSIC_I64X2_EXTRACT_LANE: + case ONYX_INTRINSIC_F32X4_EXTRACT_LANE: case ONYX_INTRINSIC_F64X2_EXTRACT_LANE: + case ONYX_INTRINSIC_I8X16_REPLACE_LANE: case ONYX_INTRINSIC_I16X8_REPLACE_LANE: + case ONYX_INTRINSIC_I32X4_REPLACE_LANE: case ONYX_INTRINSIC_I64X2_REPLACE_LANE: + case ONYX_INTRINSIC_F32X4_REPLACE_LANE: case ONYX_INTRINSIC_F64X2_REPLACE_LANE: + case ONYX_INTRINSIC_I8X16_SHUFFLE: + place_arguments_normally = 0; - // NOTE: Doing this in case there becomes intrinsics that the arguments - // are not placed as they normally would be - if (0) place_arguments_normally = 0; + default: break; + } if (place_arguments_normally) { for (AstArgument *arg = call->arguments; @@ -1432,6 +1477,252 @@ EMIT_FUNC(intrinsic_call, AstIntrinsicCall* call) { case ONYX_INTRINSIC_F64_MAX: WI(WI_F64_MAX); break; case ONYX_INTRINSIC_F64_COPYSIGN: WI(WI_F64_COPYSIGN); break; + case ONYX_INTRINSIC_I8X16_CONST: + case ONYX_INTRINSIC_V128_CONST: SIMD_INT_CONST_INTRINSIC(u8, 16); break; + case ONYX_INTRINSIC_I16X8_CONST: SIMD_INT_CONST_INTRINSIC(u16, 8); break; + case ONYX_INTRINSIC_I32X4_CONST: SIMD_INT_CONST_INTRINSIC(u32, 4); break; + case ONYX_INTRINSIC_I64X2_CONST: SIMD_INT_CONST_INTRINSIC(u64, 2); break; + case ONYX_INTRINSIC_F32X4_CONST: { + f32* byte_buffer = bh_alloc(mod->extended_instr_alloc, 16); + AstArgument* arg = call->arguments; + fori (i, 0, 4) { + if (arg->value->kind != Ast_Kind_NumLit) { + onyx_report_error(arg->token->pos, + "SIMD constants expect compile time constants as parameters. The %d%s parameter was not.", + i, bh_num_suffix(i)); + *pcode = code; + return; + } + byte_buffer[i] = (f32) ((AstNumLit *) arg->value)->value.f; + arg = (AstArgument *) arg->next; + } + WIP(WI_V128_CONST, byte_buffer); + break; + } + + case ONYX_INTRINSIC_F64X2_CONST: { + f64* byte_buffer = bh_alloc(mod->extended_instr_alloc, 16); + AstArgument* arg = call->arguments; + fori (i, 0, 2) { + if (arg->value->kind != Ast_Kind_NumLit) { + onyx_report_error(arg->token->pos, + "SIMD constants expect compile time constants as parameters. The %d%s parameter was not.", + i, bh_num_suffix(i)); + *pcode = code; + return; + } + byte_buffer[i] = (f64) ((AstNumLit *) arg->value)->value.d; + arg = (AstArgument *) arg->next; + } + WIP(WI_V128_CONST, byte_buffer); + break; + } + + case ONYX_INTRINSIC_I8X16_SHUFFLE: { + u8* byte_buffer = bh_alloc(mod->extended_instr_alloc, 16); + AstArgument* arg = call->arguments; + + // NOTE: There are two parameters that have to be outputted before + // the immediate bytes + emit_expression(mod, &code, arg->value); + arg = (AstArgument *) arg->next; + emit_expression(mod, &code, arg->value); + arg = (AstArgument *) arg->next; + + fori (i, 0, 16) { + if (arg->value->kind != Ast_Kind_NumLit) { + onyx_report_error(arg->token->pos, + "SIMD constants expect compile time constants as parameters. The %d%s parameter was not.", + i, bh_num_suffix(i)); + *pcode = code; + return; + } + byte_buffer[i] = (u8) ((AstNumLit *) arg->value)->value.i; + arg = (AstArgument *) arg->next; + } + WIP(WI_I8X16_SHUFFLE, byte_buffer); + break; + } + + case ONYX_INTRINSIC_I8X16_EXTRACT_LANE_S: SIMD_LANE_INSTR(WI_I8X16_EXTRACT_LANE_S, call->arguments); break; + case ONYX_INTRINSIC_I8X16_EXTRACT_LANE_U: SIMD_LANE_INSTR(WI_I8X16_EXTRACT_LANE_U, call->arguments); break; + case ONYX_INTRINSIC_I8X16_REPLACE_LANE: SIMD_LANE_INSTR(WI_I8X16_REPLACE_LANE, call->arguments); break; + case ONYX_INTRINSIC_I16X8_EXTRACT_LANE_S: SIMD_LANE_INSTR(WI_I16X8_EXTRACT_LANE_S, call->arguments); break; + case ONYX_INTRINSIC_I16X8_EXTRACT_LANE_U: SIMD_LANE_INSTR(WI_I16X8_EXTRACT_LANE_U, call->arguments); break; + case ONYX_INTRINSIC_I16X8_REPLACE_LANE: SIMD_LANE_INSTR(WI_I16X8_REPLACE_LANE, call->arguments); break; + case ONYX_INTRINSIC_I32X4_EXTRACT_LANE: SIMD_LANE_INSTR(WI_I32X4_EXTRACT_LANE, call->arguments); break; + case ONYX_INTRINSIC_I32X4_REPLACE_LANE: SIMD_LANE_INSTR(WI_I32X4_REPLACE_LANE, call->arguments); break; + case ONYX_INTRINSIC_I64X2_EXTRACT_LANE: SIMD_LANE_INSTR(WI_I64X2_EXTRACT_LANE, call->arguments); break; + case ONYX_INTRINSIC_I64X2_REPLACE_LANE: SIMD_LANE_INSTR(WI_I64X2_REPLACE_LANE, call->arguments); break; + case ONYX_INTRINSIC_F32X4_EXTRACT_LANE: SIMD_LANE_INSTR(WI_F32X4_EXTRACT_LANE, call->arguments); break; + case ONYX_INTRINSIC_F32X4_REPLACE_LANE: SIMD_LANE_INSTR(WI_F32X4_REPLACE_LANE, call->arguments); break; + case ONYX_INTRINSIC_F64X2_EXTRACT_LANE: SIMD_LANE_INSTR(WI_F64X2_EXTRACT_LANE, call->arguments); break; + case ONYX_INTRINSIC_F64X2_REPLACE_LANE: SIMD_LANE_INSTR(WI_F64X2_REPLACE_LANE, call->arguments); break; + + case ONYX_INTRINSIC_I8X16_SWIZZLE: WI(WI_I8X16_SWIZZLE); break; + case ONYX_INTRINSIC_I8X16_SPLAT: WI(WI_I8X16_SPLAT); break; + case ONYX_INTRINSIC_I16X8_SPLAT: WI(WI_I16X8_SPLAT); break; + case ONYX_INTRINSIC_I32X4_SPLAT: WI(WI_I32X4_SPLAT); break; + case ONYX_INTRINSIC_I64X2_SPLAT: WI(WI_I64X2_SPLAT); break; + case ONYX_INTRINSIC_F32X4_SPLAT: WI(WI_F32X4_SPLAT); break; + case ONYX_INTRINSIC_F64X2_SPLAT: WI(WI_F64X2_SPLAT); break; + + case ONYX_INTRINSIC_I8X16_EQ: WI(WI_I8X16_EQ); break; + case ONYX_INTRINSIC_I8X16_NEQ: WI(WI_I8X16_NEQ); break; + case ONYX_INTRINSIC_I8X16_LT_S: WI(WI_I8X16_LT_S); break; + case ONYX_INTRINSIC_I8X16_LT_U: WI(WI_I8X16_LT_U); break; + case ONYX_INTRINSIC_I8X16_GT_S: WI(WI_I8X16_GT_S); break; + case ONYX_INTRINSIC_I8X16_GT_U: WI(WI_I8X16_GT_U); break; + case ONYX_INTRINSIC_I8X16_LE_S: WI(WI_I8X16_LE_S); break; + case ONYX_INTRINSIC_I8X16_LE_U: WI(WI_I8X16_LE_U); break; + case ONYX_INTRINSIC_I8X16_GE_S: WI(WI_I8X16_GE_S); break; + case ONYX_INTRINSIC_I8X16_GE_U: WI(WI_I8X16_GE_U); break; + + case ONYX_INTRINSIC_I16X8_EQ: WI(WI_I16X8_EQ); break; + case ONYX_INTRINSIC_I16X8_NEQ: WI(WI_I16X8_NEQ); break; + case ONYX_INTRINSIC_I16X8_LT_S: WI(WI_I16X8_LT_S); break; + case ONYX_INTRINSIC_I16X8_LT_U: WI(WI_I16X8_LT_U); break; + case ONYX_INTRINSIC_I16X8_GT_S: WI(WI_I16X8_GT_S); break; + case ONYX_INTRINSIC_I16X8_GT_U: WI(WI_I16X8_GT_U); break; + case ONYX_INTRINSIC_I16X8_LE_S: WI(WI_I16X8_LE_S); break; + case ONYX_INTRINSIC_I16X8_LE_U: WI(WI_I16X8_LE_U); break; + case ONYX_INTRINSIC_I16X8_GE_S: WI(WI_I16X8_GE_S); break; + case ONYX_INTRINSIC_I16X8_GE_U: WI(WI_I16X8_GE_U); break; + + case ONYX_INTRINSIC_I32X4_EQ: WI(WI_I32X4_EQ); break; + case ONYX_INTRINSIC_I32X4_NEQ: WI(WI_I32X4_NEQ); break; + case ONYX_INTRINSIC_I32X4_LT_S: WI(WI_I32X4_LT_S); break; + case ONYX_INTRINSIC_I32X4_LT_U: WI(WI_I32X4_LT_U); break; + case ONYX_INTRINSIC_I32X4_GT_S: WI(WI_I32X4_GT_S); break; + case ONYX_INTRINSIC_I32X4_GT_U: WI(WI_I32X4_GT_U); break; + case ONYX_INTRINSIC_I32X4_LE_S: WI(WI_I32X4_LE_S); break; + case ONYX_INTRINSIC_I32X4_LE_U: WI(WI_I32X4_LE_U); break; + case ONYX_INTRINSIC_I32X4_GE_S: WI(WI_I32X4_GE_S); break; + case ONYX_INTRINSIC_I32X4_GE_U: WI(WI_I32X4_GE_U); break; + + case ONYX_INTRINSIC_F32X4_EQ: WI(WI_F32X4_EQ); break; + case ONYX_INTRINSIC_F32X4_NEQ: WI(WI_F32X4_NEQ); break; + case ONYX_INTRINSIC_F32X4_LT: WI(WI_F32X4_LT); break; + case ONYX_INTRINSIC_F32X4_GT: WI(WI_F32X4_GT); break; + case ONYX_INTRINSIC_F32X4_LE: WI(WI_F32X4_LE); break; + case ONYX_INTRINSIC_F32X4_GE: WI(WI_F32X4_GE); break; + + case ONYX_INTRINSIC_F64X2_EQ: WI(WI_F64X2_EQ); break; + case ONYX_INTRINSIC_F64X2_NEQ: WI(WI_F64X2_NEQ); break; + case ONYX_INTRINSIC_F64X2_LT: WI(WI_F64X2_LT); break; + case ONYX_INTRINSIC_F64X2_GT: WI(WI_F64X2_GT); break; + case ONYX_INTRINSIC_F64X2_LE: WI(WI_F64X2_LE); break; + case ONYX_INTRINSIC_F64X2_GE: WI(WI_F64X2_GE); break; + + case ONYX_INTRINSIC_V128_NOT: WI(WI_V128_NOT); break; + case ONYX_INTRINSIC_V128_AND: WI(WI_V128_AND); break; + case ONYX_INTRINSIC_V128_ANDNOT: WI(WI_V128_ANDNOT); break; + case ONYX_INTRINSIC_V128_OR: WI(WI_V128_OR); break; + case ONYX_INTRINSIC_V128_XOR: WI(WI_V128_XOR); break; + case ONYX_INTRINSIC_V128_BITSELECT: WI(WI_V128_BITSELECT); break; + + case ONYX_INTRINSIC_I8X16_ABS: WI(WI_I8X16_ABS); break; + case ONYX_INTRINSIC_I8X16_NEG: WI(WI_I8X16_NEG); break; + case ONYX_INTRINSIC_I8X16_ANY_TRUE: WI(WI_I8X16_ANY_TRUE); break; + case ONYX_INTRINSIC_I8X16_ALL_TRUE: WI(WI_I8X16_ALL_TRUE); break; + case ONYX_INTRINSIC_I8X16_BITMASK: WI(WI_I8X16_BITMASK); break; + case ONYX_INTRINSIC_I8X16_NARROW_I16X8_S: WI(WI_I8X16_NARROW_I16X8_S); break; + case ONYX_INTRINSIC_I8X16_NARROW_I16X8_U: WI(WI_I8X16_NARROW_I16X8_U); break; + case ONYX_INTRINSIC_I8X16_SHL: WI(WI_I8X16_SHL); break; + case ONYX_INTRINSIC_I8X16_SHR_S: WI(WI_I8X16_SHR_S); break; + case ONYX_INTRINSIC_I8X16_SHR_U: WI(WI_I8X16_SHR_U); break; + case ONYX_INTRINSIC_I8X16_ADD: WI(WI_I8X16_ADD); break; + case ONYX_INTRINSIC_I8X16_ADD_SAT_S: WI(WI_I8X16_ADD_SAT_S); break; + case ONYX_INTRINSIC_I8X16_ADD_SAT_U: WI(WI_I8X16_ADD_SAT_U); break; + case ONYX_INTRINSIC_I8X16_SUB: WI(WI_I8X16_SUB); break; + case ONYX_INTRINSIC_I8X16_SUB_SAT_S: WI(WI_I8X16_SUB_SAT_S); break; + case ONYX_INTRINSIC_I8X16_SUB_SAT_U: WI(WI_I8X16_SUB_SAT_U); break; + case ONYX_INTRINSIC_I8X16_MIN_S: WI(WI_I8X16_MIN_S); break; + case ONYX_INTRINSIC_I8X16_MIN_U: WI(WI_I8X16_MIN_U); break; + case ONYX_INTRINSIC_I8X16_MAX_S: WI(WI_I8X16_MAX_S); break; + case ONYX_INTRINSIC_I8X16_MAX_U: WI(WI_I8X16_MAX_U); break; + case ONYX_INTRINSIC_I8X16_AVGR_U: WI(WI_I8X16_AVGR_U); break; + + case ONYX_INTRINSIC_I16X8_ABS: WI(WI_I16X8_ABS); break; + case ONYX_INTRINSIC_I16X8_NEG: WI(WI_I16X8_NEG); break; + case ONYX_INTRINSIC_I16X8_ANY_TRUE: WI(WI_I16X8_ANY_TRUE); break; + case ONYX_INTRINSIC_I16X8_ALL_TRUE: WI(WI_I16X8_ALL_TRUE); break; + case ONYX_INTRINSIC_I16X8_BITMASK: WI(WI_I16X8_BITMASK); break; + case ONYX_INTRINSIC_I16X8_NARROW_I32X4_S: WI(WI_I16X8_NARROW_I32X4_S); break; + case ONYX_INTRINSIC_I16X8_NARROW_I32X4_U: WI(WI_I16X8_NARROW_I32X4_U); break; + case ONYX_INTRINSIC_I16X8_WIDEN_LOW_I8X16_S: WI(WI_I16X8_WIDEN_LOW_I8X16_S); break; + case ONYX_INTRINSIC_I16X8_WIDEN_HIGH_I8X16_S: WI(WI_I16X8_WIDEN_HIGH_I8X16_S); break; + case ONYX_INTRINSIC_I16X8_WIDEN_LOW_I8X16_U: WI(WI_I16X8_WIDEN_LOW_I8X16_U); break; + case ONYX_INTRINSIC_I16X8_WIDEN_HIGH_I8X16_U: WI(WI_I16X8_WIDEN_HIGH_I8X16_U); break; + case ONYX_INTRINSIC_I16X8_SHL: WI(WI_I16X8_SHL); break; + case ONYX_INTRINSIC_I16X8_SHR_S: WI(WI_I16X8_SHR_S); break; + case ONYX_INTRINSIC_I16X8_SHR_U: WI(WI_I16X8_SHR_U); break; + case ONYX_INTRINSIC_I16X8_ADD: WI(WI_I16X8_ADD); break; + case ONYX_INTRINSIC_I16X8_ADD_SAT_S: WI(WI_I16X8_ADD_SAT_S); break; + case ONYX_INTRINSIC_I16X8_ADD_SAT_U: WI(WI_I16X8_ADD_SAT_U); break; + case ONYX_INTRINSIC_I16X8_SUB: WI(WI_I16X8_SUB); break; + case ONYX_INTRINSIC_I16X8_SUB_SAT_S: WI(WI_I16X8_SUB_SAT_S); break; + case ONYX_INTRINSIC_I16X8_SUB_SAT_U: WI(WI_I16X8_SUB_SAT_U); break; + case ONYX_INTRINSIC_I16X8_MUL: WI(WI_I16X8_MUL); break; + case ONYX_INTRINSIC_I16X8_MIN_S: WI(WI_I16X8_MIN_S); break; + case ONYX_INTRINSIC_I16X8_MIN_U: WI(WI_I16X8_MIN_U); break; + case ONYX_INTRINSIC_I16X8_MAX_S: WI(WI_I16X8_MAX_S); break; + case ONYX_INTRINSIC_I16X8_MAX_U: WI(WI_I16X8_MAX_U); break; + case ONYX_INTRINSIC_I16X8_AVGR_U: WI(WI_I16X8_AVGR_U); break; + + case ONYX_INTRINSIC_I32X4_ABS: WI(WI_I32X4_ABS); break; + case ONYX_INTRINSIC_I32X4_NEG: WI(WI_I32X4_NEG); break; + case ONYX_INTRINSIC_I32X4_ANY_TRUE: WI(WI_I32X4_ANY_TRUE); break; + case ONYX_INTRINSIC_I32X4_ALL_TRUE: WI(WI_I32X4_ALL_TRUE); break; + case ONYX_INTRINSIC_I32X4_BITMASK: WI(WI_I32X4_BITMASK); break; + case ONYX_INTRINSIC_I32X4_WIDEN_LOW_I16X8_S: WI(WI_I32X4_WIDEN_LOW_I16X8_S); break; + case ONYX_INTRINSIC_I32X4_WIDEN_HIGH_I16X8_S: WI(WI_I32X4_WIDEN_HIGH_I16X8_S); break; + case ONYX_INTRINSIC_I32X4_WIDEN_LOW_I16X8_U: WI(WI_I32X4_WIDEN_LOW_I16X8_U); break; + case ONYX_INTRINSIC_I32X4_WIDEN_HIGH_I16X8_U: WI(WI_I32X4_WIDEN_HIGH_I16X8_U); break; + case ONYX_INTRINSIC_I32X4_SHL: WI(WI_I32X4_SHL); break; + case ONYX_INTRINSIC_I32X4_SHR_S: WI(WI_I32X4_SHR_S); break; + case ONYX_INTRINSIC_I32X4_SHR_U: WI(WI_I32X4_SHR_U); break; + case ONYX_INTRINSIC_I32X4_ADD: WI(WI_I32X4_ADD); break; + case ONYX_INTRINSIC_I32X4_SUB: WI(WI_I32X4_SUB); break; + case ONYX_INTRINSIC_I32X4_MUL: WI(WI_I32X4_MUL); break; + case ONYX_INTRINSIC_I32X4_MIN_S: WI(WI_I32X4_MIN_S); break; + case ONYX_INTRINSIC_I32X4_MIN_U: WI(WI_I32X4_MIN_U); break; + case ONYX_INTRINSIC_I32X4_MAX_S: WI(WI_I32X4_MAX_S); break; + case ONYX_INTRINSIC_I32X4_MAX_U: WI(WI_I32X4_MAX_U); break; + + case ONYX_INTRINSIC_I64X2_NEG: WI(WI_I64X2_NEG); break; + case ONYX_INTRINSIC_I64X2_SHL: WI(WI_I64X2_SHL); break; + case ONYX_INTRINSIC_I64X2_SHR_S: WI(WI_I64X2_SHR_S); break; + case ONYX_INTRINSIC_I64X2_SHR_U: WI(WI_I64X2_SHR_U); break; + case ONYX_INTRINSIC_I64X2_ADD: WI(WI_I64X2_ADD); break; + case ONYX_INTRINSIC_I64X2_SUB: WI(WI_I64X2_SUB); break; + case ONYX_INTRINSIC_I64X2_MUL: WI(WI_I64X2_MUL); break; + + case ONYX_INTRINSIC_F32X4_ABS: WI(WI_F32X4_ABS); break; + case ONYX_INTRINSIC_F32X4_NEG: WI(WI_F32X4_NEG); break; + case ONYX_INTRINSIC_F32X4_SQRT: WI(WI_F32X4_SQRT); break; + case ONYX_INTRINSIC_F32X4_ADD: WI(WI_F32X4_ADD); break; + case ONYX_INTRINSIC_F32X4_SUB: WI(WI_F32X4_SUB); break; + case ONYX_INTRINSIC_F32X4_MUL: WI(WI_F32X4_MUL); break; + case ONYX_INTRINSIC_F32X4_DIV: WI(WI_F32X4_DIV); break; + case ONYX_INTRINSIC_F32X4_MIN: WI(WI_F32X4_MIN); break; + case ONYX_INTRINSIC_F32X4_MAX: WI(WI_F32X4_MAX); break; + + case ONYX_INTRINSIC_F64X2_ABS: WI(WI_F64X2_ABS); break; + case ONYX_INTRINSIC_F64X2_NEG: WI(WI_F64X2_NEG); break; + case ONYX_INTRINSIC_F64X2_SQRT: WI(WI_F64X2_SQRT); break; + case ONYX_INTRINSIC_F64X2_ADD: WI(WI_F64X2_ADD); break; + case ONYX_INTRINSIC_F64X2_SUB: WI(WI_F64X2_SUB); break; + case ONYX_INTRINSIC_F64X2_MUL: WI(WI_F64X2_MUL); break; + case ONYX_INTRINSIC_F64X2_DIV: WI(WI_F64X2_DIV); break; + case ONYX_INTRINSIC_F64X2_MIN: WI(WI_F64X2_MIN); break; + case ONYX_INTRINSIC_F64X2_MAX: WI(WI_F64X2_MAX); break; + + case ONYX_INTRINSIC_I32X4_TRUNC_SAT_F32X4_S: WI(WI_I32X4_TRUNC_SAT_F32X4_S); break; + case ONYX_INTRINSIC_I32X4_TRUNC_SAT_F32X4_U: WI(WI_I32X4_TRUNC_SAT_F32X4_U); break; + case ONYX_INTRINSIC_F32X4_CONVERT_I32X4_S: WI(WI_F32X4_CONVERT_I32X4_S); break; + case ONYX_INTRINSIC_F32X4_CONVERT_I32X4_U: WI(WI_F32X4_CONVERT_I32X4_U); break; + default: assert(("Unsupported intrinsic", 0)); } @@ -2601,6 +2892,11 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc) { .stack_base_idx = 0, }; + bh_arena* eid = bh_alloc(global_heap_allocator, sizeof(bh_arena)); + bh_arena_init(eid, global_heap_allocator, 8196); + module.extended_instr_data = eid; + module.extended_instr_alloc = bh_arena_allocator(eid); + bh_arr_new(alloc, module.types, 4); bh_arr_new(alloc, module.funcs, 4); bh_arr_new(alloc, module.imports, 4); @@ -2697,6 +2993,8 @@ void onyx_wasm_module_compile(OnyxWasmModule* module, ProgramInfo* program) { } void onyx_wasm_module_free(OnyxWasmModule* module) { + bh_arena_free(module->extended_instr_data); + bh_arr_free(module->types); bh_arr_free(module->funcs); bh_imap_free(&module->local_map); @@ -3186,6 +3484,20 @@ static void output_instruction(WasmFunc* func, WasmInstruction* instr, bh_buffer bh_buffer_append(buff, leb, 8); break; + case WI_V128_CONST: + case WI_I8X16_SHUFFLE: + fori (i, 0, 16) bh_buffer_write_byte(buff, ((u8*) instr->data.p)[i]); + break; + + case WI_I8X16_EXTRACT_LANE_S: case WI_I8X16_EXTRACT_LANE_U: case WI_I8X16_REPLACE_LANE: + case WI_I16X8_EXTRACT_LANE_S: case WI_I16X8_EXTRACT_LANE_U: case WI_I16X8_REPLACE_LANE: + case WI_I32X4_EXTRACT_LANE: case WI_I32X4_REPLACE_LANE: + case WI_I64X2_EXTRACT_LANE: case WI_I64X2_REPLACE_LANE: + case WI_F32X4_EXTRACT_LANE: case WI_F32X4_REPLACE_LANE: + case WI_F64X2_EXTRACT_LANE: case WI_F64X2_REPLACE_LANE: + bh_buffer_write_byte(buff, (u8) instr->data.i1); + break; + default: break; } } -- 2.25.1