Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
.file "frnd.s" .section .text .proc _frnd#
.align 32 .global _frnd#
.align 32
_frnd:
// CONVERT BEGINS HERE WITH ARGUMENT IN f8 { .mmi // save the old fpsr in r2 mov r2=ar40;;
mov r3=r2 nop.i 0 } { .mlx nop.m 0 movl r8=0x02000;;
} { .mmi // clear sf0.V bit in r3 andcm r3=r3,r8;;
// set traps.PDV or r3=0x23,r3 nop.i 0;;
} { .mib mov ar40=r3 nop.i 0 nop.b 0;;
} { .mfi nop.m 0 fcvt.fx.s0 f7=f8 nop.i 0;;
} { .mmi mov r3=ar40;;
nop.m 0 // examine the sf0.V bit (p6 = 1 if sf0.V set) tbit.z p6,p7=r3,0x0d;;
} { .mfb nop.m 0 (p6) fcvt.xf f8=f7 nop.b 0;;
} // CONVERT ENDS HERE WITH RESULT IN f8 done: { .mmb mov ar40=r2 // store result nop.m 0 // return br.ret.sptk b0;;
}
.endp _frnd
|