diff options
Diffstat (limited to 'compiler/avr/cpupara.pas')
-rw-r--r-- | compiler/avr/cpupara.pas | 15 |
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 |