+ add relocation objects for the RELOC_FUNCTION_INDEX_LEB relocation to

the relocation list. They are not written to the object file, yet.
This commit is contained in:
Nikolay Nikolov 2021-09-25 18:37:10 +03:00
parent a5d1ce26a0
commit 12496a638b

View File

@ -40,6 +40,11 @@ interface
type
{ TWasmObjRelocation }
TWasmObjRelocation = class(TObjRelocation)
end;
{ TWasmObjSymbolExtraData }
TWasmObjSymbolExtraData = class(TFPHashObject)
@ -330,7 +335,12 @@ implementation
p: TObjSymbol; Reloctype: TObjRelocationType);
const
leb_zero: array[0..4] of byte=($80,$80,$80,$80,$00);
var
objreloc: TWasmObjRelocation;
begin
if CurrObjSec=nil then
internalerror(200403072);
objreloc:=nil;
case Reloctype of
RELOC_FUNCTION_INDEX_LEB:
begin
@ -338,6 +348,12 @@ implementation
internalerror(2021092502);
if len<>5 then
internalerror(2021092503);
if not assigned(p) then
internalerror(2021092504);
if p.bind<>AB_EXTERNAL then
internalerror(2021092505);
objreloc:=TWasmObjRelocation.CreateSymbol(CurrObjSec.Size,p,Reloctype);
CurrObjSec.ObjRelocations.Add(objreloc);
writebytes(leb_zero,5);
end;
RELOC_ABSOLUTE: