mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-13 13:09:16 +02:00
+ introduced ttgwasm(tg).allocframepointer and .allocbasepointer
git-svn-id: branches/wasm@47888 -
This commit is contained in:
parent
dc151465c5
commit
08580ed628
@ -1673,9 +1673,8 @@ implementation
|
||||
pd:=tcpuprocdef(current_procinfo.procdef);
|
||||
g_procdef(list,pd);
|
||||
|
||||
{ hack: we use tt_regallocator to force a local }
|
||||
tg.gethltemp(list,voidpointertype,voidpointertype.size,tt_regallocator,pd.frame_pointer_ref);
|
||||
tg.gethltemp(list,voidpointertype,voidpointertype.size,tt_regallocator,pd.base_pointer_ref);
|
||||
ttgwasm(tg).allocframepointer(list,pd.frame_pointer_ref);
|
||||
ttgwasm(tg).allocbasepointer(list,pd.base_pointer_ref);
|
||||
|
||||
{ the localsize is based on tg.lasttemp -> already in terms of stack
|
||||
slots rather than bytes }
|
||||
|
@ -78,6 +78,8 @@ unit tgcpu;
|
||||
procedure gethltemp(list: TAsmList; def: tdef; forcesize: asizeint; temptype: ttemptype; out ref: treference); override;
|
||||
procedure gethltempmanaged(list: TAsmList; def: tdef; temptype: ttemptype; out ref: treference); override;
|
||||
procedure ungettemp(list: TAsmList; const ref : treference); override;
|
||||
procedure allocframepointer(list: TAsmList; out ref: treference);
|
||||
procedure allocbasepointer(list: TAsmList; out ref: treference);
|
||||
end;
|
||||
|
||||
function defToWasmBasic(def: tdef; var wbt: TWasmBasicType): Boolean;
|
||||
@ -197,6 +199,16 @@ unit tgcpu;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure ttgwasm.allocframepointer(list: TAsmList; out ref: treference);
|
||||
begin
|
||||
allocLocalVarToRef(wbt_i32,ref);
|
||||
end;
|
||||
|
||||
procedure ttgwasm.allocbasepointer(list: TAsmList; out ref: treference);
|
||||
begin
|
||||
allocLocalVarToRef(wbt_i32,ref);
|
||||
end;
|
||||
|
||||
procedure ttgwasm.allocLocalVarToRef(wbt: TWasmBasicType; out ref: treference);
|
||||
var
|
||||
idx : integer;
|
||||
|
Loading…
Reference in New Issue
Block a user