mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-23 16:51:32 +02:00
* fixed parameter passing for int64
This commit is contained in:
parent
31db518df3
commit
d992e13e08
@ -355,30 +355,30 @@ var
|
|||||||
asm
|
asm
|
||||||
lis r0,0x4330
|
lis r0,0x4330
|
||||||
stw r0,temp
|
stw r0,temp
|
||||||
xoris r4,r4,0x8000
|
xoris r3,r3,0x8000
|
||||||
stw r4,4+temp
|
stw r3,4+temp
|
||||||
{$ifndef macos}
|
{$ifndef macos}
|
||||||
lis r4,longint_to_real_helper@ha
|
lis r3,longint_to_real_helper@ha
|
||||||
lfd f1,longint_to_real_helper@l(r4)
|
lfd f1,longint_to_real_helper@l(r3)
|
||||||
{$else}
|
{$else}
|
||||||
lwz r4,longint_to_real_helper[TC](r2)
|
lwz r3,longint_to_real_helper[TC](r2)
|
||||||
lfd f1,0(r4)
|
lfd f1,0(r3)
|
||||||
{$endif}
|
{$endif}
|
||||||
lfd f0,temp
|
lfd f0,temp
|
||||||
stw r3,4+temp
|
stw r4,4+temp
|
||||||
fsub f0,f0,f1
|
fsub f0,f0,f1
|
||||||
{$ifndef macos}
|
{$ifndef macos}
|
||||||
lis r3,cardinal_to_real_helper@ha
|
lis r4,cardinal_to_real_helper@ha
|
||||||
lfd f1,cardinal_to_real_helper@l(r3)
|
lfd f1,cardinal_to_real_helper@l(r4)
|
||||||
lis r3,int_to_real_factor@ha
|
lis r4,int_to_real_factor@ha
|
||||||
lfd f3,temp
|
lfd f3,temp
|
||||||
lfd f2,int_to_real_factor@l(r3)
|
lfd f2,int_to_real_factor@l(r4)
|
||||||
{$else}
|
{$else}
|
||||||
lwz r3,cardinal_to_real_helper[TC](r2)
|
lwz r4,cardinal_to_real_helper[TC](r2)
|
||||||
lwz r4,int_to_real_factor[TC](r2)
|
lwz r3,int_to_real_factor[TC](r2)
|
||||||
lfd f3,temp
|
lfd f3,temp
|
||||||
lfd f1,0(r3)
|
lfd f1,0(r4)
|
||||||
lfd f2,0(r4)
|
lfd f2,0(r3)
|
||||||
{$endif}
|
{$endif}
|
||||||
fsub f3,f3,f1
|
fsub f3,f3,f1
|
||||||
fmadd f1,f0,f2,f3
|
fmadd f1,f0,f2,f3
|
||||||
@ -398,33 +398,36 @@ var
|
|||||||
asm
|
asm
|
||||||
lis r0,0x4330
|
lis r0,0x4330
|
||||||
stw r0,temp
|
stw r0,temp
|
||||||
stw r4,4+temp
|
stw r3,4+temp
|
||||||
lfd f0,temp
|
lfd f0,temp
|
||||||
{$ifndef macos}
|
{$ifndef macos}
|
||||||
lis r4,cardinal_to_real_helper@ha
|
lis r3,cardinal_to_real_helper@ha
|
||||||
lfd f1,cardinal_to_real_helper@l(r4)
|
lfd f1,cardinal_to_real_helper@l(r3)
|
||||||
{$else}
|
{$else}
|
||||||
lwz r4,longint_to_real_helper[TC](r2)
|
lwz r3,longint_to_real_helper[TC](r2)
|
||||||
lfd f1,0(r4)
|
lfd f1,0(r3)
|
||||||
{$endif}
|
{$endif}
|
||||||
stw r3,4+temp
|
stw r4,4+temp
|
||||||
fsub f0,f0,f1
|
fsub f0,f0,f1
|
||||||
lfd f3,temp
|
lfd f3,temp
|
||||||
{$ifndef macos}
|
{$ifndef macos}
|
||||||
lis r3,int_to_real_factor@ha
|
lis r4,int_to_real_factor@ha
|
||||||
lfd f2,int_to_real_factor@l(r3)
|
lfd f2,int_to_real_factor@l(r4)
|
||||||
{$else}
|
{$else}
|
||||||
lwz r3,int_to_real_factor[TC](r2)
|
lwz r4,int_to_real_factor[TC](r2)
|
||||||
lfd f2,0(r3)
|
lfd f2,0(r4)
|
||||||
{$endif}
|
{$endif}
|
||||||
fsub f3,f3,f1
|
fsub f3,f3,f1
|
||||||
fmadd f1,f0,f2,f3
|
fmadd f1,f0,f2,f3
|
||||||
end ['R0','R3','F0','F1','F2','F3'];
|
end ['R0','R3','R4','F0','F1','F2','F3'];
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.23 2003-05-24 13:39:32 jonas
|
Revision 1.24 2003-05-30 23:56:41 florian
|
||||||
|
* fixed parameter passing for int64
|
||||||
|
|
||||||
|
Revision 1.23 2003/05/24 13:39:32 jonas
|
||||||
* fsqrt is an optional instruction in the ppc architecture and isn't
|
* fsqrt is an optional instruction in the ppc architecture and isn't
|
||||||
implemented by any current ppc afaik, so use the generic sqrt routine
|
implemented by any current ppc afaik, so use the generic sqrt routine
|
||||||
instead (adapted so it works with compilerproc)
|
instead (adapted so it works with compilerproc)
|
||||||
|
Loading…
Reference in New Issue
Block a user