mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 18:30:33 +02:00
+ support declaring wasm globals in the WebAssembly internal object writer
This commit is contained in:
parent
77e350b6b8
commit
65b4425672
@ -752,7 +752,13 @@ implementation
|
|||||||
procedure TWasmObjData.DeclareGlobalType(gt: tai_globaltype);
|
procedure TWasmObjData.DeclareGlobalType(gt: tai_globaltype);
|
||||||
var
|
var
|
||||||
ObjSymExtraData: TWasmObjSymbolExtraData;
|
ObjSymExtraData: TWasmObjSymbolExtraData;
|
||||||
|
ObjSym: TObjSymbol;
|
||||||
begin
|
begin
|
||||||
|
if not gt.is_external then
|
||||||
|
begin
|
||||||
|
ObjSym:=symboldefine(gt.sym);
|
||||||
|
ObjSym.typ:=AT_WASM_GLOBAL;
|
||||||
|
end;
|
||||||
ObjSymExtraData:=AddOrCreateObjSymbolExtraData(gt.globalname);
|
ObjSymExtraData:=AddOrCreateObjSymbolExtraData(gt.globalname);
|
||||||
ObjSymExtraData.GlobalType:=gt.gtype;
|
ObjSymExtraData.GlobalType:=gt.gtype;
|
||||||
ObjSymExtraData.GlobalIsImmutable:=gt.immutable;
|
ObjSymExtraData.GlobalIsImmutable:=gt.immutable;
|
||||||
@ -1753,8 +1759,14 @@ implementation
|
|||||||
WriteUleb(FWasmSymbolTable,objsym.GlobalIndex);
|
WriteUleb(FWasmSymbolTable,objsym.GlobalIndex);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{not implemented yet}
|
begin
|
||||||
internalerror(2021092705);
|
WriteUleb(FWasmSymbolTable,0);
|
||||||
|
if (objsym.GlobalIndex<0) then
|
||||||
|
message1(asmw_e_illegal_unset_index,objsym.name)
|
||||||
|
else
|
||||||
|
WriteUleb(FWasmSymbolTable,objsym.GlobalIndex);
|
||||||
|
WriteName(FWasmSymbolTable,objsym.Name);
|
||||||
|
end;
|
||||||
end
|
end
|
||||||
else if IsExternalFunction(objsym) then
|
else if IsExternalFunction(objsym) then
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user