.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 0r2147483648 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