From fa51ae3efe923895f176e187aa9048219c7ef8c5 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 5 Aug 2022 17:11:01 +0300 Subject: [PATCH 1/2] simplify --- src/module.ts | 58 +++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/module.ts b/src/module.ts index e461220557..9e312cb676 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1196,10 +1196,10 @@ export class Module { if (op > UnaryOp._last) { let isWam64 = this.sizeType == TypeRef.I64; switch (op) { - case UnaryOp.ClzSize: return this.unary(isWam64 ? UnaryOp.ClzI64 : UnaryOp.ClzI32, value); - case UnaryOp.CtzSize: return this.unary(isWam64 ? UnaryOp.CtzI64 : UnaryOp.CtzI32, value); - case UnaryOp.PopcntSize: return this.unary(isWam64 ? UnaryOp.PopcntI64 : UnaryOp.PopcntI32, value); - case UnaryOp.EqzSize: return this.unary(isWam64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32, value); + case UnaryOp.ClzSize: op = isWam64 ? UnaryOp.ClzI64 : UnaryOp.ClzI32; break; + case UnaryOp.CtzSize: op = isWam64 ? UnaryOp.CtzI64 : UnaryOp.CtzI32; break; + case UnaryOp.PopcntSize: op = isWam64 ? UnaryOp.PopcntI64 : UnaryOp.PopcntI32; break; + case UnaryOp.EqzSize: op = isWam64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32; break; } assert(false); } @@ -1214,31 +1214,31 @@ export class Module { if (op > BinaryOp._last) { let isWasm64 = this.sizeType == TypeRef.I64; switch (op) { - case BinaryOp.AddSize: return this.binary(isWasm64 ? BinaryOp.AddI64 : BinaryOp.AddI32, left, right); - case BinaryOp.SubSize: return this.binary(isWasm64 ? BinaryOp.SubI64 : BinaryOp.SubI32, left, right); - case BinaryOp.MulSize: return this.binary(isWasm64 ? BinaryOp.MulI64 : BinaryOp.MulI32, left, right); - case BinaryOp.DivISize: return this.binary(isWasm64 ? BinaryOp.DivI64 : BinaryOp.DivI32, left, right); - case BinaryOp.DivUSize: return this.binary(isWasm64 ? BinaryOp.DivU64 : BinaryOp.DivU32, left, right); - case BinaryOp.RemISize: return this.binary(isWasm64 ? BinaryOp.RemI64 : BinaryOp.RemI32, left, right); - case BinaryOp.RemUSize: return this.binary(isWasm64 ? BinaryOp.RemU64 : BinaryOp.RemU32, left, right); - case BinaryOp.AndSize: return this.binary(isWasm64 ? BinaryOp.AndI64 : BinaryOp.AndI32, left, right); - case BinaryOp.OrSize: return this.binary(isWasm64 ? BinaryOp.OrI64 : BinaryOp.OrI32, left, right); - case BinaryOp.XorSize: return this.binary(isWasm64 ? BinaryOp.XorI64 : BinaryOp.XorI32, left, right); - case BinaryOp.ShlSize: return this.binary(isWasm64 ? BinaryOp.ShlI64 : BinaryOp.ShlI32, left, right); - case BinaryOp.ShrISize: return this.binary(isWasm64 ? BinaryOp.ShrI64 : BinaryOp.ShrI32, left, right); - case BinaryOp.ShrUSize: return this.binary(isWasm64 ? BinaryOp.ShrU64 : BinaryOp.ShrU32, left, right); - case BinaryOp.RotlSize: return this.binary(isWasm64 ? BinaryOp.RotlI64 : BinaryOp.RotlI32, left, right); - case BinaryOp.RotrSize: return this.binary(isWasm64 ? BinaryOp.RotrI64 : BinaryOp.RotrI32, left, right); - case BinaryOp.EqSize: return this.binary(isWasm64 ? BinaryOp.EqI64 : BinaryOp.EqI32, left, right); - case BinaryOp.NeSize: return this.binary(isWasm64 ? BinaryOp.NeI64 : BinaryOp.NeI32, left, right); - case BinaryOp.LtISize: return this.binary(isWasm64 ? BinaryOp.LtI64 : BinaryOp.LtI32, left, right); - case BinaryOp.LtUSize: return this.binary(isWasm64 ? BinaryOp.LtU64 : BinaryOp.LtU32, left, right); - case BinaryOp.LeISize: return this.binary(isWasm64 ? BinaryOp.LeI64 : BinaryOp.LeI32, left, right); - case BinaryOp.LeUSize: return this.binary(isWasm64 ? BinaryOp.LeU64 : BinaryOp.LeU32, left, right); - case BinaryOp.GtISize: return this.binary(isWasm64 ? BinaryOp.GtI64 : BinaryOp.GtI32, left, right); - case BinaryOp.GtUSize: return this.binary(isWasm64 ? BinaryOp.GtU64 : BinaryOp.GtU32, left, right); - case BinaryOp.GeISize: return this.binary(isWasm64 ? BinaryOp.GeI64 : BinaryOp.GeI32, left, right); - case BinaryOp.GeUSize: return this.binary(isWasm64 ? BinaryOp.GeU64 : BinaryOp.GeU32, left, right); + case BinaryOp.AddSize: op = isWasm64 ? BinaryOp.AddI64 : BinaryOp.AddI32; break; + case BinaryOp.SubSize: op = isWasm64 ? BinaryOp.SubI64 : BinaryOp.SubI32; break; + case BinaryOp.MulSize: op = isWasm64 ? BinaryOp.MulI64 : BinaryOp.MulI32; break; + case BinaryOp.DivISize: op = isWasm64 ? BinaryOp.DivI64 : BinaryOp.DivI32; break; + case BinaryOp.DivUSize: op = isWasm64 ? BinaryOp.DivU64 : BinaryOp.DivU32; break; + case BinaryOp.RemISize: op = isWasm64 ? BinaryOp.RemI64 : BinaryOp.RemI32; break; + case BinaryOp.RemUSize: op = isWasm64 ? BinaryOp.RemU64 : BinaryOp.RemU32; break; + case BinaryOp.AndSize: op = isWasm64 ? BinaryOp.AndI64 : BinaryOp.AndI32; break; + case BinaryOp.OrSize: op = isWasm64 ? BinaryOp.OrI64 : BinaryOp.OrI32; break; + case BinaryOp.XorSize: op = isWasm64 ? BinaryOp.XorI64 : BinaryOp.XorI32; break; + case BinaryOp.ShlSize: op = isWasm64 ? BinaryOp.ShlI64 : BinaryOp.ShlI32; break; + case BinaryOp.ShrISize: op = isWasm64 ? BinaryOp.ShrI64 : BinaryOp.ShrI32; break; + case BinaryOp.ShrUSize: op = isWasm64 ? BinaryOp.ShrU64 : BinaryOp.ShrU32; break; + case BinaryOp.RotlSize: op = isWasm64 ? BinaryOp.RotlI64 : BinaryOp.RotlI32; break; + case BinaryOp.RotrSize: op = isWasm64 ? BinaryOp.RotrI64 : BinaryOp.RotrI32; break; + case BinaryOp.EqSize: op = isWasm64 ? BinaryOp.EqI64 : BinaryOp.EqI32; break; + case BinaryOp.NeSize: op = isWasm64 ? BinaryOp.NeI64 : BinaryOp.NeI32; break; + case BinaryOp.LtISize: op = isWasm64 ? BinaryOp.LtI64 : BinaryOp.LtI32; break; + case BinaryOp.LtUSize: op = isWasm64 ? BinaryOp.LtU64 : BinaryOp.LtU32; break; + case BinaryOp.LeISize: op = isWasm64 ? BinaryOp.LeI64 : BinaryOp.LeI32; break; + case BinaryOp.LeUSize: op = isWasm64 ? BinaryOp.LeU64 : BinaryOp.LeU32; break; + case BinaryOp.GtISize: op = isWasm64 ? BinaryOp.GtI64 : BinaryOp.GtI32; break; + case BinaryOp.GtUSize: op = isWasm64 ? BinaryOp.GtU64 : BinaryOp.GtU32; break; + case BinaryOp.GeISize: op = isWasm64 ? BinaryOp.GeI64 : BinaryOp.GeI32; break; + case BinaryOp.GeUSize: op = isWasm64 ? BinaryOp.GeU64 : BinaryOp.GeU32; break; } assert(false); } From 56e080a753542f24952fd42cacbbea657ad35649 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 6 Aug 2022 14:08:57 +0300 Subject: [PATCH 2/2] fix --- src/module.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/module.ts b/src/module.ts index 9e312cb676..b9328b249f 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1200,8 +1200,8 @@ export class Module { case UnaryOp.CtzSize: op = isWam64 ? UnaryOp.CtzI64 : UnaryOp.CtzI32; break; case UnaryOp.PopcntSize: op = isWam64 ? UnaryOp.PopcntI64 : UnaryOp.PopcntI32; break; case UnaryOp.EqzSize: op = isWam64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32; break; + default: assert(false); } - assert(false); } return binaryen._BinaryenUnary(this.ref, op, value); } @@ -1239,8 +1239,8 @@ export class Module { case BinaryOp.GtUSize: op = isWasm64 ? BinaryOp.GtU64 : BinaryOp.GtU32; break; case BinaryOp.GeISize: op = isWasm64 ? BinaryOp.GeI64 : BinaryOp.GeI32; break; case BinaryOp.GeUSize: op = isWasm64 ? BinaryOp.GeU64 : BinaryOp.GeU32; break; + default: assert(false); } - assert(false); } return binaryen._BinaryenBinary(this.ref, op, left, right); }