@@ -1571,6 +1571,7 @@ EmitInfo WasmBytecodeGenerator::EmitReplaceLaneExpr(Js::OpCodeAsmJs op, const Wa
1571
1571
1572
1572
m_writer->AsmReg4 (op, resultReg, simdArg.location , indexInfo.location , valueArg.location );
1573
1573
ReleaseLocation (&indexInfo);
1574
+ ReleaseLocation (&valueArg);
1574
1575
return result;
1575
1576
}
1576
1577
@@ -1579,6 +1580,11 @@ EmitInfo WasmBytecodeGenerator::EmitM128BitSelect()
1579
1580
EmitInfo mask = PopEvalStack (WasmTypes::M128);
1580
1581
EmitInfo arg2Info = PopEvalStack (WasmTypes::M128);
1581
1582
EmitInfo arg1Info = PopEvalStack (WasmTypes::M128);
1583
+
1584
+ ReleaseLocation (&mask);
1585
+ ReleaseLocation (&arg2Info);
1586
+ ReleaseLocation (&arg1Info);
1587
+
1582
1588
Js::RegSlot resultReg = GetRegisterSpace (WasmTypes::M128)->AcquireTmpRegister ();
1583
1589
EmitInfo resultInfo (resultReg, WasmTypes::M128);
1584
1590
m_writer->AsmReg4 (Js::OpCodeAsmJs::Simd128_BitSelect_I4, resultReg, arg1Info.location , arg2Info.location , mask.location );
@@ -1590,6 +1596,8 @@ EmitInfo WasmBytecodeGenerator::EmitV8X16Shuffle()
1590
1596
EmitInfo arg2Info = PopEvalStack (WasmTypes::M128);
1591
1597
EmitInfo arg1Info = PopEvalStack (WasmTypes::M128);
1592
1598
1599
+ // FIXME Release arg2Info and arg1Info
1600
+
1593
1601
Js::RegSlot resultReg = GetRegisterSpace (WasmTypes::M128)->AcquireTmpRegister ();
1594
1602
EmitInfo resultInfo (resultReg, WasmTypes::M128);
1595
1603
@@ -1612,16 +1620,16 @@ EmitInfo WasmBytecodeGenerator::EmitExtractLaneExpr(Js::OpCodeAsmJs op, const Wa
1612
1620
WasmTypes::WasmType simdArgType = signature[1 ];
1613
1621
1614
1622
EmitInfo simdArgInfo = PopEvalStack (simdArgType, _u (" Argument should be of type M128" ));
1623
+ ReleaseLocation (&simdArgInfo);
1615
1624
1616
1625
Js::RegSlot resultReg = GetRegisterSpace (resultType)->AcquireTmpRegister ();
1617
1626
EmitInfo resultInfo (resultReg, resultType);
1618
1627
1619
1628
// put index into a register to reuse the existing infra in Interpreter and Compiler
1620
1629
EmitInfo indexInfo = EmitLaneIndex (op);
1630
+ ReleaseLocation (&indexInfo);
1621
1631
1622
1632
m_writer->AsmReg3 (op, resultReg, simdArgInfo.location , indexInfo.location );
1623
- ReleaseLocation (&indexInfo);
1624
- ReleaseLocation (&simdArgInfo);
1625
1633
return resultInfo;
1626
1634
}
1627
1635
0 commit comments