summaryrefslogtreecommitdiffstats
path: root/arch/i386/math-emu/reg_div.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-01-07 02:33:00 +0000
committer <ralf@linux-mips.org>1997-01-07 02:33:00 +0000
commitbeb116954b9b7f3bb56412b2494b562f02b864b1 (patch)
tree120e997879884e1b9d93b265221b939d2ef1ade1 /arch/i386/math-emu/reg_div.S
parent908d4681a1dc3792ecafbe64265783a86c4cccb6 (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.S35
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