diff --git a/std/assembly/util/memory.ts b/std/assembly/util/memory.ts index 07a9bb98dd..700165b80e 100644 --- a/std/assembly/util/memory.ts +++ b/std/assembly/util/memory.ts @@ -201,17 +201,17 @@ export function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/st } else { // fill head and tail with minimal branching if (!n) return; - let dend = dest + n - 4; + let dend = dest + n; store(dest, c); - store(dend, c, 3); + store(dend - 1, c); if (n <= 2) return; store(dest, c, 1); store(dest, c, 2); - store(dend, c, 2); - store(dend, c, 1); + store(dend - 2, c); + store(dend - 3, c); if (n <= 6) return; store(dest, c, 3); - store(dend, c); + store(dend - 4, c); if (n <= 8) return; // advance pointer to align it at 4-byte boundary @@ -223,23 +223,23 @@ export function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/st let c32: u32 = -1 / 255 * c; // fill head/tail up to 28 bytes each in preparation - dend = dest + n - 28; + dend = dest + n; store(dest, c32); - store(dend, c32, 24); + store(dend - 4, c32); if (n <= 8) return; store(dest, c32, 4); store(dest, c32, 8); - store(dend, c32, 16); - store(dend, c32, 20); + store(dend - 12, c32); + store(dend - 8, c32); if (n <= 24) return; store(dest, c32, 12); store(dest, c32, 16); store(dest, c32, 20); store(dest, c32, 24); - store(dend, c32); - store(dend, c32, 4); - store(dend, c32, 8); - store(dend, c32, 12); + store(dend - 28, c32); + store(dend - 24, c32); + store(dend - 20, c32); + store(dend - 16, c32); // align to a multiple of 8 k = 24 + (dest & 4); diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 830675ff78..b83f6f0e31 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -1449,11 +1449,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1465,11 +1465,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1478,6 +1482,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1503,11 +1509,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1519,11 +1525,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1541,17 +1551,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index f98bf0941c..15da4ef2f5 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -2089,15 +2089,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2111,11 +2111,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2126,6 +2130,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2163,15 +2169,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2185,11 +2191,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2209,17 +2219,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/class-implements.untouched.wat b/tests/compiler/class-implements.untouched.wat index 4d5c022163..586cdb6bcf 100644 --- a/tests/compiler/class-implements.untouched.wat +++ b/tests/compiler/class-implements.untouched.wat @@ -2099,15 +2099,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2121,11 +2121,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2136,6 +2140,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2173,15 +2179,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2195,11 +2201,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2219,17 +2229,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/class-overloading.untouched.wat b/tests/compiler/class-overloading.untouched.wat index f65017f8bb..22fd5dade7 100644 --- a/tests/compiler/class-overloading.untouched.wat +++ b/tests/compiler/class-overloading.untouched.wat @@ -2105,15 +2105,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2127,11 +2127,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2142,6 +2146,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2179,15 +2185,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2201,11 +2207,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2225,17 +2235,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index ece2fbb193..d421ead41a 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -1456,11 +1456,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1472,11 +1472,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1485,6 +1489,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1510,11 +1516,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1526,11 +1532,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1548,17 +1558,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index 7b8f71d527..822f047774 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -2201,15 +2201,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2223,11 +2223,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2238,6 +2242,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2275,15 +2281,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2297,11 +2303,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2321,17 +2331,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 689db7a8d4..5d2e052376 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -1517,11 +1517,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1533,11 +1533,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1546,6 +1550,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1571,11 +1577,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1587,11 +1593,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1609,17 +1619,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat index 9a8bd7953f..6407c37541 100644 --- a/tests/compiler/constructor.untouched.wat +++ b/tests/compiler/constructor.untouched.wat @@ -2099,15 +2099,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2121,11 +2121,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2136,6 +2140,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2173,15 +2179,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2195,11 +2201,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2219,17 +2229,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index c28ec1fd83..9bc2f58537 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -2502,15 +2502,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2524,11 +2524,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2539,6 +2543,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2576,15 +2582,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2598,11 +2604,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2622,17 +2632,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index ab75059b7f..ab3009da3f 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -1467,11 +1467,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1483,11 +1483,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1496,6 +1500,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1521,11 +1527,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1537,11 +1543,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1559,17 +1569,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/empty-exportruntime.untouched.wat b/tests/compiler/empty-exportruntime.untouched.wat index bd4a300f3d..401fd899da 100644 --- a/tests/compiler/empty-exportruntime.untouched.wat +++ b/tests/compiler/empty-exportruntime.untouched.wat @@ -2095,15 +2095,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2117,11 +2117,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2132,6 +2136,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2169,15 +2175,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2191,11 +2197,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2215,17 +2225,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/empty-new.untouched.wat b/tests/compiler/empty-new.untouched.wat index be731b7c9e..e4ffed7d77 100644 --- a/tests/compiler/empty-new.untouched.wat +++ b/tests/compiler/empty-new.untouched.wat @@ -2088,15 +2088,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2110,11 +2110,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2125,6 +2129,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2162,15 +2168,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2184,11 +2190,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2208,17 +2218,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 4c7ecc8a1f..ca15d76e6e 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -1436,20 +1436,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $export/mul (param $0 i32) (param $1 i32) (result i32) diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index 32e3e862dd..1e8e2c6965 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -2152,15 +2152,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2174,11 +2174,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2189,6 +2193,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2226,15 +2232,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2248,11 +2254,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2272,17 +2282,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 519291f42c..da3d3f2e65 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -1360,6 +1360,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1437,20 +1438,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $export-default/theDefault diff --git a/tests/compiler/exportstar-rereexport.untouched.wat b/tests/compiler/exportstar-rereexport.untouched.wat index f35a7c83bc..7ba43f5324 100644 --- a/tests/compiler/exportstar-rereexport.untouched.wat +++ b/tests/compiler/exportstar-rereexport.untouched.wat @@ -2133,15 +2133,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2155,11 +2155,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2170,6 +2174,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2207,15 +2213,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2229,11 +2235,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2253,17 +2263,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 71e9b4d692..65b5d79cf3 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -1463,11 +1463,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1479,11 +1479,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1492,6 +1496,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1517,11 +1523,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1533,11 +1539,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1555,17 +1565,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index fdebdd8066..4a073a122e 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -2097,15 +2097,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2119,11 +2119,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2134,6 +2138,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2171,15 +2177,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2193,11 +2199,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2217,17 +2227,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 78aa7e5bc7..ef00a1ce81 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -1389,20 +1389,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $extends-recursive/Parent#set:child (param $0 i32) (param $1 i32) diff --git a/tests/compiler/extends-recursive.untouched.wat b/tests/compiler/extends-recursive.untouched.wat index 3a2c29d05b..6ed8686728 100644 --- a/tests/compiler/extends-recursive.untouched.wat +++ b/tests/compiler/extends-recursive.untouched.wat @@ -2093,15 +2093,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2115,11 +2115,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2130,6 +2134,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2167,15 +2173,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2189,11 +2195,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2213,17 +2223,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 1b8f48cf39..3c8a65addf 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -1469,11 +1469,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1485,11 +1485,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1498,6 +1502,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1523,11 +1529,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1539,11 +1545,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1561,17 +1571,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/field-initialization.untouched.wat b/tests/compiler/field-initialization.untouched.wat index 0676d2cf82..1ca720a8fe 100644 --- a/tests/compiler/field-initialization.untouched.wat +++ b/tests/compiler/field-initialization.untouched.wat @@ -2097,15 +2097,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2119,11 +2119,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2134,6 +2138,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2171,15 +2177,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2193,11 +2199,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2217,17 +2227,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index 261dbdbb5f..c02b1ef468 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -2515,15 +2515,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2537,11 +2537,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2552,6 +2556,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2589,15 +2595,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2611,11 +2617,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2635,17 +2645,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/function-call.untouched.wat b/tests/compiler/function-call.untouched.wat index 76822492b5..a4677ff2e5 100644 --- a/tests/compiler/function-call.untouched.wat +++ b/tests/compiler/function-call.untouched.wat @@ -2124,15 +2124,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2146,11 +2146,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2161,6 +2165,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2198,15 +2204,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2220,11 +2226,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2244,17 +2254,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index c9b4308cbb..1e5ec2918b 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -1376,6 +1376,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1453,20 +1454,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) diff --git a/tests/compiler/function-expression.untouched.wat b/tests/compiler/function-expression.untouched.wat index e705997d21..413449b21d 100644 --- a/tests/compiler/function-expression.untouched.wat +++ b/tests/compiler/function-expression.untouched.wat @@ -2280,15 +2280,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2302,11 +2302,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2317,6 +2321,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2354,15 +2360,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2376,11 +2382,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2400,17 +2410,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index fcbe9778fc..201c5bce18 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -2092,15 +2092,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2114,11 +2114,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2129,6 +2133,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2166,15 +2172,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2188,11 +2194,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2212,17 +2222,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 36e76ad769..096bddcecb 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -1395,20 +1395,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $implicit-getter-setter/Managed#set:foo (param $0 i32) (param $1 i32) diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat index 9e3db25658..2ece763c59 100644 --- a/tests/compiler/implicit-getter-setter.untouched.wat +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -2098,15 +2098,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2120,11 +2120,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2135,6 +2139,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2172,15 +2178,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2194,11 +2200,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2218,17 +2228,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index cfff8e5413..0b860d05b6 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -1484,11 +1484,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1500,11 +1500,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1513,6 +1517,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1538,11 +1544,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1554,11 +1560,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1576,17 +1586,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat index 26528f50f9..1ddc2f0587 100644 --- a/tests/compiler/infer-array.untouched.wat +++ b/tests/compiler/infer-array.untouched.wat @@ -2107,15 +2107,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2129,11 +2129,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2144,6 +2148,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2181,15 +2187,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2203,11 +2209,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2227,17 +2237,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index d174a8aafe..cb94606409 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -1334,6 +1334,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1411,20 +1412,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $infer-generic/test1 (param $0 f32) (result f32) diff --git a/tests/compiler/infer-generic.untouched.wat b/tests/compiler/infer-generic.untouched.wat index 0a5b00296d..033e8f023c 100644 --- a/tests/compiler/infer-generic.untouched.wat +++ b/tests/compiler/infer-generic.untouched.wat @@ -2178,15 +2178,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2200,11 +2200,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2215,6 +2219,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2252,15 +2258,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2274,11 +2280,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2298,17 +2308,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index c32bb3f224..274e303657 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -1460,11 +1460,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1476,11 +1476,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1489,6 +1493,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1514,11 +1520,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1530,11 +1536,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1552,17 +1562,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 32542e66c1..1d5ff6d108 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -2298,15 +2298,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2320,11 +2320,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2335,6 +2339,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2372,15 +2378,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2394,11 +2400,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2418,17 +2428,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat index 1e83e93d9e..4c8faf7a93 100644 --- a/tests/compiler/instanceof-class.untouched.wat +++ b/tests/compiler/instanceof-class.untouched.wat @@ -2091,15 +2091,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2113,11 +2113,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2128,6 +2132,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2165,15 +2171,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2187,11 +2193,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2211,17 +2221,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index a4bdf5a994..df7c4f1a0a 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -1312,6 +1312,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1389,20 +1390,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $issues/1095/Foo#set:bar (param $0 i32) (param $1 i32) diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat index 28e3ed47d1..08414320a1 100644 --- a/tests/compiler/issues/1095.untouched.wat +++ b/tests/compiler/issues/1095.untouched.wat @@ -2091,15 +2091,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2113,11 +2113,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2128,6 +2132,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2165,15 +2171,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2187,11 +2193,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2211,17 +2221,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index bdea2c460c..46c10f4394 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -1324,28 +1324,37 @@ i32.const 0 i32.store8 local.get $0 - i32.const 8 + i32.const 12 i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=10 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=9 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 + i32.const 4 + i32.sub i32.const 0 - i32.store8 offset=8 + i32.store8 local.get $0 i32.const 0 local.get $0 @@ -1365,11 +1374,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1381,11 +1390,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1403,17 +1416,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/issues/1225.untouched.wat b/tests/compiler/issues/1225.untouched.wat index bd75003b0d..1bab662488 100644 --- a/tests/compiler/issues/1225.untouched.wat +++ b/tests/compiler/issues/1225.untouched.wat @@ -2102,15 +2102,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2124,11 +2124,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2139,6 +2143,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2176,15 +2182,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2198,11 +2204,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2222,17 +2232,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 0f22d6a56c..e5d9a3a0cc 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1459,11 +1459,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1475,11 +1475,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1488,6 +1492,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1513,11 +1519,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1529,11 +1535,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1551,17 +1561,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/issues/1699.untouched.wat b/tests/compiler/issues/1699.untouched.wat index 9fb98ff516..2aaf90c376 100644 --- a/tests/compiler/issues/1699.untouched.wat +++ b/tests/compiler/issues/1699.untouched.wat @@ -2092,15 +2092,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2114,11 +2114,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2129,6 +2133,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2166,15 +2172,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2188,11 +2194,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2212,17 +2222,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/logical.untouched.wat b/tests/compiler/logical.untouched.wat index ff384cf84b..e049c23b78 100644 --- a/tests/compiler/logical.untouched.wat +++ b/tests/compiler/logical.untouched.wat @@ -2114,15 +2114,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2136,11 +2136,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2151,6 +2155,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2188,15 +2194,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2210,11 +2216,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2234,17 +2244,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index 72985b6e63..474be0d65c 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -2091,15 +2091,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2113,11 +2113,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2128,6 +2132,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2165,15 +2171,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2187,11 +2193,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2211,17 +2221,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/new.untouched.wat b/tests/compiler/new.untouched.wat index efb70a1f7a..9d5e8c7f96 100644 --- a/tests/compiler/new.untouched.wat +++ b/tests/compiler/new.untouched.wat @@ -2094,15 +2094,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2116,11 +2116,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2131,6 +2135,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2168,15 +2174,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2190,11 +2196,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2214,17 +2224,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 402a0479de..5d7a18799d 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -1534,11 +1534,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1550,11 +1550,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1563,6 +1567,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1588,11 +1594,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1604,11 +1610,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1626,17 +1636,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 20f81edaf4..d1b6f4b2c7 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -2192,15 +2192,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2214,11 +2214,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2229,6 +2233,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2266,15 +2272,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2288,11 +2294,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2312,17 +2322,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 526c424157..77be92f63c 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1544,11 +1544,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1560,11 +1560,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1573,6 +1577,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1598,11 +1604,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1614,11 +1620,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1636,17 +1646,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/object-literal.untouched.wat b/tests/compiler/object-literal.untouched.wat index 6f930884e3..a874fe982e 100644 --- a/tests/compiler/object-literal.untouched.wat +++ b/tests/compiler/object-literal.untouched.wat @@ -2181,15 +2181,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2203,11 +2203,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2218,6 +2222,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2255,15 +2261,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2277,11 +2283,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2301,17 +2311,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/optional-typeparameters.untouched.wat b/tests/compiler/optional-typeparameters.untouched.wat index 5e250f884c..a61ea351a2 100644 --- a/tests/compiler/optional-typeparameters.untouched.wat +++ b/tests/compiler/optional-typeparameters.untouched.wat @@ -2097,15 +2097,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2119,11 +2119,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2134,6 +2138,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2171,15 +2177,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2193,11 +2199,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2217,17 +2227,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index a991b92d0d..fd5811861a 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -1475,20 +1475,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) diff --git a/tests/compiler/reexport.untouched.wat b/tests/compiler/reexport.untouched.wat index 606aa107fe..ac4118dd92 100644 --- a/tests/compiler/reexport.untouched.wat +++ b/tests/compiler/reexport.untouched.wat @@ -2181,15 +2181,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2203,11 +2203,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2218,6 +2222,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2255,15 +2261,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2277,11 +2283,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2301,17 +2311,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 149580ad4d..c00ddbdd7e 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -1360,6 +1360,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1437,20 +1438,29 @@ i32.const 0 i32.store8 local.get $0 + i32.const 4 + i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $0 ) (func $export-default/theDefault diff --git a/tests/compiler/rereexport.untouched.wat b/tests/compiler/rereexport.untouched.wat index 06e53c71cf..a8867cd1c2 100644 --- a/tests/compiler/rereexport.untouched.wat +++ b/tests/compiler/rereexport.untouched.wat @@ -2133,15 +2133,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2155,11 +2155,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2170,6 +2174,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2207,15 +2213,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2229,11 +2235,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2253,17 +2263,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 8cb1f9e864..f1707f6a09 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -1465,11 +1465,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1481,11 +1481,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1494,6 +1498,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1519,11 +1525,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1535,11 +1541,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1557,17 +1567,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat index 2b89777621..52ab0b7763 100644 --- a/tests/compiler/resolve-access.untouched.wat +++ b/tests/compiler/resolve-access.untouched.wat @@ -2107,15 +2107,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2129,11 +2129,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2144,6 +2148,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2181,15 +2187,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2203,11 +2209,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2227,17 +2237,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index c1ac3cb273..fa7017ca14 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -1696,11 +1696,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1712,11 +1712,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1725,6 +1729,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1750,11 +1756,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1766,11 +1772,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1788,17 +1798,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index afb5a71f3e..5801548b46 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -2367,15 +2367,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2389,11 +2389,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2404,6 +2408,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2441,15 +2447,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2463,11 +2469,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2487,17 +2497,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 8ae6c33db6..8a36638a7a 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -1516,11 +1516,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1532,11 +1532,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1545,6 +1549,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1570,11 +1576,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1586,11 +1592,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1608,17 +1618,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 313896f16d..5394aef3fd 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -2130,15 +2130,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2152,11 +2152,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2167,6 +2171,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2204,15 +2210,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2226,11 +2232,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2250,17 +2260,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index f73276880e..6aee7b4986 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -1483,11 +1483,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1499,11 +1499,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1512,6 +1516,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1537,11 +1543,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1553,11 +1559,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1575,17 +1585,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-function-expression.untouched.wat b/tests/compiler/resolve-function-expression.untouched.wat index 56b6e90d2b..bdff76d4b4 100644 --- a/tests/compiler/resolve-function-expression.untouched.wat +++ b/tests/compiler/resolve-function-expression.untouched.wat @@ -2175,15 +2175,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2197,11 +2197,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2212,6 +2216,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2249,15 +2255,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2271,11 +2277,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2295,17 +2305,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-nested.untouched.wat b/tests/compiler/resolve-nested.untouched.wat index d02fe50cb8..1b8611c0ad 100644 --- a/tests/compiler/resolve-nested.untouched.wat +++ b/tests/compiler/resolve-nested.untouched.wat @@ -2113,15 +2113,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2135,11 +2135,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2150,6 +2154,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2187,15 +2193,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2209,11 +2215,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2233,17 +2243,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-new.untouched.wat b/tests/compiler/resolve-new.untouched.wat index f333c2c578..a4d64a10c6 100644 --- a/tests/compiler/resolve-new.untouched.wat +++ b/tests/compiler/resolve-new.untouched.wat @@ -2089,15 +2089,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2111,11 +2111,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2126,6 +2130,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2163,15 +2169,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2185,11 +2191,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2209,17 +2219,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index ae7fef3b2b..4ff405819e 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -1483,11 +1483,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1499,11 +1499,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1512,6 +1516,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1537,11 +1543,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1553,11 +1559,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1575,17 +1585,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-propertyaccess.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat index 21d0298c84..333e3afea5 100644 --- a/tests/compiler/resolve-propertyaccess.untouched.wat +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -2175,15 +2175,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2197,11 +2197,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2212,6 +2216,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2249,15 +2255,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2271,11 +2277,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2295,17 +2305,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 0f8cf28191..4c617d7b58 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1529,11 +1529,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1545,11 +1545,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1558,6 +1562,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1583,11 +1589,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1599,11 +1605,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1621,17 +1631,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 38b120b62a..b388281c93 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -2183,15 +2183,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2205,11 +2205,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2220,6 +2224,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2257,15 +2263,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2279,11 +2285,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2303,17 +2313,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index cc227f63c1..927c39c239 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -1503,11 +1503,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1519,11 +1519,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1532,6 +1536,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1557,11 +1563,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1573,11 +1579,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1595,17 +1605,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/resolve-unary.untouched.wat b/tests/compiler/resolve-unary.untouched.wat index d6283701d4..31ae3791e5 100644 --- a/tests/compiler/resolve-unary.untouched.wat +++ b/tests/compiler/resolve-unary.untouched.wat @@ -2172,15 +2172,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2194,11 +2194,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2209,6 +2213,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2246,15 +2252,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2268,11 +2274,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2292,17 +2302,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/rt/finalize.untouched.wat b/tests/compiler/rt/finalize.untouched.wat index 9825ae6c15..d7913da99e 100644 --- a/tests/compiler/rt/finalize.untouched.wat +++ b/tests/compiler/rt/finalize.untouched.wat @@ -2112,15 +2112,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2134,11 +2134,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2149,6 +2153,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2186,15 +2192,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2208,11 +2214,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2232,17 +2242,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index a5356c9353..e0f5894134 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -2099,15 +2099,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2121,11 +2121,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2136,6 +2140,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2173,15 +2179,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2195,11 +2201,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2219,17 +2229,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index ab75059b7f..ab3009da3f 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -1467,11 +1467,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1483,11 +1483,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1496,6 +1500,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1521,11 +1527,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1537,11 +1543,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1559,17 +1569,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/rt/runtime-incremental-export.untouched.wat b/tests/compiler/rt/runtime-incremental-export.untouched.wat index bd4a300f3d..401fd899da 100644 --- a/tests/compiler/rt/runtime-incremental-export.untouched.wat +++ b/tests/compiler/rt/runtime-incremental-export.untouched.wat @@ -2095,15 +2095,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2117,11 +2117,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2132,6 +2136,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2169,15 +2175,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2191,11 +2197,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2215,17 +2225,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 1cccf9a240..f270b118fe 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -2601,11 +2601,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -2617,11 +2617,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -2630,6 +2634,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -2655,11 +2661,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -2671,11 +2677,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -2693,17 +2703,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std-wasi/console.untouched.wat b/tests/compiler/std-wasi/console.untouched.wat index 0c22c4089a..8bff060e63 100644 --- a/tests/compiler/std-wasi/console.untouched.wat +++ b/tests/compiler/std-wasi/console.untouched.wat @@ -3609,15 +3609,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -3631,11 +3631,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -3646,6 +3650,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -3683,15 +3689,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -3705,11 +3711,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -3729,17 +3739,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 8bc98540d0..2e9efd220c 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -2024,11 +2024,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -2040,11 +2040,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -2053,6 +2057,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -2078,11 +2084,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -2094,11 +2100,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -2116,17 +2126,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std-wasi/crypto.untouched.wat b/tests/compiler/std-wasi/crypto.untouched.wat index 2f4a2b0e81..c4ee28c9af 100644 --- a/tests/compiler/std-wasi/crypto.untouched.wat +++ b/tests/compiler/std-wasi/crypto.untouched.wat @@ -2643,15 +2643,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2665,11 +2665,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2680,6 +2684,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2717,15 +2723,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2739,11 +2745,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2763,17 +2773,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 8a27466d87..787ffcd72c 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -2620,11 +2620,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -2636,11 +2636,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -2649,6 +2653,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -2674,11 +2680,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -2690,11 +2696,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -2712,17 +2722,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std-wasi/process.untouched.wat b/tests/compiler/std-wasi/process.untouched.wat index 980dc7776f..871c8ddbc7 100644 --- a/tests/compiler/std-wasi/process.untouched.wat +++ b/tests/compiler/std-wasi/process.untouched.wat @@ -3608,15 +3608,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -3630,11 +3630,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -3645,6 +3649,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -3682,15 +3688,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -3704,11 +3710,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -3728,17 +3738,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index ecebceccea..30cdc60d35 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -1543,11 +1543,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1559,11 +1559,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1572,6 +1576,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1597,11 +1603,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1613,11 +1619,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1635,17 +1645,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 0cb189f943..53b69b78d9 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -2165,15 +2165,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2187,11 +2187,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2202,6 +2206,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2239,15 +2245,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2261,11 +2267,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2285,17 +2295,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 381d338b31..26055ed3c4 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -2118,11 +2118,11 @@ local.get $0 local.get $2 i32.add - i32.const 4 - i32.sub local.tee $3 + i32.const 1 + i32.sub local.get $1 - i32.store8 offset=3 + i32.store8 local.get $2 i32.const 2 i32.le_u @@ -2134,11 +2134,15 @@ local.get $1 i32.store8 offset=2 local.get $3 + i32.const 2 + i32.sub local.get $1 - i32.store8 offset=2 + i32.store8 local.get $3 + i32.const 3 + i32.sub local.get $1 - i32.store8 offset=1 + i32.store8 local.get $2 i32.const 6 i32.le_u @@ -2147,6 +2151,8 @@ local.get $1 i32.store8 offset=3 local.get $3 + i32.const 4 + i32.sub local.get $1 i32.store8 local.get $2 @@ -2177,11 +2183,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub local.get $0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -2193,11 +2199,15 @@ local.get $0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub local.get $0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub local.get $0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -2215,17 +2225,25 @@ local.get $0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub local.get $0 i32.store local.get $1 + i32.const 24 + i32.sub local.get $0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub local.get $0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub local.get $0 - i32.store offset=12 + i32.store local.get $3 local.get $3 i32.const 4 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 5738d1e534..02755bc6c6 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -2479,15 +2479,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2501,11 +2501,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2516,6 +2520,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2553,15 +2559,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2575,11 +2581,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2599,17 +2609,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 4fcd5d091d..d9f7ab9644 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -1460,11 +1460,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1476,11 +1476,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1489,6 +1493,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1514,11 +1520,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1530,11 +1536,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1552,17 +1562,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 1449f6b80c..b5b164cbf1 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -2095,15 +2095,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2117,11 +2117,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2132,6 +2136,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2169,15 +2175,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2191,11 +2197,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2215,17 +2225,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 91afc24b3d..1823ab78f0 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1467,11 +1467,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1483,11 +1483,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1496,6 +1500,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1521,11 +1527,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1537,11 +1543,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1559,17 +1569,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index 48136ef6aa..a731b9480c 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -2102,15 +2102,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2124,11 +2124,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2139,6 +2143,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2176,15 +2182,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2198,11 +2204,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2222,17 +2232,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index cadec315ca..86710524b8 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -1321,6 +1321,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1398,28 +1399,37 @@ i32.const 0 i32.store8 local.get $0 - i32.const 4 + i32.const 8 i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=6 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=5 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 + i32.const 4 + i32.sub i32.const 0 - i32.store8 offset=4 + i32.store8 local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index 5d626f364a..0558d6d621 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -2104,15 +2104,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2126,11 +2126,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2141,6 +2145,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2178,15 +2184,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2200,11 +2206,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2224,17 +2234,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 5fd8875b69..22fb9dfa79 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1483,11 +1483,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1499,11 +1499,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1512,6 +1516,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1537,11 +1543,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1553,11 +1559,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1575,17 +1585,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 2f2a1a6138..414e311323 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -2115,15 +2115,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2137,11 +2137,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2152,6 +2156,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2189,15 +2195,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2211,11 +2217,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2235,17 +2245,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 88733b3508..059d3b8f67 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -1314,6 +1314,7 @@ ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) + (local $1 i32) global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1391,28 +1392,37 @@ i32.const 0 i32.store8 local.get $0 - i32.const 4 + i32.const 8 i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=6 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=5 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 + i32.const 4 + i32.sub i32.const 0 - i32.store8 offset=4 + i32.store8 local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index bcf3caf17a..cae89f6437 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -2102,15 +2102,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2124,11 +2124,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2139,6 +2143,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2176,15 +2182,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2198,11 +2204,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2222,17 +2232,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 8bdf61ac85..c3b8c6bf8e 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -1450,28 +1450,37 @@ i32.const 0 i32.store8 local.get $0 - i32.const 4 + i32.const 8 i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=6 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=5 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 + i32.const 4 + i32.sub i32.const 0 - i32.store8 offset=4 + i32.store8 local.get $0 ) (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index 8ef485fe7c..09a369f4ee 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -2156,15 +2156,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2178,11 +2178,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2193,6 +2197,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2230,15 +2236,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2252,11 +2258,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2276,17 +2286,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index df0d3d592d..93c7ec1f66 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -361,28 +361,37 @@ i32.const 0 i32.store8 local.get $0 - i32.const 4 + i32.const 8 i32.add + local.tee $1 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=1 local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=6 - local.get $0 + i32.store8 + local.get $1 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=5 + i32.store8 local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 + i32.const 4 + i32.sub i32.const 0 - i32.store8 offset=4 + i32.store8 end global.get $std/pointer/one global.get $std/pointer/two diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index abf2467f3a..29a02615c2 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -57,15 +57,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -79,11 +79,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -94,6 +98,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -131,15 +137,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -153,11 +159,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -177,17 +187,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index dc6b765f06..7047ab6f6a 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -1474,11 +1474,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1490,11 +1490,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1503,6 +1507,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1528,11 +1534,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1544,11 +1550,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1566,17 +1576,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 5c7bee8bb2..ab55eeebb9 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -2110,15 +2110,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2132,11 +2132,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2147,6 +2151,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2184,15 +2190,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2206,11 +2212,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2230,17 +2240,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index f788031ed0..034d70273a 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -1504,11 +1504,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1520,11 +1520,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1533,6 +1537,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1558,11 +1564,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1574,11 +1580,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1596,17 +1606,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index b467e5415e..4cd40f5ca4 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -2139,15 +2139,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2161,11 +2161,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2176,6 +2180,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2213,15 +2219,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2235,11 +2241,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2259,17 +2269,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index a7ca0ec334..5bf2159abb 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -1595,11 +1595,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1611,11 +1611,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1624,6 +1628,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1649,11 +1655,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1665,11 +1671,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1687,17 +1697,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 1973eadef4..90f1c36dcb 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -2200,15 +2200,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2222,11 +2222,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2237,6 +2241,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2274,15 +2280,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2296,11 +2302,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2320,17 +2330,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 093242efdc..77072f9ce3 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1894,11 +1894,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1910,11 +1910,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1923,6 +1927,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1948,11 +1954,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1964,11 +1970,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1986,17 +1996,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index a6b1e75463..7b0ad0a465 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -2277,15 +2277,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2299,11 +2299,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2314,6 +2318,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2351,15 +2357,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2373,11 +2379,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2397,17 +2407,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 443bb457ba..c865ecbc0e 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1475,11 +1475,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1491,11 +1491,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1504,6 +1508,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1529,11 +1535,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1545,11 +1551,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1567,17 +1577,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index 416b9939f1..9419de0426 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -2110,15 +2110,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2132,11 +2132,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2147,6 +2151,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2184,15 +2190,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2206,11 +2212,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2230,17 +2240,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 4337cdb1a0..e0b17f7619 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -2488,11 +2488,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -2504,11 +2504,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -2517,6 +2521,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -2542,11 +2548,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -2558,11 +2564,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -2580,17 +2590,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index f03080123f..60a9317503 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -2813,15 +2813,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2835,11 +2835,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2850,6 +2854,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2887,15 +2893,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2909,11 +2915,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2933,17 +2943,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 6c8b9aa8d1..35846a4d88 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -1565,11 +1565,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1581,11 +1581,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1594,6 +1598,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1619,11 +1625,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1635,11 +1641,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1657,17 +1667,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index 78ee1c0fce..f885cf6213 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -2147,15 +2147,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2169,11 +2169,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2184,6 +2188,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2221,15 +2227,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2243,11 +2249,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2267,17 +2277,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index d582f9817b..93086f1cf5 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -2085,11 +2085,11 @@ local.get $0 local.get $2 i32.add - i32.const 4 - i32.sub local.tee $3 + i32.const 1 + i32.sub local.get $1 - i32.store8 offset=3 + i32.store8 local.get $2 i32.const 2 i32.le_u @@ -2101,11 +2101,15 @@ local.get $1 i32.store8 offset=2 local.get $3 + i32.const 2 + i32.sub local.get $1 - i32.store8 offset=2 + i32.store8 local.get $3 + i32.const 3 + i32.sub local.get $1 - i32.store8 offset=1 + i32.store8 local.get $2 i32.const 6 i32.le_u @@ -2114,6 +2118,8 @@ local.get $1 i32.store8 offset=3 local.get $3 + i32.const 4 + i32.sub local.get $1 i32.store8 local.get $2 @@ -2144,11 +2150,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub local.get $0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -2160,11 +2166,15 @@ local.get $0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub local.get $0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub local.get $0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -2182,17 +2192,25 @@ local.get $0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub local.get $0 i32.store local.get $1 + i32.const 24 + i32.sub local.get $0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub local.get $0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub local.get $0 - i32.store offset=12 + i32.store local.get $3 local.get $3 i32.const 4 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 473249329b..d972216e77 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -2434,15 +2434,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2456,11 +2456,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2471,6 +2475,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2508,15 +2514,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2530,11 +2536,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2554,17 +2564,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/super-inline.untouched.wat b/tests/compiler/super-inline.untouched.wat index e52852f9e8..5505971f16 100644 --- a/tests/compiler/super-inline.untouched.wat +++ b/tests/compiler/super-inline.untouched.wat @@ -2090,15 +2090,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2112,11 +2112,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2127,6 +2131,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2164,15 +2170,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2186,11 +2192,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2210,17 +2220,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 28c23cc739..31f73ba8d5 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1604,11 +1604,11 @@ local.get $0 local.get $1 i32.add - i32.const 4 - i32.sub local.tee $2 + i32.const 1 + i32.sub i32.const 0 - i32.store8 offset=3 + i32.store8 local.get $1 i32.const 2 i32.le_u @@ -1620,11 +1620,15 @@ i32.const 0 i32.store8 offset=2 local.get $2 + i32.const 2 + i32.sub i32.const 0 - i32.store8 offset=2 + i32.store8 local.get $2 + i32.const 3 + i32.sub i32.const 0 - i32.store8 offset=1 + i32.store8 local.get $1 i32.const 6 i32.le_u @@ -1633,6 +1637,8 @@ i32.const 0 i32.store8 offset=3 local.get $2 + i32.const 4 + i32.sub i32.const 0 i32.store8 local.get $1 @@ -1658,11 +1664,11 @@ i32.and local.tee $2 i32.add - i32.const 28 - i32.sub local.tee $1 + i32.const 4 + i32.sub i32.const 0 - i32.store offset=24 + i32.store local.get $2 i32.const 8 i32.le_u @@ -1674,11 +1680,15 @@ i32.const 0 i32.store offset=8 local.get $1 + i32.const 12 + i32.sub i32.const 0 - i32.store offset=16 + i32.store local.get $1 + i32.const 8 + i32.sub i32.const 0 - i32.store offset=20 + i32.store local.get $2 i32.const 24 i32.le_u @@ -1696,17 +1706,25 @@ i32.const 0 i32.store offset=24 local.get $1 + i32.const 28 + i32.sub i32.const 0 i32.store local.get $1 + i32.const 24 + i32.sub i32.const 0 - i32.store offset=4 + i32.store local.get $1 + i32.const 20 + i32.sub i32.const 0 - i32.store offset=8 + i32.store local.get $1 + i32.const 16 + i32.sub i32.const 0 - i32.store offset=12 + i32.store local.get $0 local.get $0 i32.const 4 diff --git a/tests/compiler/templateliteral.untouched.wat b/tests/compiler/templateliteral.untouched.wat index f2eb191d5b..eb2e9764a6 100644 --- a/tests/compiler/templateliteral.untouched.wat +++ b/tests/compiler/templateliteral.untouched.wat @@ -2247,15 +2247,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2269,11 +2269,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2284,6 +2288,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2321,15 +2327,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2343,11 +2349,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2367,17 +2377,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat index 2de06c596a..25cb9d7525 100644 --- a/tests/compiler/typeof.untouched.wat +++ b/tests/compiler/typeof.untouched.wat @@ -2269,15 +2269,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2291,11 +2291,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2306,6 +2310,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2343,15 +2349,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2365,11 +2371,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2389,17 +2399,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4 diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index f609d4b6ba..404c0bbf9b 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -2544,15 +2544,15 @@ local.get $5 local.get $3 i32.add - i32.const 4 - i32.sub local.set $6 local.get $5 local.get $4 i32.store8 local.get $6 + i32.const 1 + i32.sub local.get $4 - i32.store8 offset=3 + i32.store8 local.get $3 i32.const 2 i32.le_u @@ -2566,11 +2566,15 @@ local.get $4 i32.store8 offset=2 local.get $6 + i32.const 2 + i32.sub local.get $4 - i32.store8 offset=2 + i32.store8 local.get $6 + i32.const 3 + i32.sub local.get $4 - i32.store8 offset=1 + i32.store8 local.get $3 i32.const 6 i32.le_u @@ -2581,6 +2585,8 @@ local.get $4 i32.store8 offset=3 local.get $6 + i32.const 4 + i32.sub local.get $4 i32.store8 local.get $3 @@ -2618,15 +2624,15 @@ local.get $5 local.get $3 i32.add - i32.const 28 - i32.sub local.set $6 local.get $5 local.get $8 i32.store local.get $6 + i32.const 4 + i32.sub local.get $8 - i32.store offset=24 + i32.store local.get $3 i32.const 8 i32.le_u @@ -2640,11 +2646,15 @@ local.get $8 i32.store offset=8 local.get $6 + i32.const 12 + i32.sub local.get $8 - i32.store offset=16 + i32.store local.get $6 + i32.const 8 + i32.sub local.get $8 - i32.store offset=20 + i32.store local.get $3 i32.const 24 i32.le_u @@ -2664,17 +2674,25 @@ local.get $8 i32.store offset=24 local.get $6 + i32.const 28 + i32.sub local.get $8 i32.store local.get $6 + i32.const 24 + i32.sub local.get $8 - i32.store offset=4 + i32.store local.get $6 + i32.const 20 + i32.sub local.get $8 - i32.store offset=8 + i32.store local.get $6 + i32.const 16 + i32.sub local.get $8 - i32.store offset=12 + i32.store i32.const 24 local.get $5 i32.const 4