12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- .global fif8, Fd0, Fd1, Fd80000000, Fs80000000, Fs0
- .align 8
- Fd0:
- .double 0r0
- Fd1:
- .double 0r1
- FxE15:
- .word 0x43300000, 0x0 ! magic const: (a.b + x) - x == a.0
- Fd80000000:
- .align 8
- .double 0r4294967296
- Fs80000000:
- .single 0r4294967296
- Fs0:
- .single 0r0
- fif8:
- ld [%l0], %f0
- ld [%l0+4], %f1
- ld [%l0+8], %f2
- ld [%l0+12], %f3
- fmuld %f0, %f2, %f0
- fmovs %f0, %f6
- fmovs %f1, %f7
- set Fd0, %o0
- ldd [%o0], %f8
- fcmpd %f0, %f8
- nop
- fbuge,a 1f
- mov %g0, %o1
- set 1, %o1
- fnegs %f0, %f0
- 1:
- set FxE15, %o0
- ldd [%o0], %f10
- fcmpd %f0, %f10
- nop
- fbuge 2f
- nop
- faddd %f0, %f10, %f4
- fsubd %f4, %f10, %f4
- fsubd %f0, %f4, %f2
- set Fd1, %o0
- ldd [%o0], %f12
- 4: fcmpd %f2, %f12
- nop
- fbge,a 4b
- fsubd %f2, %f12, %f2
- 5: fcmpd %f2, %f8
- nop
- fbl,a 5b
- faddd %f2, %f12, %f2
- fsubd %f0, %f2, %f0
- 2:
- tst %o1
- bz 3f
- nop
- fnegs %f0, %f0
- 3:
- fsubd %f6, %f0, %f2
- st %f0, [%l0]
- st %f1, [%l0+4]
- st %f2, [%l0+8]
- st %f3, [%l0+12]
- retl
- nop
|