summaryrefslogtreecommitdiff
path: root/compiler/powerpc64/cpupara.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/powerpc64/cpupara.pas')
-rw-r--r--compiler/powerpc64/cpupara.pas8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/powerpc64/cpupara.pas b/compiler/powerpc64/cpupara.pas
index 700e00df3c..94e8bc4af6 100644
--- a/compiler/powerpc64/cpupara.pas
+++ b/compiler/powerpc64/cpupara.pas
@@ -40,7 +40,7 @@ type
function push_addr_param(varspez: tvarspez; def: tdef; calloption:
tproccalloption): boolean; override;
- procedure getintparaloc(calloption: tproccalloption; nr: longint; def: tdef; var cgpara: tcgpara); override;
+ procedure getintparaloc(pd : tabstractprocdef; nr: longint; var cgpara: tcgpara); override;
function create_paraloc_info(p: tabstractprocdef; side: tcallercallee): longint; override;
function create_varargs_paraloc_info(p: tabstractprocdef; varargspara:
tvarargsparalist): longint; override;
@@ -77,14 +77,16 @@ begin
result := [RS_F0..RS_F13];
end;
-procedure tppcparamanager.getintparaloc(calloption: tproccalloption; nr: longint; def : tdef; var cgpara: tcgpara);
+procedure tppcparamanager.getintparaloc(pd : tabstractprocdef; nr: longint; var cgpara: tcgpara);
var
paraloc: pcgparalocation;
+ def: tdef;
begin
+ def:=tparavarsym(pd.paras[nr-1]).vardef;
cgpara.reset;
cgpara.size := def_cgsize(def);
cgpara.intsize := tcgsize2size[cgpara.size];
- cgpara.alignment := get_para_align(calloption);
+ cgpara.alignment := get_para_align(pd.proccalloption);
cgpara.def:=def;
paraloc := cgpara.add_location;
with paraloc^ do begin