diff --git a/src/compiler.ts b/src/compiler.ts index bc0580d8..74444427 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6882,19 +6882,29 @@ export class Compiler extends DiagnosticEmitter { ConversionKind.NONE, WrapMode.NONE ); + // shortcut if compiling the getter already failed if (getExpressionId(getValue) == ExpressionId.Unreachable) return getValue; + var currentType = this.currentType; - var op: BinaryOp; - var nativeType: NativeType; - var nativeOne: ExpressionRef; + // if the value isn't dropped, a temp. local is required to remember the original value + var tempLocal: Local | null = null; + if (contextualType != Type.void) { + tempLocal = currentFunction.getTempLocal(currentType, false); + getValue = module.createTeeLocal( + tempLocal.index, + getValue + ); + } + + var calcValue: ExpressionRef; switch (expression.operator) { case Token.PLUS_PLUS: { // TODO: check operator overload - if (this.currentType.is(TypeFlags.REFERENCE)) { + if (currentType.is(TypeFlags.REFERENCE)) { this.error( DiagnosticCode.Operation_not_supported, expression.range @@ -6910,38 +6920,48 @@ export class Compiler extends DiagnosticEmitter { case TypeKind.U16: case TypeKind.U32: case TypeKind.BOOL: { - op = BinaryOp.AddI32; - nativeType = NativeType.I32; - nativeOne = module.createI32(1); + calcValue = module.createBinary( + BinaryOp.AddI32, + getValue, + module.createI32(1) + ); break; } - case TypeKind.USIZE: // TODO: check operator overload + case TypeKind.USIZE: case TypeKind.ISIZE: { let options = this.options; - op = options.isWasm64 - ? BinaryOp.AddI64 - : BinaryOp.AddI32; - nativeType = options.nativeSizeType; - nativeOne = currentType.toNativeOne(module); + calcValue = module.createBinary( + options.isWasm64 + ? BinaryOp.AddI64 + : BinaryOp.AddI32, + getValue, + currentType.toNativeOne(module) + ); break; } case TypeKind.I64: case TypeKind.U64: { - op = BinaryOp.AddI64; - nativeType = NativeType.I64; - nativeOne = module.createI64(1); + calcValue = module.createBinary( + BinaryOp.AddI64, + getValue, + module.createI64(1) + ); break; } case TypeKind.F32: { - op = BinaryOp.AddF32; - nativeType = NativeType.F32; - nativeOne = module.createF32(1); + calcValue = module.createBinary( + BinaryOp.AddF32, + getValue, + module.createF32(1) + ); break; } case TypeKind.F64: { - op = BinaryOp.AddF64; - nativeType = NativeType.F64; - nativeOne = module.createF64(1); + calcValue = module.createBinary( + BinaryOp.AddF64, + getValue, + module.createF64(1) + ); break; } default: { @@ -6970,38 +6990,48 @@ export class Compiler extends DiagnosticEmitter { case TypeKind.U16: case TypeKind.U32: case TypeKind.BOOL: { - op = BinaryOp.SubI32; - nativeType = NativeType.I32; - nativeOne = module.createI32(1); + calcValue = module.createBinary( + BinaryOp.SubI32, + getValue, + module.createI32(1) + ); break; } - case TypeKind.USIZE: // TODO: check operator overload + case TypeKind.USIZE: case TypeKind.ISIZE: { let options = this.options; - op = options.isWasm64 - ? BinaryOp.SubI64 - : BinaryOp.SubI32; - nativeType = options.nativeSizeType; - nativeOne = currentType.toNativeOne(module); + calcValue = module.createBinary( + options.isWasm64 + ? BinaryOp.SubI64 + : BinaryOp.SubI32, + getValue, + currentType.toNativeOne(module) + ); break; } case TypeKind.I64: case TypeKind.U64: { - op = BinaryOp.SubI64; - nativeType = NativeType.I64; - nativeOne = module.createI64(1); + calcValue = module.createBinary( + BinaryOp.SubI64, + getValue, + module.createI64(1) + ); break; } case TypeKind.F32: { - op = BinaryOp.SubF32; - nativeType = NativeType.F32; - nativeOne = module.createF32(1); + calcValue = module.createBinary( + BinaryOp.SubF32, + getValue, + module.createF32(1) + ); break; } case TypeKind.F64: { - op = BinaryOp.SubF64; - nativeType = NativeType.F64; - nativeOne = module.createF64(1); + calcValue = module.createBinary( + BinaryOp.SubF64, + getValue, + module.createF64(1) + ); break; } default: { @@ -7018,33 +7048,25 @@ export class Compiler extends DiagnosticEmitter { } // simplify if dropped anyway - if (contextualType == Type.void) { + if (!tempLocal) { + this.currentType = Type.void; return this.compileAssignmentWithValue(expression.operand, - module.createBinary(op, - getValue, - nativeOne - ), + calcValue, false ); } - // otherwise use a temp local for the intermediate value (always possibly overflows) - var tempLocal = currentFunction.getTempLocal(currentType, false); + // otherwise use the temp. local for the intermediate value (always possibly overflows) var setValue = this.compileAssignmentWithValue(expression.operand, - module.createBinary(op, - this.module.createGetLocal(tempLocal.index, nativeType), - nativeOne - ), + calcValue, // also tees getValue to tempLocal false ); - this.currentType = assert(tempLocal).type; - currentFunction.freeTempLocal(tempLocal); - - var localIndex = (tempLocal).index; + this.currentType = tempLocal.type; + currentFunction.freeTempLocal(tempLocal); + var nativeType = tempLocal.type.toNativeType(); return module.createBlock(null, [ - module.createSetLocal(localIndex, getValue), setValue, - module.createGetLocal(localIndex, nativeType) + module.createGetLocal(tempLocal.index, nativeType) ], nativeType); // result of 'x++' / 'x--' might overflow } diff --git a/tests/compiler/comma.untouched.wat b/tests/compiler/comma.untouched.wat index bc1e5c48..5c542b4d 100644 --- a/tests/compiler/comma.untouched.wat +++ b/tests/compiler/comma.untouched.wat @@ -18,12 +18,11 @@ (block (set_global $comma/b (block (result i32) - (set_local $0 - (get_global $comma/a) - ) (set_global $comma/a (i32.add - (get_local $0) + (tee_local $0 + (get_global $comma/a) + ) (i32.const 1) ) ) diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 55c07c05..772915cb 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -78,12 +78,11 @@ (nop) (br_if $continue|1 (block (result i32) - (set_local $0 - (get_global $do/n) - ) (set_global $do/n (i32.sub - (get_local $0) + (tee_local $0 + (get_global $do/n) + ) (i32.const 1) ) ) diff --git a/tests/compiler/memcpy.untouched.wat b/tests/compiler/memcpy.untouched.wat index 55749c02..dc900941 100644 --- a/tests/compiler/memcpy.untouched.wat +++ b/tests/compiler/memcpy.untouched.wat @@ -37,12 +37,11 @@ (block (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -50,12 +49,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -256,12 +254,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -269,12 +266,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -330,12 +326,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -343,12 +338,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -358,12 +352,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -371,12 +364,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -386,12 +378,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -399,12 +390,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -553,12 +543,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -566,12 +555,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -581,12 +569,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -594,12 +581,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -748,12 +734,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -761,12 +746,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -917,12 +901,11 @@ (block (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -930,12 +913,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -945,12 +927,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -958,12 +939,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -973,12 +953,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -986,12 +965,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1001,12 +979,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1014,12 +991,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1029,12 +1005,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1042,12 +1017,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1057,12 +1031,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1070,12 +1043,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1085,12 +1057,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1098,12 +1069,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1113,12 +1083,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1126,12 +1095,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1141,12 +1109,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1154,12 +1121,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1169,12 +1135,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1182,12 +1147,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1197,12 +1161,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1210,12 +1173,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1225,12 +1187,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1238,12 +1199,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1253,12 +1213,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1266,12 +1225,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1281,12 +1239,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1294,12 +1251,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1309,12 +1265,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1322,12 +1277,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1337,12 +1291,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1350,12 +1303,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1373,12 +1325,11 @@ (block (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1386,12 +1337,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1401,12 +1351,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1414,12 +1363,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1429,12 +1377,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1442,12 +1389,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1457,12 +1403,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1470,12 +1415,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1485,12 +1429,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1498,12 +1441,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1513,12 +1455,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1526,12 +1467,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1541,12 +1481,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1554,12 +1493,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1569,12 +1507,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1582,12 +1519,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1605,12 +1541,11 @@ (block (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1618,12 +1553,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1633,12 +1567,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1646,12 +1579,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1661,12 +1593,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1674,12 +1605,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1689,12 +1619,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1702,12 +1631,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1725,12 +1653,11 @@ (block (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1738,12 +1665,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1753,12 +1679,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1766,12 +1691,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -1788,12 +1712,11 @@ ) (i32.store8 (block (result i32) - (set_local $6 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $6) + (tee_local $6 + (get_local $0) + ) (i32.const 1) ) ) @@ -1801,12 +1724,11 @@ ) (i32.load8_u (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/memmove.untouched.wat b/tests/compiler/memmove.untouched.wat index 630285d6..982ea09d 100644 --- a/tests/compiler/memmove.untouched.wat +++ b/tests/compiler/memmove.untouched.wat @@ -71,12 +71,11 @@ ) (i32.store8 (block (result i32) - (set_local $4 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $4) + (tee_local $4 + (get_local $0) + ) (i32.const 1) ) ) @@ -84,12 +83,11 @@ ) (i32.load8_u (block (result i32) - (set_local $4 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $4) + (tee_local $4 + (get_local $1) + ) (i32.const 1) ) ) @@ -152,12 +150,11 @@ (block (i32.store8 (block (result i32) - (set_local $4 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $4) + (tee_local $4 + (get_local $0) + ) (i32.const 1) ) ) @@ -165,12 +162,11 @@ ) (i32.load8_u (block (result i32) - (set_local $4 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $4) + (tee_local $4 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/overflow.untouched.wat b/tests/compiler/overflow.untouched.wat index 7b03ddba..50ba4b1c 100644 --- a/tests/compiler/overflow.untouched.wat +++ b/tests/compiler/overflow.untouched.wat @@ -78,12 +78,11 @@ ) (set_local $1 (block (result i32) - (set_local $2 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $2) + (tee_local $2 + (get_local $0) + ) (i32.const 1) ) ) @@ -115,12 +114,11 @@ ) (set_local $1 (block (result i32) - (set_local $2 - (get_local $0) - ) (set_local $0 (i32.sub - (get_local $2) + (tee_local $2 + (get_local $0) + ) (i32.const 1) ) ) @@ -361,12 +359,11 @@ ) (set_local $0 (block (result i32) - (set_local $2 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $2) + (tee_local $2 + (get_local $1) + ) (i32.const 1) ) ) @@ -398,12 +395,11 @@ ) (set_local $0 (block (result i32) - (set_local $2 - (get_local $1) - ) (set_local $1 (i32.sub - (get_local $2) + (tee_local $2 + (get_local $1) + ) (i32.const 1) ) ) @@ -638,12 +634,11 @@ ) (set_local $1 (block (result i32) - (set_local $2 - (get_local $0) - ) (set_local $0 (i32.sub - (get_local $2) + (tee_local $2 + (get_local $0) + ) (i32.const 1) ) ) @@ -672,12 +667,11 @@ ) (set_local $1 (block (result i32) - (set_local $2 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $2) + (tee_local $2 + (get_local $0) + ) (i32.const 1) ) ) @@ -894,12 +888,11 @@ ) (set_local $0 (block (result i32) - (set_local $2 - (get_local $1) - ) (set_local $1 (i32.sub - (get_local $2) + (tee_local $2 + (get_local $1) + ) (i32.const 1) ) ) @@ -928,12 +921,11 @@ ) (set_local $0 (block (result i32) - (set_local $2 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $2) + (tee_local $2 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/allocator_arena.untouched.wat b/tests/compiler/std/allocator_arena.untouched.wat index 3c0f4ba7..d5816a3e 100644 --- a/tests/compiler/std/allocator_arena.untouched.wat +++ b/tests/compiler/std/allocator_arena.untouched.wat @@ -506,12 +506,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -519,12 +518,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -725,12 +723,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -738,12 +735,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -798,12 +794,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -811,12 +806,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -826,12 +820,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -839,12 +832,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -854,12 +846,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -867,12 +858,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1023,12 +1013,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1036,12 +1025,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1051,12 +1039,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1064,12 +1051,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1220,12 +1206,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1233,12 +1218,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1390,12 +1374,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1403,12 +1386,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1418,12 +1400,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1431,12 +1412,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1446,12 +1426,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1459,12 +1438,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1474,12 +1452,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1487,12 +1464,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1502,12 +1478,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1515,12 +1490,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1530,12 +1504,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1543,12 +1516,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1558,12 +1530,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1571,12 +1542,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1586,12 +1556,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1599,12 +1568,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1614,12 +1582,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1627,12 +1594,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1642,12 +1608,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1655,12 +1620,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1670,12 +1634,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1683,12 +1646,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1698,12 +1660,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1711,12 +1672,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1726,12 +1686,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1739,12 +1698,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1754,12 +1712,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1767,12 +1724,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1782,12 +1738,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1795,12 +1750,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1810,12 +1764,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1823,12 +1776,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1846,12 +1798,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1859,12 +1810,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1874,12 +1824,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1887,12 +1836,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1902,12 +1850,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1915,12 +1862,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1930,12 +1876,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1943,12 +1888,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1958,12 +1902,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1971,12 +1914,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1986,12 +1928,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1999,12 +1940,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2014,12 +1954,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2027,12 +1966,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2042,12 +1980,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2055,12 +1992,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2078,12 +2014,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2091,12 +2026,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2106,12 +2040,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2119,12 +2052,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2134,12 +2066,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2147,12 +2078,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2162,12 +2092,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2175,12 +2104,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2198,12 +2126,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2211,12 +2138,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2226,12 +2152,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2239,12 +2164,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2261,12 +2185,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2274,12 +2197,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2368,12 +2290,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2381,12 +2302,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2449,12 +2369,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2462,12 +2381,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 6807cb1e..2588af8c 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -1454,12 +1454,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1467,12 +1466,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1673,12 +1671,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1686,12 +1683,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1746,12 +1742,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1759,12 +1754,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1774,12 +1768,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1787,12 +1780,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1802,12 +1794,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1815,12 +1806,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1971,12 +1961,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1984,12 +1973,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1999,12 +1987,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2012,12 +1999,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2168,12 +2154,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2181,12 +2166,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2338,12 +2322,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2351,12 +2334,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2366,12 +2348,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2379,12 +2360,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2394,12 +2374,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2407,12 +2386,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2422,12 +2400,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2435,12 +2412,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2450,12 +2426,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2463,12 +2438,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2478,12 +2452,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2491,12 +2464,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2506,12 +2478,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2519,12 +2490,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2534,12 +2504,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2547,12 +2516,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2562,12 +2530,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2575,12 +2542,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2590,12 +2556,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2603,12 +2568,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2618,12 +2582,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2631,12 +2594,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2646,12 +2608,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2659,12 +2620,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2674,12 +2634,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2687,12 +2646,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2702,12 +2660,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2715,12 +2672,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2730,12 +2686,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2743,12 +2698,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2758,12 +2712,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2771,12 +2724,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2794,12 +2746,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2807,12 +2758,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2822,12 +2772,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2835,12 +2784,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2850,12 +2798,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2863,12 +2810,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2878,12 +2824,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2891,12 +2836,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2906,12 +2850,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2919,12 +2862,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2934,12 +2876,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2947,12 +2888,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2962,12 +2902,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2975,12 +2914,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2990,12 +2928,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3003,12 +2940,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3026,12 +2962,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3039,12 +2974,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3054,12 +2988,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3067,12 +3000,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3082,12 +3014,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3095,12 +3026,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3110,12 +3040,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3123,12 +3052,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3146,12 +3074,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3159,12 +3086,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3174,12 +3100,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3187,12 +3112,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3209,12 +3133,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -3222,12 +3145,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3316,12 +3238,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -3329,12 +3250,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -3397,12 +3317,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -3410,12 +3329,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -6150,12 +6068,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -7230,12 +7147,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -8338,12 +8254,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -9346,12 +9261,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -10858,12 +10772,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -11478,12 +11391,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -12138,12 +12050,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) @@ -14858,12 +14769,11 @@ (get_local $0) (i32.shl (block (result i32) - (set_local $18 - (get_local $15) - ) (set_local $15 (i32.add - (get_local $18) + (tee_local $18 + (get_local $15) + ) (i32.const 1) ) ) @@ -15074,12 +14984,11 @@ (get_local $0) (i32.shl (block (result i32) - (set_local $17 - (get_local $15) - ) (set_local $15 (i32.add - (get_local $17) + (tee_local $17 + (get_local $15) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index c7e35e81..064d3bcf 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -615,12 +615,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -628,12 +627,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -834,12 +832,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -847,12 +844,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -907,12 +903,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -920,12 +915,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -935,12 +929,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -948,12 +941,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -963,12 +955,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -976,12 +967,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1132,12 +1122,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1145,12 +1134,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1160,12 +1148,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1173,12 +1160,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1329,12 +1315,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1342,12 +1327,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1499,12 +1483,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1512,12 +1495,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1527,12 +1509,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1540,12 +1521,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1555,12 +1535,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1568,12 +1547,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1583,12 +1561,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1596,12 +1573,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1611,12 +1587,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1624,12 +1599,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1639,12 +1613,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1652,12 +1625,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1667,12 +1639,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1680,12 +1651,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1695,12 +1665,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1708,12 +1677,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1723,12 +1691,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1736,12 +1703,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1751,12 +1717,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1764,12 +1729,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1779,12 +1743,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1792,12 +1755,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1807,12 +1769,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1820,12 +1781,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1835,12 +1795,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1848,12 +1807,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1863,12 +1821,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1876,12 +1833,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1891,12 +1847,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1904,12 +1859,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1919,12 +1873,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1932,12 +1885,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1955,12 +1907,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1968,12 +1919,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1983,12 +1933,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1996,12 +1945,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2011,12 +1959,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2024,12 +1971,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2039,12 +1985,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2052,12 +1997,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2067,12 +2011,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2080,12 +2023,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2095,12 +2037,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2108,12 +2049,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2123,12 +2063,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2136,12 +2075,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2151,12 +2089,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2164,12 +2101,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2187,12 +2123,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2200,12 +2135,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2215,12 +2149,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2228,12 +2161,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2243,12 +2175,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2256,12 +2187,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2271,12 +2201,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2284,12 +2213,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2307,12 +2235,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2320,12 +2247,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2335,12 +2261,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2348,12 +2273,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2370,12 +2294,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2383,12 +2306,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2477,12 +2399,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2490,12 +2411,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2558,12 +2478,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2571,12 +2490,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/gc-array.untouched.wat b/tests/compiler/std/gc-array.untouched.wat index afc09fb5..d181db2a 100644 --- a/tests/compiler/std/gc-array.untouched.wat +++ b/tests/compiler/std/gc-array.untouched.wat @@ -1142,12 +1142,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1155,12 +1154,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1361,12 +1359,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1374,12 +1371,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1434,12 +1430,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1447,12 +1442,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1462,12 +1456,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1475,12 +1468,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1490,12 +1482,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1503,12 +1494,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1659,12 +1649,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1672,12 +1661,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1687,12 +1675,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1700,12 +1687,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1856,12 +1842,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1869,12 +1854,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2026,12 +2010,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2039,12 +2022,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2054,12 +2036,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2067,12 +2048,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2082,12 +2062,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2095,12 +2074,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2110,12 +2088,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2123,12 +2100,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2138,12 +2114,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2151,12 +2126,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2166,12 +2140,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2179,12 +2152,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2194,12 +2166,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2207,12 +2178,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2222,12 +2192,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2235,12 +2204,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2250,12 +2218,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2263,12 +2230,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2278,12 +2244,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2291,12 +2256,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2306,12 +2270,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2319,12 +2282,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2334,12 +2296,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2347,12 +2308,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2362,12 +2322,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2375,12 +2334,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2390,12 +2348,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2403,12 +2360,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2418,12 +2374,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2431,12 +2386,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2446,12 +2400,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2459,12 +2412,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2482,12 +2434,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2495,12 +2446,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2510,12 +2460,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2523,12 +2472,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2538,12 +2486,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2551,12 +2498,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2566,12 +2512,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2579,12 +2524,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2594,12 +2538,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2607,12 +2550,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2622,12 +2564,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2635,12 +2576,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2650,12 +2590,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2663,12 +2602,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2678,12 +2616,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2691,12 +2628,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2714,12 +2650,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2727,12 +2662,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2742,12 +2676,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2755,12 +2688,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2770,12 +2702,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2783,12 +2714,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2798,12 +2728,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2811,12 +2740,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2834,12 +2762,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2847,12 +2774,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2862,12 +2788,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2875,12 +2800,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2897,12 +2821,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2910,12 +2833,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -3004,12 +2926,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -3017,12 +2938,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -3085,12 +3005,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -3098,12 +3017,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index c8d65441..de1ce0a0 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -1096,15 +1096,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -2294,15 +2293,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -3505,15 +3503,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -4703,15 +4700,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -5926,15 +5922,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -7061,15 +7056,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -8327,15 +8321,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -9477,15 +9470,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -10633,15 +10625,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -11793,15 +11784,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index 6c4fe9cc..4b29c689 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -396,12 +396,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -409,12 +408,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -615,12 +613,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -628,12 +625,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -688,12 +684,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -701,12 +696,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -716,12 +710,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -729,12 +722,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -744,12 +736,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -757,12 +748,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -913,12 +903,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -926,12 +915,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -941,12 +929,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -954,12 +941,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1110,12 +1096,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1123,12 +1108,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1280,12 +1264,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1293,12 +1276,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1308,12 +1290,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1321,12 +1302,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1336,12 +1316,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1349,12 +1328,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1364,12 +1342,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1377,12 +1354,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1392,12 +1368,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1405,12 +1380,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1420,12 +1394,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1433,12 +1406,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1448,12 +1420,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1461,12 +1432,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1476,12 +1446,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1489,12 +1458,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1504,12 +1472,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1517,12 +1484,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1532,12 +1498,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1545,12 +1510,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1560,12 +1524,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1573,12 +1536,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1588,12 +1550,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1601,12 +1562,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1616,12 +1576,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1629,12 +1588,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1644,12 +1602,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1657,12 +1614,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1672,12 +1628,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1685,12 +1640,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1700,12 +1654,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1713,12 +1666,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1736,12 +1688,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1749,12 +1700,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1764,12 +1714,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1777,12 +1726,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1792,12 +1740,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1805,12 +1752,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1820,12 +1766,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1833,12 +1778,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1848,12 +1792,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1861,12 +1804,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1876,12 +1818,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1889,12 +1830,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1904,12 +1844,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1917,12 +1856,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1932,12 +1870,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1945,12 +1882,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1968,12 +1904,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1981,12 +1916,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1996,12 +1930,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2009,12 +1942,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2024,12 +1956,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2037,12 +1968,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2052,12 +1982,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2065,12 +1994,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2088,12 +2016,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2101,12 +2028,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2116,12 +2042,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2129,12 +2054,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2151,12 +2075,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2164,12 +2087,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2258,12 +2180,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2271,12 +2192,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2339,12 +2259,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2352,12 +2271,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 3b86cccd..d233430b 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -1083,15 +1083,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -2090,15 +2089,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -3131,15 +3129,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -4138,15 +4135,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -5197,15 +5193,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -6192,15 +6187,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -7318,15 +7312,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -8314,15 +8307,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -9314,15 +9306,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -10316,15 +10307,14 @@ ) (i32.mul (block (result i32) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $5) + (tee_local $5 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index c3dc6790..35b8a506 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -611,12 +611,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -624,12 +623,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -830,12 +828,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -843,12 +840,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -903,12 +899,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -916,12 +911,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -931,12 +925,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -944,12 +937,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -959,12 +951,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -972,12 +963,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1128,12 +1118,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1141,12 +1130,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1156,12 +1144,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1169,12 +1156,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1325,12 +1311,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1338,12 +1323,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1495,12 +1479,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1508,12 +1491,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1523,12 +1505,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1536,12 +1517,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1551,12 +1531,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1564,12 +1543,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1579,12 +1557,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1592,12 +1569,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1607,12 +1583,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1620,12 +1595,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1635,12 +1609,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1648,12 +1621,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1663,12 +1635,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1676,12 +1647,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1691,12 +1661,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1704,12 +1673,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1719,12 +1687,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1732,12 +1699,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1747,12 +1713,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1760,12 +1725,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1775,12 +1739,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1788,12 +1751,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1803,12 +1765,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1816,12 +1777,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1831,12 +1791,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1844,12 +1803,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1859,12 +1817,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1872,12 +1829,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1887,12 +1843,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1900,12 +1855,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1915,12 +1869,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1928,12 +1881,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1951,12 +1903,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1964,12 +1915,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1979,12 +1929,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1992,12 +1941,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2007,12 +1955,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2020,12 +1967,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2035,12 +1981,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2048,12 +1993,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2063,12 +2007,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2076,12 +2019,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2091,12 +2033,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2104,12 +2045,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2119,12 +2059,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2132,12 +2071,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2147,12 +2085,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2160,12 +2097,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2183,12 +2119,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2196,12 +2131,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2211,12 +2145,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2224,12 +2157,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2239,12 +2171,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2252,12 +2183,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2267,12 +2197,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2280,12 +2209,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2303,12 +2231,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2316,12 +2243,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2331,12 +2257,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2344,12 +2269,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2366,12 +2290,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2379,12 +2302,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2473,12 +2395,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2486,12 +2407,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2554,12 +2474,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2567,12 +2486,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/string-utf8.untouched.wat b/tests/compiler/std/string-utf8.untouched.wat index b80be9f1..841d0af4 100644 --- a/tests/compiler/std/string-utf8.untouched.wat +++ b/tests/compiler/std/string-utf8.untouched.wat @@ -693,12 +693,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -706,12 +705,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -912,12 +910,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -925,12 +922,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -985,12 +981,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -998,12 +993,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1013,12 +1007,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1026,12 +1019,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1041,12 +1033,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1054,12 +1045,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1210,12 +1200,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1223,12 +1212,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1238,12 +1226,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1251,12 +1238,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1407,12 +1393,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1420,12 +1405,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1577,12 +1561,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1590,12 +1573,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1605,12 +1587,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1618,12 +1599,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1633,12 +1613,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1646,12 +1625,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1661,12 +1639,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1674,12 +1651,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1689,12 +1665,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1702,12 +1677,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1717,12 +1691,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1730,12 +1703,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1745,12 +1717,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1758,12 +1729,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1773,12 +1743,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1786,12 +1755,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1801,12 +1769,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1814,12 +1781,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1829,12 +1795,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1842,12 +1807,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1857,12 +1821,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1870,12 +1833,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1885,12 +1847,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1898,12 +1859,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1913,12 +1873,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1926,12 +1885,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1941,12 +1899,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1954,12 +1911,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1969,12 +1925,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1982,12 +1937,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1997,12 +1951,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2010,12 +1963,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2033,12 +1985,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2046,12 +1997,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2061,12 +2011,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2074,12 +2023,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2089,12 +2037,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2102,12 +2049,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2117,12 +2063,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2130,12 +2075,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2145,12 +2089,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2158,12 +2101,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2173,12 +2115,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2186,12 +2127,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2201,12 +2141,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2214,12 +2153,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2229,12 +2167,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2242,12 +2179,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2265,12 +2201,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2278,12 +2213,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2293,12 +2227,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2306,12 +2239,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2321,12 +2253,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2334,12 +2265,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2349,12 +2279,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2362,12 +2291,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2385,12 +2313,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2398,12 +2325,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2413,12 +2339,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2426,12 +2351,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2448,12 +2372,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2461,12 +2384,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2555,12 +2477,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2568,12 +2489,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2636,12 +2556,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2649,12 +2568,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2848,12 +2766,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $3 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $3) + (tee_local $3 + (get_local $2) + ) (i32.const 1) ) ) @@ -2935,12 +2852,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) @@ -3012,12 +2928,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) @@ -3036,12 +2951,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) @@ -3059,12 +2973,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) @@ -3158,12 +3071,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) @@ -3181,12 +3093,11 @@ (i32.add (get_local $0) (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.add - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 122e2a93..485551a9 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -1017,12 +1017,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1030,12 +1029,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1236,12 +1234,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1249,12 +1246,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1309,12 +1305,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1322,12 +1317,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1337,12 +1331,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1350,12 +1343,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1365,12 +1357,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1378,12 +1369,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1534,12 +1524,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1547,12 +1536,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1562,12 +1550,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1575,12 +1562,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1731,12 +1717,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1744,12 +1729,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1901,12 +1885,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1914,12 +1897,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1929,12 +1911,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1942,12 +1923,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1957,12 +1937,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1970,12 +1949,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -1985,12 +1963,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -1998,12 +1975,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2013,12 +1989,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2026,12 +2001,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2041,12 +2015,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2054,12 +2027,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2069,12 +2041,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2082,12 +2053,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2097,12 +2067,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2110,12 +2079,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2125,12 +2093,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2138,12 +2105,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2153,12 +2119,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2166,12 +2131,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2181,12 +2145,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2194,12 +2157,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2209,12 +2171,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2222,12 +2183,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2237,12 +2197,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2250,12 +2209,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2265,12 +2223,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2278,12 +2235,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2293,12 +2249,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2306,12 +2261,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2321,12 +2275,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2334,12 +2287,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2357,12 +2309,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2370,12 +2321,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2385,12 +2335,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2398,12 +2347,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2413,12 +2361,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2426,12 +2373,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2441,12 +2387,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2454,12 +2399,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2469,12 +2413,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2482,12 +2425,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2497,12 +2439,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2510,12 +2451,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2525,12 +2465,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2538,12 +2477,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2553,12 +2491,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2566,12 +2503,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2589,12 +2525,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2602,12 +2537,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2617,12 +2551,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2630,12 +2563,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2645,12 +2577,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2658,12 +2589,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2673,12 +2603,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2686,12 +2615,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2709,12 +2637,11 @@ (block (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2722,12 +2649,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2737,12 +2663,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2750,12 +2675,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2772,12 +2696,11 @@ ) (i32.store8 (block (result i32) - (set_local $5 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $5) + (tee_local $5 + (get_local $0) + ) (i32.const 1) ) ) @@ -2785,12 +2708,11 @@ ) (i32.load8_u (block (result i32) - (set_local $5 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $5) + (tee_local $5 + (get_local $1) + ) (i32.const 1) ) ) @@ -2879,12 +2801,11 @@ ) (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2892,12 +2813,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -2960,12 +2880,11 @@ (block (i32.store8 (block (result i32) - (set_local $3 - (get_local $0) - ) (set_local $0 (i32.add - (get_local $3) + (tee_local $3 + (get_local $0) + ) (i32.const 1) ) ) @@ -2973,12 +2892,11 @@ ) (i32.load8_u (block (result i32) - (set_local $3 - (get_local $1) - ) (set_local $1 (i32.add - (get_local $3) + (tee_local $3 + (get_local $1) + ) (i32.const 1) ) ) @@ -4225,12 +4143,11 @@ (loop $continue|1 (if (block (result i32) - (set_local $6 - (get_local $2) - ) (set_local $2 (i32.sub - (get_local $6) + (tee_local $6 + (get_local $2) + ) (i32.const 1) ) ) @@ -4463,12 +4380,11 @@ (loop $continue|0 (if (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.sub - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -4500,12 +4416,11 @@ (loop $continue|1 (if (block (result i32) - (set_local $6 - (get_local $1) - ) (set_local $1 (i32.sub - (get_local $6) + (tee_local $6 + (get_local $1) + ) (i32.const 1) ) ) @@ -7523,12 +7438,11 @@ (get_local $0) (i32.shl (block (result i32) - (set_local $18 - (get_local $15) - ) (set_local $15 (i32.add - (get_local $18) + (tee_local $18 + (get_local $15) + ) (i32.const 1) ) ) @@ -7739,12 +7653,11 @@ (get_local $0) (i32.shl (block (result i32) - (set_local $17 - (get_local $15) - ) (set_local $15 (i32.add - (get_local $17) + (tee_local $17 + (get_local $15) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index f29f4e6f..042d4079 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -54,12 +54,11 @@ (local $2 i32) (set_local $2 (block (result i32) - (set_local $1 - (get_global $~lib/symbol/nextId) - ) (set_global $~lib/symbol/nextId (i32.add - (get_local $1) + (tee_local $1 + (get_global $~lib/symbol/nextId) + ) (i32.const 1) ) ) @@ -1389,15 +1388,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -1866,15 +1864,14 @@ ) (i32.mul (block (result i32) - (set_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) (i32.store offset=16 (get_local $0) (i32.add - (get_local $6) + (tee_local $6 + (i32.load offset=16 + (get_local $0) + ) + ) (i32.const 1) ) ) @@ -1966,12 +1963,11 @@ ) (set_local $2 (block (result i32) - (set_local $1 - (get_global $~lib/symbol/nextId) - ) (set_global $~lib/symbol/nextId (i32.add - (get_local $1) + (tee_local $1 + (get_global $~lib/symbol/nextId) + ) (i32.const 1) ) ) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 73ce8270..da123da9 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -2866,12 +2866,11 @@ (set_local $8 (i32.add (block (result i32) - (set_local $8 - (get_local $6) - ) (set_local $6 (i32.sub - (get_local $8) + (tee_local $8 + (get_local $6) + ) (i32.const 1) ) ) diff --git a/tests/compiler/unary.untouched.wat b/tests/compiler/unary.untouched.wat index 4c53a78e..583bd59f 100644 --- a/tests/compiler/unary.untouched.wat +++ b/tests/compiler/unary.untouched.wat @@ -150,12 +150,11 @@ ) (set_global $unary/i (block (result i32) - (set_local $0 - (get_global $unary/i) - ) (set_global $unary/i (i32.add - (get_local $0) + (tee_local $0 + (get_global $unary/i) + ) (i32.const 1) ) ) @@ -164,12 +163,11 @@ ) (set_global $unary/i (block (result i32) - (set_local $0 - (get_global $unary/i) - ) (set_global $unary/i (i32.sub - (get_local $0) + (tee_local $0 + (get_global $unary/i) + ) (i32.const 1) ) ) @@ -285,12 +283,11 @@ ) (set_global $unary/I (block (result i64) - (set_local $1 - (get_global $unary/I) - ) (set_global $unary/I (i64.add - (get_local $1) + (tee_local $1 + (get_global $unary/I) + ) (i64.const 1) ) ) @@ -299,12 +296,11 @@ ) (set_global $unary/I (block (result i64) - (set_local $1 - (get_global $unary/I) - ) (set_global $unary/I (i64.sub - (get_local $1) + (tee_local $1 + (get_global $unary/I) + ) (i64.const 1) ) ) @@ -399,12 +395,11 @@ ) (set_global $unary/f (block (result f32) - (set_local $2 - (get_global $unary/f) - ) (set_global $unary/f (f32.add - (get_local $2) + (tee_local $2 + (get_global $unary/f) + ) (f32.const 1) ) ) @@ -413,12 +408,11 @@ ) (set_global $unary/f (block (result f32) - (set_local $2 - (get_global $unary/f) - ) (set_global $unary/f (f32.sub - (get_local $2) + (tee_local $2 + (get_global $unary/f) + ) (f32.const 1) ) ) @@ -517,12 +511,11 @@ ) (set_global $unary/F (block (result f64) - (set_local $3 - (get_global $unary/F) - ) (set_global $unary/F (f64.add - (get_local $3) + (tee_local $3 + (get_global $unary/F) + ) (f64.const 1) ) ) @@ -531,12 +524,11 @@ ) (set_global $unary/F (block (result f64) - (set_local $3 - (get_global $unary/F) - ) (set_global $unary/F (f64.sub - (get_local $3) + (tee_local $3 + (get_global $unary/F) + ) (f64.const 1) ) ) diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index 478fbaac..d49ffe93 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -224,12 +224,11 @@ (if (result i32) (tee_local $0 (block (result i32) - (set_local $0 - (get_global $while/n) - ) (set_global $while/n (i32.sub - (get_local $0) + (tee_local $0 + (get_global $while/n) + ) (i32.const 1) ) )