MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / runArrayInitDataOp

Method runArrayInitDataOp

lib/executor/engine/refInstr.cpp:285–304  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

283}
284
285Expect<void> Executor::runArrayInitDataOp(
286 Runtime::StackManager &StackMgr, const uint32_t Cnt, const uint32_t TypeIdx,
287 const uint32_t DataIdx, const AST::Instruction &Instr) const noexcept {
288 const uint32_t SrcIdx = StackMgr.pop().get<uint32_t>();
289 const uint32_t DstIdx = StackMgr.pop().get<uint32_t>();
290 const RefVariant Ref = StackMgr.pop().get<RefVariant>();
291 EXPECTED_TRY(
292 arrayInitData(StackMgr, Ref, TypeIdx, DataIdx, DstIdx, SrcIdx, Cnt)
293 .map_error([&](auto E) {
294 auto *DataInst = getDataInstByIdx(StackMgr, DataIdx);
295 const uint32_t BSize =
296 getArrayStorageTypeByIdx(StackMgr, TypeIdx).getBitWidth() / 8;
297 return logError(
298 E, Instr, [&]() { return logArrayOOB(E, DstIdx, Cnt, Ref); },
299 [&]() {
300 return logMemoryOOB(E, *DataInst, SrcIdx, Cnt * BSize);
301 });
302 }));
303 return {};
304}
305
306Expect<void> Executor::runArrayInitElemOp(
307 Runtime::StackManager &StackMgr, const uint32_t Cnt, const uint32_t TypeIdx,

Callers

nothing calls this directly

Calls 6

logErrorFunction · 0.85
logArrayOOBFunction · 0.85
logMemoryOOBFunction · 0.85
popMethod · 0.80
getBitWidthMethod · 0.80
EXPECTED_TRYFunction · 0.70

Tested by

no test coverage detected