|
@@ -645,10 +645,11 @@ implemented
|
|
if possible (only possible in case of single precision floats, because
|
|
if possible (only possible in case of single precision floats, because
|
|
there are more fprs than gprs for parameter passing) }
|
|
there are more fprs than gprs for parameter passing) }
|
|
if assigned(alllocdef) and
|
|
if assigned(alllocdef) and
|
|
- (tcgsize2size[paracgsize]=4) and
|
|
|
|
(loc=LOC_FPUREGISTER) and
|
|
(loc=LOC_FPUREGISTER) and
|
|
- (nextfloatreg=RS_F13) and
|
|
|
|
- (paralen>4) then
|
|
|
|
|
|
+ (((nextfloatreg=RS_F13) and
|
|
|
|
+ (tcgsize2size[paracgsize]=4) and
|
|
|
|
+ (paralen>4)) or
|
|
|
|
+ (nextfloatreg>RS_F13)) then
|
|
begin
|
|
begin
|
|
loc:=LOC_REGISTER;
|
|
loc:=LOC_REGISTER;
|
|
paracgsize:=OS_64;
|
|
paracgsize:=OS_64;
|