summaryrefslogtreecommitdiff
path: root/compiler/avr/cpupara.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/avr/cpupara.pas')
-rw-r--r--compiler/avr/cpupara.pas15
1 files changed, 4 insertions, 11 deletions
diff --git a/compiler/avr/cpupara.pas b/compiler/avr/cpupara.pas
index ae5c5a5996..763e7b3b7c 100644
--- a/compiler/avr/cpupara.pas
+++ b/compiler/avr/cpupara.pas
@@ -41,12 +41,11 @@ unit cpupara;
procedure getintparaloc(calloption : tproccalloption; nr : longint; def : tdef; 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;
- function get_funcretloc(p : tabstractprocdef; side: tcallercallee; def: tdef): tcgpara;override;
+ function get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
private
procedure init_values(var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: aword);
function create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee; paras: tparalist;
var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: aword):longint;
- procedure create_funcretloc_info(p : tabstractprocdef; side: tcallercallee);
end;
implementation
@@ -403,24 +402,18 @@ unit cpupara;
end;
- procedure tavrparamanager.create_funcretloc_info(p : tabstractprocdef; side: tcallercallee);
- begin
- p.funcretloc[side]:=get_funcretloc(p,side,p.returndef);
- end;
-
-
{ TODO : fix tavrparamanager.get_funcretloc }
- function tavrparamanager.get_funcretloc(p : tabstractprocdef; side: tcallercallee; def: tdef): tcgpara;
+ function tavrparamanager.get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;
var
retcgsize : tcgsize;
paraloc : pcgparalocation;
begin
- if set_common_funcretloc_info(p,def,retcgsize,result) then
+ if set_common_funcretloc_info(p,forcetempdef,retcgsize,result) then
exit;
paraloc:=result.add_location;
{ Return in FPU register? }
- if def.typ=floatdef then
+ if result.def.typ=floatdef then
begin
if (p.proccalloption in [pocall_softfloat]) or (cs_fp_emulation in current_settings.moduleswitches) then
begin