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