Browse Source

[PATCH 032/188] adding instructin codes

From bfc622a2b1fd6c6dd81e1d44050c013289936b5a Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <[email protected]>
Date: Tue, 19 Nov 2019 22:16:17 -0500

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

+ 178 - 0
utils/wasmbin/wasmbincode.pas

@@ -18,6 +18,184 @@ const
   INST_ELSE = $05;
   // ...
   INST_END  = $0b;
+
+  INST_block       = $02;
+  INST_loop        = $03;
+  INST_unreachable = $00;
+  INST_nop         = $01;
+  INST_br          = $0C;
+  INST_br_if          = $0D;
+  INST_br_table       = $0E;
+  INST_return         = $0F;
+  INST_call           = $10;
+  INST_call_indirect  = $11;
+
+  //INST_if             = $04;
+  //INST_else           = $05;
+  //INST_end            = $0B;
+  INST_drop           = $1A;
+  INST_select         = $1B;
+  INST_local_get      = $20;
+  INST_local_set      = $21;
+  INST_local_tee      = $22;
+  INST_global_get     = $23;
+  INST_global_set     = $24;
+
+  INST_i32_load       = $28;
+  INST_i64_load       = $29;
+  INST_f32_load       = $2a;
+  INST_f64_load       = $2b;
+  INST_i32_load8_s    = $2c;
+  INST_i32_load8_u    = $2d;
+  INST_i32_load16_s   = $2e;
+  INST_i32_load16_u   = $2f;
+  INST_i64_load8_s    = $30;
+  INST_i64_load8_u    = $31;
+  INST_i64_load16_s   = $32;
+  INST_i64_load16_u   = $33;
+  INST_i64_load32_s   = $34;
+  INST_i64_load32_u   = $35;
+  INST_i32_store      = $36;
+  INST_i64_store      = $37;
+  INST_f32_store      = $38;
+  INST_f64_store      = $39;
+  INST_i32_store8     = $3a;
+  INST_i32_store16    = $3b;
+  INST_i64_store8     = $3c;
+  INST_i64_store16    = $3d;
+  INST_i64_store32    = $3e;
+  INST_memory_size    = $3f;
+  INST_memory_grow    = $40;
+  INST_i32_const      = $41;
+  INST_i64_const      = $42;
+  INST_f32_const      = $43;
+  INST_f64_const      = $44;
+
+  INST_i32_clz        = $67;
+  INST_i32_ctz        = $68;
+  INST_i32_popcnt     = $69;
+  INST_i32_add        = $6a;
+  INST_i32_sub        = $6b;
+  INST_i32_mul        = $6c;
+  INST_i32_div_s      = $6d;
+  INST_i32_div_u      = $6e;
+  INST_i32_rem_s      = $6f;
+  INST_i32_rem_u      = $70;
+  INST_i32_and        = $71;
+  INST_i32_or         = $72;
+  INST_i32_xor        = $73;
+  INST_i32_shl        = $74;
+  INST_i32_shr_s      = $75;
+  INST_i32_shr_u      = $76;
+  INST_i32_rotl       = $77;
+  INST_i32_rotr       = $78;
+  INST_i64_clz        = $79;
+  INST_i64_ctz        = $7a;
+  INST_i64_popcnt     = $7b;
+  INST_i64_add        = $7c;
+  INST_i64_sub        = $7d;
+  INST_i64_mul        = $7e;
+  INST_i64_div_s      = $7f;
+  INST_i64_div_u      = $80;
+  INST_i64_rem_s      = $81;
+  INST_i64_rem_u      = $82;
+  INST_i64_and        = $83;
+  INST_i64_or         = $84;
+  INST_i64_xor        = $85;
+  INST_i64_shl        = $86;
+  INST_i64_shr_s      = $87;
+  INST_i64_shr_u      = $88;
+  INST_i64_rotl       = $89;
+  INST_i64_rotr       = $8a;
+  INST_f32_abs        = $8b;
+  INST_f32_neg        = $8c;
+  INST_f32_ceil       = $8d;
+  INST_f32_floor      = $8e;
+  INST_f32_trunc      = $8f;
+  INST_f32_nearest    = $90;
+  INST_f32_sqrt       = $91;
+  INST_f32_add        = $92;
+  INST_f32_sub        = $93;
+  INST_f32_mul        = $94;
+  INST_f32_div        = $95;
+  INST_f32_min        = $96;
+  INST_f32_max        = $97;
+  INST_f32_copysign   = $98;
+  INST_f64_abs        = $99;
+  INST_f64_neg        = $99;
+  INST_f64_ceil       = $99;
+  INST_f64_floor      = $9a;
+  INST_f64_trunc      = $9b;
+  INST_f64_nearest    = $9c;
+  INST_f64_sqrt       = $9f;
+  INST_f64_add        = $a0;
+  INST_f64_sub        = $a1;
+  INST_f64_mul        = $a2;
+  INST_f64_div        = $a3;
+  INST_f64_min        = $a4;
+  INST_f64_max        = $a5;
+  INST_f64_copysign   = $a6;
+
+  INST_i32_eqz        = $45;
+  INST_i32_eq         = $46;
+  INST_i32_ne         = $47;
+  INST_i32_lt_s       = $48;
+  INST_i32_lt_u       = $49;
+  INST_i32_gt_s       = $4a;
+  INST_i32_gt_u       = $4b;
+  INST_i32_le_s       = $4c;
+  INST_i32_le_u       = $4d;
+  INST_i32_ge_s       = $4e;
+  INST_i32_ge_u       = $4f;
+  INST_i64_eqz        = $50;
+  INST_i64_eq         = $51;
+  INST_i64_ne         = $52;
+  INST_i64_lt_s       = $53;
+  INST_i64_lt_u       = $54;
+  INST_i64_gt_s       = $55;
+  INST_i64_gt_u       = $56;
+  INST_i64_le_s       = $57;
+  INST_i64_le_u       = $58;
+  INST_i64_ge_s       = $59;
+  INST_i64_ge_u       = $5a;
+  INST_f32_eq         = $5b;
+  INST_f32_ne         = $5c;
+  INST_f32_lt         = $5d;
+  INST_f32_gt         = $5e;
+  INST_f32_le         = $5f;
+  INST_f32_ge         = $60;
+  INST_f64_eq         = $61;
+  INST_f64_ne         = $62;
+  INST_f64_lt         = $63;
+  INST_f64_gt         = $64;
+  INST_f64_le         = $65;
+  INST_f64_ge         = $66;
+
+  INST_i32_wrap_i64        = $a7;
+  INST_i32_trunc_f32_s     = $a8;
+  INST_i32_trunc_f32_u     = $a9;
+  INST_i32_trunc_f64_s     = $aa;
+  INST_i32_trunc_f64_u     = $ab;
+  INST_i64_extend_i32_s    = $ac;
+  INST_i64_extend_i32_u    = $ad;
+  INST_i64_trunc_f32_s     = $ae;
+  INST_i64_trunc_f32_u     = $af;
+  INST_i64_trunc_f64_s     = $b0;
+  INST_i64_trunc_f64_u     = $b1;
+  INST_f32_convert_i32_s   = $b2;
+  INST_f32_convert_i32_u   = $b3;
+  INST_f32_convert_i64_s   = $b4;
+  INST_f32_convert_i64_u   = $b5;
+  INST_f32_demote_f64      = $b6;
+  INST_f64_convert_i32_s   = $b7;
+  INST_f64_convert_i32_u   = $b8;
+  INST_f64_convert_i64_s   = $b9;
+  INST_f64_convert_i64_u   = $ba;
+  INST_f64_promote_f32     = $bb;
+  INST_i32_reinterpret_f32 = $bc;
+  INST_i64_reinterpret_f64 = $bd;
+  INST_f32_reinterpret_i32 = $be;
+  INST_f64_reinterpret_i64 = $bf;
   // ...
   INST_REINTERPRET_I64 = $BF;