mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-27 01:28:27 +02:00
* fixed passing of float in softfloat mode on the stack
git-svn-id: trunk@978 -
This commit is contained in:
parent
d9f6a5a374
commit
fea7d1df10
@ -289,7 +289,14 @@ unit cpupara;
|
||||
else if paracgsize in [OS_64,OS_S64] then
|
||||
paraloc^.size:=OS_32
|
||||
else if (loc=LOC_REGISTER) and (paracgsize in [OS_F32,OS_F64,OS_F80]) then
|
||||
paraloc^.size:=OS_32
|
||||
case paracgsize of
|
||||
OS_F32:
|
||||
paraloc^.size:=OS_32;
|
||||
OS_F64:
|
||||
paraloc^.size:=OS_64;
|
||||
else
|
||||
internalerror(2005082901);
|
||||
end
|
||||
else
|
||||
paraloc^.size:=paracgsize;
|
||||
case loc of
|
||||
@ -304,10 +311,13 @@ unit cpupara;
|
||||
end
|
||||
else
|
||||
begin
|
||||
{ LOC_REFERENCE covers always the overleft }
|
||||
paraloc^.loc:=LOC_REFERENCE;
|
||||
paraloc^.reference.index:=NR_STACK_POINTER_REG;
|
||||
paraloc^.reference.offset:=stack_offset;
|
||||
inc(stack_offset,4);
|
||||
paraloc^.size:=int_cgsize(paralen);
|
||||
if (side=callerside) then
|
||||
paraloc^.reference.index:=NR_STACK_POINTER_REG;
|
||||
inc(stack_offset,align(paralen,4));
|
||||
paralen:=0;
|
||||
end;
|
||||
end;
|
||||
LOC_FPUREGISTER:
|
||||
|
Loading…
Reference in New Issue
Block a user