Browse Source

[PATCH 138/188] extending of offset align support

From d9f2782163a8bd14f5893a1f304cdad4683d0d90 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <[email protected]>
Date: Wed, 25 Mar 2020 10:22:46 -0400

git-svn-id: branches/wasm@46134 -
nickysn 5 years ago
parent
commit
44fe34b7a8
3 changed files with 27 additions and 27 deletions
  1. 25 25
      utils/wasmbin/wasmbincode.pas
  2. 1 1
      utils/wasmbin/watparser.pas
  3. 1 1
      utils/wasmbin/watscanner.pas

+ 25 - 25
utils/wasmbin/wasmbincode.pas

@@ -207,7 +207,7 @@ const
 type
   TInstParamType = (ipNone,
     ipLeb,      // label index or function index
-    ip2Leb,     // memory arguments, ask for offset + align
+    ipOfsAlign, // memory arguments, ask for offset + align
     ipi32,      // signed Leb of maximum 4 bytes
     ipi64,      // signed Leb of maximum 8 bytes
     ipf32,      // float point single
@@ -267,29 +267,29 @@ 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  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: ipOfsAlign)     // 28  i32.load
+   ,(valid: true;  Param: ipOfsAlign)     // 29  i64_load
+   ,(valid: true;  Param: ipOfsAlign)     // 2A  f32_load
+   ,(valid: true;  Param: ipOfsAlign)     // 2B  f64_load
+   ,(valid: true;  Param: ipOfsAlign)     // 2C  i32_load8_s
+   ,(valid: true;  Param: ipOfsAlign)     // 2D  i32_load8_u
+   ,(valid: true;  Param: ipOfsAlign)     // 2E  i32_load16_s
+   ,(valid: true;  Param: ipOfsAlign)     // 2F  i32_load16_u
+   ,(valid: true;  Param: ipOfsAlign)     // 30  i64_load8_s
+   ,(valid: true;  Param: ipOfsAlign)     // 31  i64_load8_u
+   ,(valid: true;  Param: ipOfsAlign)     // 32  i64_load16_s
+   ,(valid: true;  Param: ipOfsAlign)     // 33  i64_load16_u
+   ,(valid: true;  Param: ipOfsAlign)     // 34  i64.load32_s
+   ,(valid: true;  Param: ipOfsAlign)     // 35  i64.load32_u
+   ,(valid: true;  Param: ipOfsAlign)     // 36  i32_store
+   ,(valid: true;  Param: ipOfsAlign)     // 37  i64_store
+   ,(valid: true;  Param: ipOfsAlign)     // 38  f32_store
+   ,(valid: true;  Param: ipOfsAlign)     // 39  f64_store
+   ,(valid: true;  Param: ipOfsAlign)     // 3A  i32_store8
+   ,(valid: true;  Param: ipOfsAlign)     // 3B  i32_store16
+   ,(valid: true;  Param: ipOfsAlign)     // 3C  i64_store8
+   ,(valid: true;  Param: ipOfsAlign)     // 3D  i64_store16
+   ,(valid: true;  Param: ipOfsAlign)     // 3E  i64_store32
    ,(valid: true;  Param: ipNone)     // 3F  memory_size
    ,(valid: true;  Param: ipNone)     // 40  memory_grow
    ,(valid: true;  Param: ipi32OrFunc)// 41  i32_const
@@ -447,7 +447,7 @@ begin
       case INST_FLAGS[cd].Param of
         ipLeb:
           ReadU(st);
-        ip2Leb: begin
+        ipOfsAlign: begin
           ReadU(st);
           ReadU(st);
         end;

+ 1 - 1
utils/wasmbin/watparser.pas

@@ -30,7 +30,7 @@ const
      'f32', 'f64',
      'type',
      'import', 'global', 'table', 'memory', 'local', 'export',
-     'elem', 'data', 'offset'
+     'elem', 'data', 'offset','align'
      );
 
   WasmTypeTokens = [wei32, wei64, wef32, wef64];

+ 1 - 1
utils/wasmbin/watscanner.pas

@@ -21,7 +21,7 @@ type
      wef32, wef64,
      weType,
      weImport, weGlobal, weTable, weMemory, weLocal, weExport,
-     weElem, weData, weOffset
+     weElem, weData, weOffset, weAlign
    );
 
   // used only for weNumber