From f3e667da42bc0994dc51aa92de55a70ca819ef09 Mon Sep 17 00:00:00 2001 From: Nikolay Nikolov Date: Wed, 31 Jan 2024 02:38:09 +0200 Subject: [PATCH] + introduced TWasmValidationStacks.PopCtrl --- compiler/wasm32/aasmcpu.pas | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/compiler/wasm32/aasmcpu.pas b/compiler/wasm32/aasmcpu.pas index ebd84ebaf5..4be54f5148 100644 --- a/compiler/wasm32/aasmcpu.pas +++ b/compiler/wasm32/aasmcpu.pas @@ -100,6 +100,7 @@ uses function PopVals(vals: TWasmBasicTypeList): TWasmBasicTypeList; procedure PushCtrl(_opcode: tasmop; _in, _out: TWasmBasicTypeList); + function PopCtrl: TWasmControlFrame; end; twasmstruc_stack = class; @@ -518,6 +519,18 @@ uses FCtrlStack.Push(frame); end; + function TWasmValidationStacks.PopCtrl: TWasmControlFrame; + begin + FillChar(Result,SizeOf(Result),0); + if FCtrlStack.Count=0 then + internalerror(2024013106); + Result:=FCtrlStack[0]; + PopVals(Result.end_types); + if FValueStack.Count<>Result.height then + internalerror(2024013107); + FCtrlStack.Pop; + end; + { twasmstruc_stack } function twasmstruc_stack.Get(Index: Integer): taicpu_wasm_structured_instruction;