mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 23:30:26 +02:00
+ support generating R_WASM_TABLE_INDEX_I32 relocations
This commit is contained in:
parent
acdb65c2a3
commit
bf5048cb5e
@ -548,7 +548,14 @@ implementation
|
|||||||
end;
|
end;
|
||||||
RELOC_ABSOLUTE:
|
RELOC_ABSOLUTE:
|
||||||
begin
|
begin
|
||||||
{ todo... }
|
if len<>4 then
|
||||||
|
internalerror(2021092607);
|
||||||
|
if not assigned(p) then
|
||||||
|
internalerror(2021092608);
|
||||||
|
objreloc:=TWasmObjRelocation.CreateSymbol(CurrObjSec.Size,p,Reloctype);
|
||||||
|
CurrObjSec.ObjRelocations.Add(objreloc);
|
||||||
|
Data:=NtoLE(Data);
|
||||||
|
writebytes(Data,4);
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2021092501);
|
internalerror(2021092501);
|
||||||
@ -893,6 +900,8 @@ implementation
|
|||||||
AddUleb5(objsec.Data,objrel.symbol.offset+TWasmObjSection(objrel.symbol.objsection).SegOfs);
|
AddUleb5(objsec.Data,objrel.symbol.offset+TWasmObjSection(objrel.symbol.objsection).SegOfs);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
RELOC_ABSOLUTE:
|
||||||
|
;
|
||||||
else
|
else
|
||||||
internalerror(2021092510);
|
internalerror(2021092510);
|
||||||
end;
|
end;
|
||||||
@ -954,6 +963,20 @@ implementation
|
|||||||
WriteUleb(relout,TWasmObjSymbol(objrel.symbol).SymbolIndex);
|
WriteUleb(relout,TWasmObjSymbol(objrel.symbol).SymbolIndex);
|
||||||
WriteUleb(relout,0); { addend to add to the address }
|
WriteUleb(relout,0); { addend to add to the address }
|
||||||
end;
|
end;
|
||||||
|
RELOC_ABSOLUTE:
|
||||||
|
begin
|
||||||
|
if not assigned(objrel.symbol) then
|
||||||
|
internalerror(2021092604);
|
||||||
|
if IsExternalFunction(objrel.symbol) or (objrel.symbol.typ=AT_FUNCTION) then
|
||||||
|
begin
|
||||||
|
Inc(relcount^);
|
||||||
|
WriteByte(relout,Ord(R_WASM_TABLE_INDEX_I32));
|
||||||
|
WriteUleb(relout,objrel.DataOffset+objsec.FileSectionOfs);
|
||||||
|
WriteUleb(relout,TWasmObjSymbol(objrel.symbol).SymbolIndex);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
internalerror(2021092609);
|
||||||
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2021092507);
|
internalerror(2021092507);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user