scalbn.s raw

   1  .global ldexp
   2  .type ldexp,@function
   3  ldexp:
   4  	nop
   5  
   6  .global scalbln
   7  .type scalbln,@function
   8  scalbln:
   9  	nop
  10  
  11  .global scalbn
  12  .type scalbn,@function
  13  scalbn:
  14  	mov 12(%esp),%eax
  15  	add $0x3ffe,%eax
  16  	cmp $0x7ffd,%eax
  17  	jb 1f
  18  	sub $0x3ffe,%eax
  19  	sar $31,%eax
  20  	xor $0xfff,%eax
  21  	add $0x3ffe,%eax
  22  1:	inc %eax
  23  	fldl 4(%esp)
  24  	mov %eax,12(%esp)
  25  	mov $0x80000000,%eax
  26  	mov %eax,8(%esp)
  27  	xor %eax,%eax
  28  	mov %eax,4(%esp)
  29  	fldt 4(%esp)
  30  	fmulp
  31  	fstpl 4(%esp)
  32  	fldl 4(%esp)
  33  	ret
  34