diff --git a/tests/checked/ecma_inlining_monomorphic.js b/tests/checked/ecma_inlining_monomorphic.js index ebc103feb5937752cc4a9d93819478d9c8a92401..e4ae0c8873381c291e19bfd45a9a32fd29cb2cc6 100644 --- a/tests/checked/ecma_inlining_monomorphic.js +++ b/tests/checked/ecma_inlining_monomorphic.js @@ -24,9 +24,10 @@ //! METHOD "test" //! PASS_AFTER "IrBuilder" //! INST "DynamicCallCheck" -//! PASS_AFTER "ChecksElimination" //! INST "CallDynamic" +//! PASS_AFTER "ChecksElimination" //! INST_NOT "DynamicCallCheck" +//! INST_NOT "CallDynamic" function one() { return 1; diff --git a/tests/compiler/checks_elimination_ecma_test.cpp b/tests/compiler/checks_elimination_ecma_test.cpp index 626e9e1011959f18cac54a3be8663b7880c4fa19..746cdcabfec8bd62809314e968dc4333fbb8289f 100644 --- a/tests/compiler/checks_elimination_ecma_test.cpp +++ b/tests/compiler/checks_elimination_ecma_test.cpp @@ -712,9 +712,12 @@ TEST_F(CheckEliminationEcmaTest, EliminateDynamicCallCheckInlined) INST(3, Opcode::AnyTypeCheck).any().AnyType(AnyBaseType::ECMASCRIPT_FUNCTION_TYPE).Inputs(0, 2); INST(4, Opcode::DynamicCallCheck).any().Inputs(3, 2); INST(5, Opcode::CallDynamic).any().Inlined().InputsAutoType(4, 10, 10, 1, 2); - INST(6, Opcode::ReturnInlined).Inputs(2); + INST(6, Opcode::SaveState).Inputs(0, 1).SrcVregs({0, 1}).Caller(5); + // do something to prevent cleanup of call/return inlined + INST(7, Opcode::AnyTypeCheck).any().AnyType(AnyBaseType::ECMASCRIPT_INT_TYPE).Inputs(1, 6); + INST(8, Opcode::ReturnInlined).Inputs(2); - INST(9, Opcode::Return).any().Inputs(5); + INST(9, Opcode::Return).any().Inputs(7); } } @@ -735,9 +738,11 @@ TEST_F(CheckEliminationEcmaTest, EliminateDynamicCallCheckInlined) INST(2, Opcode::SaveState).Inputs(0, 1).SrcVregs({0, 1}); INST(5, Opcode::CallDynamic).any().Inlined().InputsAutoType(0, 10, 10, 1, 2); - INST(6, Opcode::ReturnInlined).Inputs(2); + INST(6, Opcode::SaveState).Inputs(0, 1).SrcVregs({0, 1}); + INST(7, Opcode::AnyTypeCheck).any().AnyType(AnyBaseType::ECMASCRIPT_INT_TYPE).Inputs(1, 6); + INST(8, Opcode::ReturnInlined).Inputs(2); - INST(9, Opcode::Return).any().Inputs(5); + INST(9, Opcode::Return).any().Inputs(7); } }