summaryrefslogtreecommitdiff
path: root/compiler/i386/cpupara.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/i386/cpupara.pas')
-rw-r--r--compiler/i386/cpupara.pas10
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/i386/cpupara.pas b/compiler/i386/cpupara.pas
index a0a2d974f5..67c140b408 100644
--- a/compiler/i386/cpupara.pas
+++ b/compiler/i386/cpupara.pas
@@ -45,7 +45,7 @@ unit cpupara;
and if the calling conventions for the helper routines of the
rtl are used.
}
- 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;
procedure createtempparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;can_use_final_stack_loc : boolean;var cgpara:TCGPara);override;
@@ -278,20 +278,22 @@ unit cpupara;
end;
- procedure ti386paramanager.getintparaloc(calloption : tproccalloption; nr : longint; def : tdef; var cgpara : tcgpara);
+ procedure ti386paramanager.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
size:=OS_INT;
- if calloption=pocall_register then
+ if pd.proccalloption=pocall_register then
begin
if (nr<=length(parasupregs)) then
begin