From 0a9db5f83d916272a61cdcce85d67dbf0c81f53c Mon Sep 17 00:00:00 2001 From: nickysn Date: Mon, 3 Aug 2020 12:59:29 +0000 Subject: [PATCH] [PATCH 042/188] comments on instructions From 4f35fc3a7ef179acb87601b80d5a800d475cae0f Mon Sep 17 00:00:00 2001 From: Dmitry Boyarintsev Date: Wed, 20 Nov 2019 14:13:04 -0500 git-svn-id: branches/wasm@46038 - --- utils/wasmbin/wasmbincode.pas | 304 +++++++++++++++++----------------- 1 file changed, 152 insertions(+), 152 deletions(-) diff --git a/utils/wasmbin/wasmbincode.pas b/utils/wasmbin/wasmbincode.pas index 8b717d6f6d..130c3aa98a 100644 --- a/utils/wasmbin/wasmbincode.pas +++ b/utils/wasmbin/wasmbincode.pas @@ -260,158 +260,158 @@ const ,(valid: false; Param: ipNone) // 25 ,(valid: false; Param: ipNone) // 26 ,(valid: false; Param: ipNone) // 27 - ,(valid: true; Param: ip2Leb) // 28 i32.load - ,(valid: true; Param: ip2Leb) // 29 - ,(valid: true; Param: ip2Leb) // 2A - ,(valid: true; Param: ip2Leb) // 2B - ,(valid: true; Param: ip2Leb) // 2C - ,(valid: true; Param: ip2Leb) // 2D - ,(valid: true; Param: ip2Leb) // 2E - ,(valid: true; Param: ip2Leb) // 2F - ,(valid: true; Param: ip2Leb) // 30 - ,(valid: true; Param: ip2Leb) // 31 - ,(valid: true; Param: ip2Leb) // 32 - ,(valid: true; Param: ip2Leb) // 33 - ,(valid: true; Param: ip2Leb) // 34 i64.load32_s - ,(valid: true; Param: ip2Leb) // 35 i64.load32_u - ,(valid: true; Param: ip2Leb) // 36 - ,(valid: true; Param: ip2Leb) // 37 - ,(valid: true; Param: ip2Leb) // 38 - ,(valid: true; Param: ip2Leb) // 39 - ,(valid: true; Param: ip2Leb) // 3A - ,(valid: true; Param: ip2Leb) // 3B - ,(valid: true; Param: ip2Leb) // 3C - ,(valid: true; Param: ip2Leb) // 3D - ,(valid: true; Param: ip2Leb) // 3E i64.store32 - ,(valid: true; Param: ipNone) // 3F - ,(valid: true; Param: ipNone) // 40 - ,(valid: true; Param: ipi32) // 41 - ,(valid: true; Param: ipi64) // 42 - ,(valid: true; Param: ipf32) // 43 - ,(valid: true; Param: ipf64) // 44 - ,(valid: true; Param: ipNone) // 45 - ,(valid: true; Param: ipNone) // 46 - ,(valid: true; Param: ipNone) // 47 - ,(valid: true; Param: ipNone) // 48 - ,(valid: true; Param: ipNone) // 49 - ,(valid: true; Param: ipNone) // 4A - ,(valid: true; Param: ipNone) // 4B - ,(valid: true; Param: ipNone) // 4C - ,(valid: true; Param: ipNone) // 4D - ,(valid: true; Param: ipNone) // 4E - ,(valid: true; Param: ipNone) // 4F - ,(valid: true; Param: ipNone) // 50 - ,(valid: true; Param: ipNone) // 51 - ,(valid: true; Param: ipNone) // 52 - ,(valid: true; Param: ipNone) // 53 - ,(valid: true; Param: ipNone) // 54 - ,(valid: true; Param: ipNone) // 55 - ,(valid: true; Param: ipNone) // 56 - ,(valid: true; Param: ipNone) // 57 - ,(valid: true; Param: ipNone) // 58 - ,(valid: true; Param: ipNone) // 59 - ,(valid: true; Param: ipNone) // 5A - ,(valid: true; Param: ipNone) // 5B - ,(valid: true; Param: ipNone) // 5C - ,(valid: true; Param: ipNone) // 5D - ,(valid: true; Param: ipNone) // 5E - ,(valid: true; Param: ipNone) // 5F - ,(valid: true; Param: ipNone) // 60 - ,(valid: true; Param: ipNone) // 61 - ,(valid: true; Param: ipNone) // 62 - ,(valid: true; Param: ipNone) // 63 - ,(valid: true; Param: ipNone) // 64 - ,(valid: true; Param: ipNone) // 65 - ,(valid: true; Param: ipNone) // 66 - ,(valid: true; Param: ipNone) // 67 - ,(valid: true; Param: ipNone) // 68 - ,(valid: true; Param: ipNone) // 69 - ,(valid: true; Param: ipNone) // 6A - ,(valid: true; Param: ipNone) // 6B - ,(valid: true; Param: ipNone) // 6C - ,(valid: true; Param: ipNone) // 6D - ,(valid: true; Param: ipNone) // 6E - ,(valid: true; Param: ipNone) // 6F - ,(valid: true; Param: ipNone) // 70 - ,(valid: true; Param: ipNone) // 71 - ,(valid: true; Param: ipNone) // 72 - ,(valid: true; Param: ipNone) // 73 - ,(valid: true; Param: ipNone) // 74 - ,(valid: true; Param: ipNone) // 75 - ,(valid: true; Param: ipNone) // 76 - ,(valid: true; Param: ipNone) // 77 - ,(valid: true; Param: ipNone) // 78 - ,(valid: true; Param: ipNone) // 79 - ,(valid: true; Param: ipNone) // 7A - ,(valid: true; Param: ipNone) // 7B - ,(valid: true; Param: ipNone) // 7C - ,(valid: true; Param: ipNone) // 7D - ,(valid: true; Param: ipNone) // 7E - ,(valid: true; Param: ipNone) // 7F - ,(valid: true; Param: ipNone) // 80 - ,(valid: true; Param: ipNone) // 81 - ,(valid: true; Param: ipNone) // 82 - ,(valid: true; Param: ipNone) // 83 - ,(valid: true; Param: ipNone) // 84 - ,(valid: true; Param: ipNone) // 85 - ,(valid: true; Param: ipNone) // 86 - ,(valid: true; Param: ipNone) // 87 - ,(valid: true; Param: ipNone) // 88 - ,(valid: true; Param: ipNone) // 89 - ,(valid: true; Param: ipNone) // 8A - ,(valid: true; Param: ipNone) // 8B - ,(valid: true; Param: ipNone) // 8C - ,(valid: true; Param: ipNone) // 8D - ,(valid: true; Param: ipNone) // 8E - ,(valid: true; Param: ipNone) // 8F - ,(valid: true; Param: ipNone) // 90 - ,(valid: true; Param: ipNone) // 91 - ,(valid: true; Param: ipNone) // 92 - ,(valid: true; Param: ipNone) // 93 - ,(valid: true; Param: ipNone) // 94 - ,(valid: true; Param: ipNone) // 95 - ,(valid: true; Param: ipNone) // 96 - ,(valid: true; Param: ipNone) // 97 - ,(valid: true; Param: ipNone) // 98 - ,(valid: true; Param: ipNone) // 99 - ,(valid: true; Param: ipNone) // 9A - ,(valid: true; Param: ipNone) // 9B - ,(valid: true; Param: ipNone) // 9C - ,(valid: true; Param: ipNone) // 9D - ,(valid: true; Param: ipNone) // 9E - ,(valid: true; Param: ipNone) // 9F - ,(valid: true; Param: ipNone) // A0 - ,(valid: true; Param: ipNone) // A1 - ,(valid: true; Param: ipNone) // A2 - ,(valid: true; Param: ipNone) // A3 - ,(valid: true; Param: ipNone) // A4 - ,(valid: true; Param: ipNone) // A5 - ,(valid: true; Param: ipNone) // A6 - ,(valid: true; Param: ipNone) // A7 - ,(valid: true; Param: ipNone) // A8 - ,(valid: true; Param: ipNone) // A9 - ,(valid: true; Param: ipNone) // AA - ,(valid: true; Param: ipNone) // AB - ,(valid: true; Param: ipNone) // AC - ,(valid: true; Param: ipNone) // AD - ,(valid: true; Param: ipNone) // AE - ,(valid: true; Param: ipNone) // AF - ,(valid: true; Param: ipNone) // B0 - ,(valid: true; Param: ipNone) // B1 - ,(valid: true; Param: ipNone) // B2 - ,(valid: true; Param: ipNone) // B3 - ,(valid: true; Param: ipNone) // B4 - ,(valid: true; Param: ipNone) // B5 - ,(valid: true; Param: ipNone) // B6 - ,(valid: true; Param: ipNone) // B7 - ,(valid: true; Param: ipNone) // B8 - ,(valid: true; Param: ipNone) // B9 - ,(valid: true; Param: ipNone) // BA - ,(valid: true; Param: ipNone) // BB - ,(valid: true; Param: ipNone) // BC - ,(valid: true; Param: ipNone) // BD - ,(valid: true; Param: ipNone) // BE - ,(valid: true; Param: ipNone) // BF + ,(valid: true; Param: ip2Leb) // 28 i32.load + ,(valid: true; Param: ip2Leb) // 29 i64_load + ,(valid: true; Param: ip2Leb) // 2A f32_load + ,(valid: true; Param: ip2Leb) // 2B f64_load + ,(valid: true; Param: ip2Leb) // 2C i32_load8_s + ,(valid: true; Param: ip2Leb) // 2D i32_load8_u + ,(valid: true; Param: ip2Leb) // 2E i32_load16_s + ,(valid: true; Param: ip2Leb) // 2F i32_load16_u + ,(valid: true; Param: ip2Leb) // 30 i64_load8_s + ,(valid: true; Param: ip2Leb) // 31 i64_load8_u + ,(valid: true; Param: ip2Leb) // 32 i64_load16_s + ,(valid: true; Param: ip2Leb) // 33 i64_load16_u + ,(valid: true; Param: ip2Leb) // 34 i64.load32_s + ,(valid: true; Param: ip2Leb) // 35 i64.load32_u + ,(valid: true; Param: ip2Leb) // 36 i32_store + ,(valid: true; Param: ip2Leb) // 37 i64_store + ,(valid: true; Param: ip2Leb) // 38 f32_store + ,(valid: true; Param: ip2Leb) // 39 f64_store + ,(valid: true; Param: ip2Leb) // 3A i32_store8 + ,(valid: true; Param: ip2Leb) // 3B i32_store16 + ,(valid: true; Param: ip2Leb) // 3C i64_store8 + ,(valid: true; Param: ip2Leb) // 3D i64_store16 + ,(valid: true; Param: ip2Leb) // 3E i64_store32 + ,(valid: true; Param: ipNone) // 3F memory_size + ,(valid: true; Param: ipNone) // 40 memory_grow + ,(valid: true; Param: ipi32) // 41 i32_const + ,(valid: true; Param: ipi64) // 42 i64_const + ,(valid: true; Param: ipf32) // 43 f32_const + ,(valid: true; Param: ipf64) // 44 f64_const + ,(valid: true; Param: ipNone) // 45 i32_eqz + ,(valid: true; Param: ipNone) // 46 i32_eq + ,(valid: true; Param: ipNone) // 47 i32_ne + ,(valid: true; Param: ipNone) // 48 i32_lt_s + ,(valid: true; Param: ipNone) // 49 i32_lt_u + ,(valid: true; Param: ipNone) // 4A i32_gt_s + ,(valid: true; Param: ipNone) // 4B i32_gt_u + ,(valid: true; Param: ipNone) // 4C i32_le_s + ,(valid: true; Param: ipNone) // 4D i32_le_u + ,(valid: true; Param: ipNone) // 4E i32_ge_s + ,(valid: true; Param: ipNone) // 4F i32_ge_u + ,(valid: true; Param: ipNone) // 50 i64_eqz + ,(valid: true; Param: ipNone) // 51 i64_eq + ,(valid: true; Param: ipNone) // 52 i64_ne + ,(valid: true; Param: ipNone) // 53 i64_lt_s + ,(valid: true; Param: ipNone) // 54 i64_lt_u + ,(valid: true; Param: ipNone) // 55 i64_gt_s + ,(valid: true; Param: ipNone) // 56 i64_gt_u + ,(valid: true; Param: ipNone) // 57 i64_le_s + ,(valid: true; Param: ipNone) // 58 i64_le_u + ,(valid: true; Param: ipNone) // 59 i64_ge_s + ,(valid: true; Param: ipNone) // 5A i64_ge_u + ,(valid: true; Param: ipNone) // 5B f32_eq + ,(valid: true; Param: ipNone) // 5C f32_ne + ,(valid: true; Param: ipNone) // 5D f32_lt + ,(valid: true; Param: ipNone) // 5E f32_gt + ,(valid: true; Param: ipNone) // 5F f32_le + ,(valid: true; Param: ipNone) // 60 f32_ge + ,(valid: true; Param: ipNone) // 61 f64_eq + ,(valid: true; Param: ipNone) // 62 f64_ne + ,(valid: true; Param: ipNone) // 63 f64_lt + ,(valid: true; Param: ipNone) // 64 f64_gt + ,(valid: true; Param: ipNone) // 65 f64_le + ,(valid: true; Param: ipNone) // 66 f64_ge + ,(valid: true; Param: ipNone) // 67 i32_clz + ,(valid: true; Param: ipNone) // 68 i32_ctz + ,(valid: true; Param: ipNone) // 69 i32_popcnt + ,(valid: true; Param: ipNone) // 6A i32_add + ,(valid: true; Param: ipNone) // 6B i32_sub + ,(valid: true; Param: ipNone) // 6C i32_mul + ,(valid: true; Param: ipNone) // 6D i32_div_s + ,(valid: true; Param: ipNone) // 6E i32_div_u + ,(valid: true; Param: ipNone) // 6F i32_rem_s + ,(valid: true; Param: ipNone) // 70 i32_rem_u + ,(valid: true; Param: ipNone) // 71 i32_and + ,(valid: true; Param: ipNone) // 72 i32_or + ,(valid: true; Param: ipNone) // 73 i32_xor + ,(valid: true; Param: ipNone) // 74 i32_shl + ,(valid: true; Param: ipNone) // 75 i32_shr_s + ,(valid: true; Param: ipNone) // 76 i32_shr_u + ,(valid: true; Param: ipNone) // 77 i32_rotl + ,(valid: true; Param: ipNone) // 78 i32_rotr + ,(valid: true; Param: ipNone) // 79 i64_clz + ,(valid: true; Param: ipNone) // 7A i64_ctz + ,(valid: true; Param: ipNone) // 7B i64_popcnt + ,(valid: true; Param: ipNone) // 7C i64_add + ,(valid: true; Param: ipNone) // 7D i64_sub + ,(valid: true; Param: ipNone) // 7E i64_mul + ,(valid: true; Param: ipNone) // 7F i64_div_s + ,(valid: true; Param: ipNone) // 80 i64_div_u + ,(valid: true; Param: ipNone) // 81 i64_rem_s + ,(valid: true; Param: ipNone) // 82 i64_rem_u + ,(valid: true; Param: ipNone) // 83 i64_and + ,(valid: true; Param: ipNone) // 84 i64_or + ,(valid: true; Param: ipNone) // 85 i64_xor + ,(valid: true; Param: ipNone) // 86 i64_shl + ,(valid: true; Param: ipNone) // 87 i64_shr_s + ,(valid: true; Param: ipNone) // 88 i64_shr_u + ,(valid: true; Param: ipNone) // 89 i64_rotl + ,(valid: true; Param: ipNone) // 8A i64_rotr + ,(valid: true; Param: ipNone) // 8B f32_abs + ,(valid: true; Param: ipNone) // 8C f32_neg + ,(valid: true; Param: ipNone) // 8D f32_ceil + ,(valid: true; Param: ipNone) // 8E f32_floor + ,(valid: true; Param: ipNone) // 8F f32_trunc + ,(valid: true; Param: ipNone) // 90 f32_nearest + ,(valid: true; Param: ipNone) // 91 f32_sqrt + ,(valid: true; Param: ipNone) // 92 f32_add + ,(valid: true; Param: ipNone) // 93 f32_sub + ,(valid: true; Param: ipNone) // 94 f32_mul + ,(valid: true; Param: ipNone) // 95 f32_div + ,(valid: true; Param: ipNone) // 96 f32_min + ,(valid: true; Param: ipNone) // 97 f32_max + ,(valid: true; Param: ipNone) // 98 f32_copysign + ,(valid: true; Param: ipNone) // 99 f64_abs + ,(valid: true; Param: ipNone) // 9A f64_neg + ,(valid: true; Param: ipNone) // 9B f64_ceil + ,(valid: true; Param: ipNone) // 9C f64_floor + ,(valid: true; Param: ipNone) // 9D f64_trunc + ,(valid: true; Param: ipNone) // 9E f64_nearest + ,(valid: true; Param: ipNone) // 9F f64_sqrt + ,(valid: true; Param: ipNone) // A0 f64_add + ,(valid: true; Param: ipNone) // A1 f64_sub + ,(valid: true; Param: ipNone) // A2 f64_mul + ,(valid: true; Param: ipNone) // A3 f64_div + ,(valid: true; Param: ipNone) // A4 f64_min + ,(valid: true; Param: ipNone) // A5 f64_max + ,(valid: true; Param: ipNone) // A6 f64_copysign + ,(valid: true; Param: ipNone) // A7 i32_wrap_i64 + ,(valid: true; Param: ipNone) // A8 i32_trunc_f32_s + ,(valid: true; Param: ipNone) // A9 i32_trunc_f32_u + ,(valid: true; Param: ipNone) // AA i32_trunc_f64_s + ,(valid: true; Param: ipNone) // AB i32_trunc_f64_u + ,(valid: true; Param: ipNone) // AC i64_extend_i32_s + ,(valid: true; Param: ipNone) // AD i64_extend_i32_u + ,(valid: true; Param: ipNone) // AE i64_trunc_f32_s + ,(valid: true; Param: ipNone) // AF i64_trunc_f32_u + ,(valid: true; Param: ipNone) // B0 i64_trunc_f64_s + ,(valid: true; Param: ipNone) // B1 i64_trunc_f64_u + ,(valid: true; Param: ipNone) // B2 f32_convert_i32_s + ,(valid: true; Param: ipNone) // B3 f32_convert_i32_u + ,(valid: true; Param: ipNone) // B4 f32_convert_i64_s + ,(valid: true; Param: ipNone) // B5 f32_convert_i64_u + ,(valid: true; Param: ipNone) // B6 f32_demote_f64 + ,(valid: true; Param: ipNone) // B7 f64_convert_i32_s + ,(valid: true; Param: ipNone) // B8 f64_convert_i32_u + ,(valid: true; Param: ipNone) // B9 f64_convert_i64_s + ,(valid: true; Param: ipNone) // BA f64_convert_i64_u + ,(valid: true; Param: ipNone) // BB f64_promote_f32 + ,(valid: true; Param: ipNone) // BC i32_reinterpret_f32 + ,(valid: true; Param: ipNone) // BD i64_reinterpret_f64 + ,(valid: true; Param: ipNone) // BE f32_reinterpret_i32 + ,(valid: true; Param: ipNone) // BF f64_reinterpret_i64 ); function InstLen(st: TStream; endOfInst: Byte = INST_END): Integer;