diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-01-07 02:33:00 +0000 |
---|---|---|
committer | <ralf@linux-mips.org> | 1997-01-07 02:33:00 +0000 |
commit | beb116954b9b7f3bb56412b2494b562f02b864b1 (patch) | |
tree | 120e997879884e1b9d93b265221b939d2ef1ade1 /arch/i386/math-emu/reg_div.S | |
parent | 908d4681a1dc3792ecafbe64265783a86c4cccb6 (diff) |
Import of Linux/MIPS 2.1.14
Diffstat (limited to 'arch/i386/math-emu/reg_div.S')
-rw-r--r-- | arch/i386/math-emu/reg_div.S | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/arch/i386/math-emu/reg_div.S b/arch/i386/math-emu/reg_div.S index 2fbc5f7c4..24d44ac6c 100644 --- a/arch/i386/math-emu/reg_div.S +++ b/arch/i386/math-emu/reg_div.S @@ -4,9 +4,9 @@ | | | Divide one FPU_REG by another and put the result in a destination FPU_REG.| | | - | Copyright (C) 1992,1993,1994 | + | Copyright (C) 1992,1993,1994,1995 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | - | Australia. E-mail billm@vaxc.cc.monash.edu.au | + | Australia. E-mail billm@jacobi.maths.monash.edu.au | | | | Call from C as: | | void reg_div(FPU_REG *a, FPU_REG *b, FPU_REG *dest, | @@ -15,14 +15,11 @@ +---------------------------------------------------------------------------*/ #include "exception.h" -#include "fpu_asm.h" +#include "fpu_emu.h" .text - .align 2 - -.globl _reg_div -_reg_div: +ENTRY(reg_div) pushl %ebp movl %esp,%ebp #ifndef NON_REENTRANT_FPU @@ -47,7 +44,7 @@ _reg_div: cmpl EXP_UNDER,EXP(%esi) jg xL_arg1_not_denormal - call _denormal_operand + call SYMBOL_NAME(denormal_operand) orl %eax,%eax jnz fpu_Arith_exit @@ -55,7 +52,7 @@ xL_arg1_not_denormal: cmpl EXP_UNDER,EXP(%ebx) jg xL_arg2_not_denormal - call _denormal_operand + call SYMBOL_NAME(denormal_operand) orl %eax,%eax jnz fpu_Arith_exit @@ -75,7 +72,7 @@ xL_arg2_not_denormal: addl EXP_BIAS,%edx movl %edx,EXP(%edi) - jmp _divide_kernel + jmp SYMBOL_NAME(divide_kernel) /*-----------------------------------------------------------------------*/ @@ -92,14 +89,14 @@ L_arg2_NaN: pushl %edi /* Destination */ pushl %esi pushl %ebx /* Ordering is important here */ - call _real_2op_NaN + call SYMBOL_NAME(real_2op_NaN) jmp LDiv_exit /* Invalid operations */ L_zero_zero: L_inf_inf: pushl %edi /* Destination */ - call _arith_invalid /* 0/0 or Infinity/Infinity */ + call SYMBOL_NAME(arith_invalid) /* 0/0 or Infinity/Infinity */ jmp LDiv_exit L_no_NaN_arg: @@ -126,7 +123,7 @@ L_inf_valid: cmpl EXP_UNDER,EXP(%ebx) jg L_copy_arg1 /* Answer is Inf */ - call _denormal_operand + call SYMBOL_NAME(denormal_operand) orl %eax,%eax jnz fpu_Arith_exit #endif DENORM_OPERAND @@ -151,7 +148,7 @@ L_arg1_not_inf: movb SIGN(%esi),%al xorb SIGN(%ebx),%al pushl %eax /* lower 8 bits have the sign */ - call _divide_by_zero + call SYMBOL_NAME(divide_by_zero) jmp LDiv_exit L_arg2_not_zero: @@ -165,7 +162,7 @@ L_arg2_not_zero: cmpl EXP_UNDER,EXP(%esi) jg L_return_zero /* Answer is zero */ - call _denormal_operand + call SYMBOL_NAME(denormal_operand) orl %eax,%eax jnz fpu_Arith_exit #endif DENORM_OPERAND @@ -185,7 +182,7 @@ L_arg2_not_inf: cmpl EXP_UNDER,EXP(%ebx) jg L_copy_arg1 /* Answer is zero */ - call _denormal_operand + call SYMBOL_NAME(denormal_operand) orl %eax,%eax jnz fpu_Arith_exit #endif DENORM_OPERAND @@ -241,11 +238,11 @@ L_unknown_tags: call EXCEPTION /* Generate a NaN for unknown tags */ - movl _CONST_QNaN,%eax + movl SYMBOL_NAME(CONST_QNaN),%eax movl %eax,(%edi) - movl _CONST_QNaN+4,%eax + movl SYMBOL_NAME(CONST_QNaN)+4,%eax movl %eax,SIGL(%edi) - movl _CONST_QNaN+8,%eax + movl SYMBOL_NAME(CONST_QNaN)+8,%eax movl %eax,SIGH(%edi) jmp LDiv_exit /* %eax is nz */ #endif PARANOID |