Lines Matching refs:bytecodeInfo

129         auto &bytecodeInfo = iterator.GetBytecodeInfo();
130 if (!bb.catches.empty() && !bytecodeInfo.NoThrow()) {
134 ComputeLiveOutBC(bytecodeInfo);
184 void FrameStateBuilder::ComputeLiveOutBC(const BytecodeInfo &bytecodeInfo)
186 if (bytecodeInfo.GetOpcode() == EcmaOpcode::RESUMEGENERATOR) {
190 if (bytecodeInfo.AccOut()) {
194 for (const auto &out: bytecodeInfo.vregOut) {
200 if (bytecodeInfo.AccIn()) {
203 for (size_t i = 0; i < bytecodeInfo.inputs.size(); i++) {
204 auto in = bytecodeInfo.inputs[i];
256 void FrameStateBuilder::FillBcInputs(const BytecodeInfo &bytecodeInfo, GateRef gate)
262 [[maybe_unused]] size_t numValueInputs = bytecodeInfo.ComputeValueInputCount();
263 [[maybe_unused]] size_t numValueOutputs = bytecodeInfo.ComputeOutCount();
265 ASSERT(numValueInputs == valueCount || bytecodeInfo.GetOpcode() == EcmaOpcode::RETURNUNDEFINED);
266 ASSERT(numValueOutputs <= 1 + (bytecodeInfo.EnvOut() ? 1 : 0));
273 if (valueIdx < bytecodeInfo.inputs.size()) {
274 auto vregId = std::get<VirtualRegister>(bytecodeInfo.inputs.at(valueIdx)).GetId();
284 void FrameStateBuilder::AdvanceToNextBc(const BytecodeInfo &bytecodeInfo, FrameLiveOut* liveout, uint32_t bcId)
286 if (bytecodeInfo.IsGeneral()) {
287 BindStateSplitBefore(bytecodeInfo, liveout, bcId);
288 if (bytecodeInfo.GetOpcode() == EcmaOpcode::SUSPENDGENERATOR_V8 ||
289 bytecodeInfo.GetOpcode() == EcmaOpcode::ASYNCGENERATORRESOLVE_V8_V8_V8) {
316 void FrameStateBuilder::UpdateMoveValues(const BytecodeInfo &bytecodeInfo)
319 if (bytecodeInfo.AccIn()) {
321 } else if (bytecodeInfo.inputs.size() != 0) {
322 auto vreg = std::get<VirtualRegister>(bytecodeInfo.inputs.at(0)).GetId();
326 if (bytecodeInfo.AccOut()) {
328 } else if (bytecodeInfo.vregOut.size() != 0) {
329 auto vreg = bytecodeInfo.vregOut[0];
334 void FrameStateBuilder::UpdateFrameValues(const BytecodeInfo &bytecodeInfo,
337 ASSERT(!bytecodeInfo.IsDiscarded() && !bytecodeInfo.IsMov());
338 if (bytecodeInfo.IsSetConstant()) {
344 FillBcInputs(bytecodeInfo, gate);
348 if (bytecodeInfo.AccOut()) {
351 for (const auto &out: bytecodeInfo.vregOut) {
354 if (bytecodeInfo.GetOpcode() == EcmaOpcode::RESUMEGENERATOR) {
364 BindStateSplitAfter(bytecodeInfo, bcId, gate);
1435 void FrameStateBuilder::BindStateSplitBefore(const BytecodeInfo &bytecodeInfo, FrameLiveOut* liveout, uint32_t bcId)
1440 if (bytecodeInfo.IsCall() || bytecodeInfo.IsAccessorBC()) {
1446 void FrameStateBuilder::BindStateSplitAfter(const BytecodeInfo &bytecodeInfo,
1452 if (bytecodeInfo.IsCall() || bytecodeInfo.IsAccessorBC()) {
1456 if (!bytecodeInfo.NoSideEffects() && !bytecodeInfo.IsThrow()) {