Browse Source

[PATCH 042/188] comments on instructions

From 4f35fc3a7ef179acb87601b80d5a800d475cae0f Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <[email protected]>
Date: Wed, 20 Nov 2019 14:13:04 -0500

git-svn-id: branches/wasm@46038 -
nickysn 5 years ago
parent
commit
0a9db5f83d
1 changed files with 152 additions and 152 deletions
  1. 152 152
      utils/wasmbin/wasmbincode.pas

+ 152 - 152
utils/wasmbin/wasmbincode.pas

@@ -260,158 +260,158 @@ const
    ,(valid: false; Param: ipNone)     // 25
    ,(valid: false; Param: ipNone)     // 25
    ,(valid: false; Param: ipNone)     // 26
    ,(valid: false; Param: ipNone)     // 26
    ,(valid: false; Param: ipNone)     // 27
    ,(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;
 function InstLen(st: TStream; endOfInst: Byte = INST_END): Integer;