mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 11:06:19 +02:00
+ write the actual function code in the code section
This commit is contained in:
parent
dbb6f95ea7
commit
cbf444bbbe
@ -555,14 +555,21 @@ implementation
|
|||||||
encoded_locals: tdynamicarray;
|
encoded_locals: tdynamicarray;
|
||||||
ObjSymExtraData: TWasmObjSymbolExtraData;
|
ObjSymExtraData: TWasmObjSymbolExtraData;
|
||||||
codelen: LongWord;
|
codelen: LongWord;
|
||||||
|
ObjSection: TObjSection;
|
||||||
|
codeexprlen: QWord;
|
||||||
begin
|
begin
|
||||||
ObjSymExtraData:=TWasmObjSymbolExtraData(FData.FObjSymbolsExtraDataList.Find(objsym.Name));
|
ObjSymExtraData:=TWasmObjSymbolExtraData(FData.FObjSymbolsExtraDataList.Find(objsym.Name));
|
||||||
|
ObjSection:=objsym.objsection;
|
||||||
|
ObjSection.Data.seek(objsym.address);
|
||||||
|
codeexprlen:=ObjSection.Size-objsym.address;
|
||||||
|
|
||||||
encoded_locals:=tdynamicarray.Create(64);
|
encoded_locals:=tdynamicarray.Create(64);
|
||||||
WriteFunctionLocals(encoded_locals,ObjSymExtraData);
|
WriteFunctionLocals(encoded_locals,ObjSymExtraData);
|
||||||
codelen:=encoded_locals.size+1;
|
codelen:=encoded_locals.size+codeexprlen+1;
|
||||||
WriteUleb(dest,codelen);
|
WriteUleb(dest,codelen);
|
||||||
encoded_locals.seek(0);
|
encoded_locals.seek(0);
|
||||||
CopyDynamicArray(encoded_locals,dest,encoded_locals.size);
|
CopyDynamicArray(encoded_locals,dest,encoded_locals.size);
|
||||||
|
CopyDynamicArray(ObjSection.Data,dest,codeexprlen);
|
||||||
WriteByte(dest,$0B);
|
WriteByte(dest,$0B);
|
||||||
encoded_locals.Free;
|
encoded_locals.Free;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user