* fixed parameter passing for int64

This commit is contained in:
florian 2003-05-30 23:56:41 +00:00
parent 31db518df3
commit d992e13e08

View File

@ -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)