mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-07 20:46:06 +02:00
+ handle the import_module and import_name directives in the internal
assembler and store them as obj symbol extra data
This commit is contained in:
parent
4ef2a88946
commit
050519f16f
@ -1837,6 +1837,10 @@ Implementation
|
|||||||
{$ifdef WASM}
|
{$ifdef WASM}
|
||||||
ait_functype:
|
ait_functype:
|
||||||
TWasmObjData(ObjData).DeclareFuncType(tai_functype(hp));
|
TWasmObjData(ObjData).DeclareFuncType(tai_functype(hp));
|
||||||
|
ait_import_module:
|
||||||
|
TWasmObjData(ObjData).DeclareImportModule(tai_import_module(hp));
|
||||||
|
ait_import_name:
|
||||||
|
TWasmObjData(ObjData).DeclareImportName(tai_import_name(hp));
|
||||||
{$endif WASM}
|
{$endif WASM}
|
||||||
else
|
else
|
||||||
;
|
;
|
||||||
|
@ -44,6 +44,8 @@ interface
|
|||||||
|
|
||||||
TWasmObjSymbolExtraData = class(TFPHashObject)
|
TWasmObjSymbolExtraData = class(TFPHashObject)
|
||||||
TypeIdx: Integer;
|
TypeIdx: Integer;
|
||||||
|
ImportModule: string;
|
||||||
|
ImportName: string;
|
||||||
constructor Create(HashObjectList: TFPHashObjectList; const s: TSymStr);
|
constructor Create(HashObjectList: TFPHashObjectList; const s: TSymStr);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -74,6 +76,8 @@ interface
|
|||||||
function AddOrCreateObjSymbolExtraData(const symname:TSymStr): TWasmObjSymbolExtraData;
|
function AddOrCreateObjSymbolExtraData(const symname:TSymStr): TWasmObjSymbolExtraData;
|
||||||
function AddFuncType(wft: TWasmFuncType): integer;
|
function AddFuncType(wft: TWasmFuncType): integer;
|
||||||
procedure DeclareFuncType(ft: tai_functype);
|
procedure DeclareFuncType(ft: tai_functype);
|
||||||
|
procedure DeclareImportModule(aim: tai_import_module);
|
||||||
|
procedure DeclareImportName(ain: tai_import_name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TWasmObjOutput }
|
{ TWasmObjOutput }
|
||||||
@ -345,6 +349,22 @@ implementation
|
|||||||
ObjSymExtraData.TypeIdx:=i;
|
ObjSymExtraData.TypeIdx:=i;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWasmObjData.DeclareImportModule(aim: tai_import_module);
|
||||||
|
var
|
||||||
|
ObjSymExtraData: TWasmObjSymbolExtraData;
|
||||||
|
begin
|
||||||
|
ObjSymExtraData:=AddOrCreateObjSymbolExtraData(aim.symname);
|
||||||
|
ObjSymExtraData.ImportModule:=aim.importmodule;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TWasmObjData.DeclareImportName(ain: tai_import_name);
|
||||||
|
var
|
||||||
|
ObjSymExtraData: TWasmObjSymbolExtraData;
|
||||||
|
begin
|
||||||
|
ObjSymExtraData:=AddOrCreateObjSymbolExtraData(ain.symname);
|
||||||
|
ObjSymExtraData.ImportName:=ain.importname;
|
||||||
|
end;
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
TWasmObjOutput
|
TWasmObjOutput
|
||||||
****************************************************************************}
|
****************************************************************************}
|
||||||
|
Loading…
Reference in New Issue
Block a user