.file "qfltbi.c" gcc2_compiled.: ___gnu_compiled_c: .text .align 4 .globl _shdn1 _shdn1: pushl %ebp movl %esp,%ebp pushl %ebx movl 8(%ebp),%ebx clc rcrl $1,8(%ebx) rcrl $1,12(%ebx) rcrl $1,16(%ebx) rcrl $1,20(%ebx) rcrl $1,24(%ebx) rcrl $1,28(%ebx) rcrl $1,32(%ebx) rcrl $1,36(%ebx) rcrl $1,40(%ebx) rcrl $1,44(%ebx) rcrl $1,48(%ebx) rcrl $1,52(%ebx) rcrl $1,56(%ebx) popl %ebx movl %ebp,%esp popl %ebp ret .align 4 .globl _shup1 _shup1: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax clc rcll $1,56(%eax) rcll $1,52(%eax) rcll $1,48(%eax) rcll $1,44(%eax) rcll $1,40(%eax) rcll $1,36(%eax) rcll $1,32(%eax) rcll $1,28(%eax) rcll $1,24(%eax) rcll $1,20(%eax) rcll $1,16(%eax) rcll $1,12(%eax) rcll $1,8(%eax) movl %ebp,%esp popl %ebp ret .align 4 .globl _shdn16 _shdn16: pushl %ebp movl %esp,%ebp pushl %esi pushl %ebx movl 8(%ebp),%esi movl $16,%ecx jmp _shdnsome .align 4 .globl _shdn8 _shdn8: pushl %ebp movl %esp,%ebp pushl %esi pushl %ebx movl 8(%ebp),%esi movl $8,%ecx _shdnsome: movl 56(%esi),%ebx movl 52(%esi),%edx shrd %cl,%edx,%ebx movl %ebx,56(%esi) movl 48(%esi),%ebx shrd %cl,%ebx,%edx movl %edx,52(%esi) movl 44(%esi),%edx shrd %cl,%edx,%ebx movl %ebx,48(%esi) movl 40(%esi),%ebx shrd %cl,%ebx,%edx movl %edx,44(%esi) movl 36(%esi),%edx shrd %cl,%edx,%ebx movl %ebx,40(%esi) movl 32(%esi),%ebx shrd %cl,%ebx,%edx movl %edx,36(%esi) movl 28(%esi),%edx shrd %cl,%edx,%ebx movl %ebx,32(%esi) movl 24(%esi),%ebx shrd %cl,%ebx,%edx movl %edx,28(%esi) movl 20(%esi),%edx shrd %cl,%edx,%ebx movl %ebx,24(%esi) movl 16(%esi),%ebx shrd %cl,%ebx,%edx movl %edx,20(%esi) movl 12(%esi),%edx shrd %cl,%edx,%ebx movl %ebx,16(%esi) movl 8(%esi),%ebx shrd %cl,%ebx,%edx movl %edx,12(%esi) shr %cl,%ebx movl %ebx,8(%esi) popl %ebx popl %esi movl %ebp,%esp popl %ebp ret .align 4 .globl _shup16 _shup16: pushl %ebp movl %esp,%ebp pushl %esi pushl %ebx movl 8(%ebp),%esi movl $16,%ecx jmp _shupsome .align 4 .globl _shup8 _shup8: pushl %ebp movl %esp,%ebp pushl %esi pushl %ebx movl 8(%ebp),%esi movl $8,%ecx _shupsome: movl 8(%esi),%edx movl 12(%esi),%ebx shld %cl,%ebx,%edx movl %edx,8(%esi) movl 16(%esi),%edx shld %cl,%edx,%ebx movl %ebx,12(%esi) movl 20(%esi),%ebx shld %cl,%ebx,%edx movl %edx,16(%esi) movl 24(%esi),%edx shld %cl,%edx,%ebx movl %ebx,20(%esi) movl 28(%esi),%ebx shld %cl,%ebx,%edx movl %edx,24(%esi) movl 32(%esi),%edx shld %cl,%edx,%ebx movl %ebx,28(%esi) movl 36(%esi),%ebx shld %cl,%ebx,%edx movl %edx,32(%esi) movl 40(%esi),%edx shld %cl,%edx,%ebx movl %ebx,36(%esi) movl 44(%esi),%ebx shld %cl,%ebx,%edx movl %edx,40(%esi) movl 48(%esi),%edx shld %cl,%edx,%ebx movl %ebx,44(%esi) movl 52(%esi),%ebx shld %cl,%ebx,%edx movl %edx,48(%esi) movl 56(%esi),%edx shld %cl,%edx,%ebx movl %ebx,52(%esi) shl %cl,%edx movl %edx,56(%esi) popl %ebx popl %esi movl %ebp,%esp popl %ebp ret .align 4 .globl _addm _addm: pushl %ebp movl %esp,%ebp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%esi addl $56,%esi movl 12(%ebp),%edi addl $56,%edi xorl %eax,%eax xorl %edx,%edx addl (%edi),%eax adcl $0,%edx addl (%esi),%eax adcl $0,%edx movl %eax,(%edi) xorl %eax,%eax addl -4(%edi),%edx adcl $0,%eax addl -4(%esi),%edx adcl $0,%eax movl %edx,-4(%edi) xorl %edx,%edx addl -8(%edi),%eax adcl $0,%edx addl -8(%esi),%eax adcl $0,%edx movl %eax,-8(%edi) xorl %eax,%eax addl -12(%edi),%edx adcl $0,%eax addl -12(%esi),%edx adcl $0,%eax movl %edx,-12(%edi) xorl %edx,%edx addl -16(%edi),%eax adcl $0,%edx addl -16(%esi),%eax adcl $0,%edx movl %eax,-16(%edi) xorl %eax,%eax addl -20(%edi),%edx adcl $0,%eax addl -20(%esi),%edx adcl $0,%eax movl %edx,-20(%edi) xorl %edx,%edx addl -24(%edi),%eax adcl $0,%edx addl -24(%esi),%eax adcl $0,%edx movl %eax,-24(%edi) xorl %eax,%eax addl -28(%edi),%edx adcl $0,%eax addl -28(%esi),%edx adcl $0,%eax movl %edx,-28(%edi) xorl %edx,%edx addl -32(%edi),%eax adcl $0,%edx addl -32(%esi),%eax adcl $0,%edx movl %eax,-32(%edi) xorl %eax,%eax addl -36(%edi),%edx adcl $0,%eax addl -36(%esi),%edx adcl $0,%eax movl %edx,-36(%edi) xorl %edx,%edx addl -40(%edi),%eax adcl $0,%edx addl -40(%esi),%eax adcl $0,%edx movl %eax,-40(%edi) xorl %eax,%eax addl -44(%edi),%edx adcl $0,%eax addl -44(%esi),%edx adcl $0,%eax movl %edx,-44(%edi) xorl %edx,%edx addl -48(%edi),%eax adcl $0,%edx addl -48(%esi),%eax adcl $0,%edx movl %eax,-48(%edi) popl %ebx popl %esi popl %edi movl %ebp,%esp popl %ebp ret .align 4 .globl _subm _subm: pushl %ebp movl %esp,%ebp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%esi addl $56,%esi movl 12(%ebp),%edi addl $56,%edi movl $1,%eax xorl %edx,%edx xorl %ebx,%ebx L43: addl (%edi),%eax adcl $0,%edx movl (%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,(%edi) xorl %eax,%eax addl -4(%edi),%edx adcl $0,%eax movl -4(%esi),%ecx notl %ecx addl %ecx,%edx adcl $0,%eax movl %edx,-4(%edi) xorl %edx,%edx addl -8(%edi),%eax adcl $0,%edx movl -8(%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,-8(%edi) xorl %eax,%eax addl -12(%edi),%edx adcl $0,%eax movl -12(%esi),%ecx notl %ecx addl %ecx,%edx adcl $0,%eax movl %edx,-12(%edi) xorl %edx,%edx addl -16(%edi),%eax adcl $0,%edx movl -16(%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,-16(%edi) xorl %eax,%eax addl -20(%edi),%edx adcl $0,%eax movl -20(%esi),%ecx notl %ecx addl %ecx,%edx adcl $0,%eax movl %edx,-20(%edi) xorl %edx,%edx addl -24(%edi),%eax adcl $0,%edx movl -24(%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,-24(%edi) xorl %eax,%eax addl -28(%edi),%edx adcl $0,%eax movl -28(%esi),%ecx notl %ecx addl %ecx,%edx adcl $0,%eax movl %edx,-28(%edi) xorl %edx,%edx addl -32(%edi),%eax adcl $0,%edx movl -32(%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,-32(%edi) xorl %eax,%eax addl -36(%edi),%edx adcl $0,%eax movl -36(%esi),%ecx notl %ecx addl %ecx,%edx adcl $0,%eax movl %edx,-36(%edi) xorl %edx,%edx addl -40(%edi),%eax adcl $0,%edx movl -40(%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,-40(%edi) xorl %eax,%eax addl -44(%edi),%edx adcl $0,%eax movl -44(%esi),%ecx notl %ecx addl %ecx,%edx adcl $0,%eax movl %edx,-44(%edi) xorl %edx,%edx addl -48(%edi),%eax adcl $0,%edx movl -48(%esi),%ecx notl %ecx addl %ecx,%eax adcl $0,%edx movl %eax,-48(%edi) popl %ebx popl %esi popl %edi movl %ebp,%esp popl %ebp ret .align 4 .globl _divm _divm: /* divm( a, b ) */ pushl %ebp movl %esp,%ebp subl $228,%esp pushl %edi pushl %esi pushl %ebx /* Test if denominator has only 32 bits of significance. */ /* p = &a[4]; */ movl 8(%ebp),%edx addl $16,%edx /* i = NQ-4; */ movl $10,%esi .align 2,0x90 L52: movl (%edx),%eax addl $4,%edx testl %eax,%eax jne L56 decl %esi jne L52 /* Do single precision divides if so. */ /* qmov( b, prod ); */ leal -128(%ebp),%ecx movl %ecx,-228(%ebp) pushl %ecx movl 12(%ebp),%ebx pushl %ebx call _qmov /* prod[NQ] = 0; */ movl $0,-72(%ebp) /* prod[NQ+1] = 0; */ movl $0,-68(%ebp) /* shdn1( prod ); */ movl -228(%ebp),%ecx pushl %ecx call _shdn1 /* shdn1( prod ); */ movl -228(%ebp),%ebx pushl %ebx call _shdn1 /* d = a[3]; */ movl 8(%ebp),%ecx movl 12(%ecx),%edi movl %edi,-212(%ebp) /* u = ((unsigned long long)prod[3] << 32) | prod[4]; */ movl -116(%ebp),%edx movl -112(%ebp),%eax movl %eax,-204(%ebp) movl %edx,-200(%ebp) /* for( i=3; i=3; i-- ) */ movl $13,-80(%ebp) addl $4,%esp .align 2,0x90 L135: /* if( *p == 0 ) {--p; --r; continue; } */ movl -64(%ebp),%ebx addl $-4,-64(%ebp) movl (%ebx),%eax orl %eax,%eax je L128 /* lp = (unsigned long long)(*p--) * y; */ mull -68(%ebp) xorl %ecx,%ecx addl (%esi),%eax adcl $0,%edx adcl $0,%ecx addl -4(%esi),%edx adcl $0,%ecx movl %eax,(%esi) movl %edx,-4(%esi) addl %ecx,-8(%esi) L128: addl $-4,%esi decl -80(%ebp) cmpl $2,-80(%ebp) jg L135 /* mdnorm( act ); */ leal -60(%ebp),%ebx pushl %ebx call _mdnorm /* qmov( act, ac3 ); */ movl 12(%ebp),%ecx pushl %ecx pushl %ebx call _qmov leal -104(%ebp),%esp popl %ebx popl %esi popl %edi movl %ebp,%esp popl %ebp ret .globl _rndbit .data .align 2 _rndbit: .long 0 .space 56 .globl _rndset .align 2 _rndset: .long 0 .text .align 4 .globl _mdnorm _mdnorm: pushl %ebp movl %esp,%ebp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%edi cmpl $0,_rndset jne L137 pushl $_rndbit call _qclear movl $1,_rndbit+52 movl $0,_rndbit+56 movl $1,_rndset addl $4,%esp L137: leal 4(%edi),%ebx xorl %esi,%esi .align 2,0x90 L143: cmpl $0,8(%edi) je L139 pushl %edi call _shdn1 incl (%ebx) /* addl $4,%esp */ /* cmpl $0,(%ebx) */ /* jge L140 */ /* movl $32767,(%ebx) */ L140: incl %esi cmpl $2,%esi jle L143 L139: xorl %esi,%esi .align 2,0x90 L149: cmpl $0,12(%edi) jl L145 /* pushl %edi */ /* call _shup1 */ /* addl $4,%esp */ cmpl $0,(%ebx) je L146 decl (%ebx) pushl %edi call _shup1 addl $4,%esp L146: incl %esi cmpl $2,%esi jle L149 L145: cmpl $0,56(%edi) jge L150 pushl %edi pushl $_rndbit call _addm addl $8,%esp L150: cmpl $0,8(%edi) je L153 pushl %edi call _shdn1 incl (%ebx) /* jns L153 */ /* movl $32767,(%ebx) */ L153: movl $0,56(%edi) leal -12(%ebp),%esp popl %ebx popl %esi popl %edi movl %ebp,%esp popl %ebp ret .align 4 .globl _qmov _qmov: pushl %ebp movl %esp,%ebp pushl %esi pushl %edi movl $14,%ecx movl 8(%ebp),%esi movl 12(%ebp),%edi rep; movsl popl %edi popl %esi movl %ebp,%esp popl %ebp ret .align 4 .globl _qmovz _qmovz: pushl %ebp movl %esp,%ebp pushl %esi pushl %edi movl $14,%ecx movl 8(%ebp),%esi movl 12(%ebp),%edi rep; movsl movl $0,(%edi) popl %edi popl %esi movl %ebp,%esp popl %ebp ret .align 4 .globl _qclear _qclear: pushl %ebp movl %esp,%ebp pushl %edi movl $14,%ecx movl $0,%eax movl 8(%ebp),%edi rep; stosl popl %edi movl %ebp,%esp popl %ebp ret