mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-25 21:52:17 +02:00
* reuse simple memory paralocs, since we always setup a stack frame and
we can address them via the frame pointer git-svn-id: trunk@29941 -
This commit is contained in:
parent
a81e81c775
commit
e2d21a5716
@ -42,6 +42,7 @@ unit cpupara;
|
|||||||
function create_paraloc_info(p: tabstractprocdef; side: tcallercallee):longint;override;
|
function create_paraloc_info(p: tabstractprocdef; side: tcallercallee):longint;override;
|
||||||
function create_varargs_paraloc_info(p: tabstractprocdef; varargspara: tvarargsparalist):longint;override;
|
function create_varargs_paraloc_info(p: tabstractprocdef; varargspara: tvarargsparalist):longint;override;
|
||||||
function get_funcretloc(p: tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
|
function get_funcretloc(p: tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
|
||||||
|
function param_use_paraloc(const cgpara: tcgpara): boolean; override;
|
||||||
private
|
private
|
||||||
curintreg,
|
curintreg,
|
||||||
curmmreg: tsuperregister;
|
curmmreg: tsuperregister;
|
||||||
@ -331,6 +332,15 @@ unit cpupara;
|
|||||||
internalerror(2014113001);
|
internalerror(2014113001);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function taarch64paramanager.param_use_paraloc(const cgpara: tcgpara): boolean;
|
||||||
|
begin
|
||||||
|
{ we always set up a stack frame -> we can always access the parameters
|
||||||
|
this way }
|
||||||
|
result:=
|
||||||
|
(cgpara.location^.loc=LOC_REFERENCE) and
|
||||||
|
not assigned(cgpara.location^.next);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure taarch64paramanager.init_para_alloc_values;
|
procedure taarch64paramanager.init_para_alloc_values;
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user