Module Name:    src
Committed By:   isaki
Date:           Sat Apr 20 04:38:51 UTC 2013

Modified Files:
        src/sys/arch/m68k/fpe: fpu_exp.c fpu_hyperb.c

Log Message:
Break a loop off to avoid a long loop even if the precision is not enough.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/m68k/fpe/fpu_exp.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/m68k/fpe/fpu_hyperb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/m68k/fpe/fpu_exp.c
diff -u src/sys/arch/m68k/fpe/fpu_exp.c:1.6 src/sys/arch/m68k/fpe/fpu_exp.c:1.7
--- src/sys/arch/m68k/fpe/fpu_exp.c:1.6	Sat Apr 20 03:06:19 2013
+++ src/sys/arch/m68k/fpe/fpu_exp.c	Sat Apr 20 04:38:51 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: fpu_exp.c,v 1.6 2013/04/20 03:06:19 isaki Exp $	*/
+/*	$NetBSD: fpu_exp.c,v 1.7 2013/04/20 04:38:51 isaki Exp $	*/
 
 /*
  * Copyright (c) 1995  Ken Nakata
@@ -32,10 +32,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu_exp.c,v 1.6 2013/04/20 03:06:19 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu_exp.c,v 1.7 2013/04/20 04:38:51 isaki Exp $");
 
 #include "fpu_emulate.h"
 
+/* The number of items to terminate the Taylor expansion */
+#define MAX_ITEMS	(2000)
+
 /*
  * fpu_exp.c: defines fpu_etox(), fpu_etoxm1(), fpu_tentox(), and fpu_twotox();
  */
@@ -64,7 +67,7 @@ fpu_etox_taylor(struct fpemu *fe)
 	CPYFPN(&res, r);
 
 	k = 2;
-	for (;; k++) {
+	for (; k < MAX_ITEMS; k++) {
 		/* s1 = s0 * x / k */
 		CPYFPN(&fe->fe_f1, &s0);
 		CPYFPN(&fe->fe_f2, &x);

Index: src/sys/arch/m68k/fpe/fpu_hyperb.c
diff -u src/sys/arch/m68k/fpe/fpu_hyperb.c:1.10 src/sys/arch/m68k/fpe/fpu_hyperb.c:1.11
--- src/sys/arch/m68k/fpe/fpu_hyperb.c:1.10	Fri Apr 19 14:05:12 2013
+++ src/sys/arch/m68k/fpe/fpu_hyperb.c	Sat Apr 20 04:38:51 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: fpu_hyperb.c,v 1.10 2013/04/19 14:05:12 isaki Exp $	*/
+/*	$NetBSD: fpu_hyperb.c,v 1.11 2013/04/20 04:38:51 isaki Exp $	*/
 
 /*
  * Copyright (c) 1995  Ken Nakata
@@ -57,10 +57,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu_hyperb.c,v 1.10 2013/04/19 14:05:12 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu_hyperb.c,v 1.11 2013/04/20 04:38:51 isaki Exp $");
 
 #include "fpu_emulate.h"
 
+/* The number of items to terminate the Taylor expansion */
+#define MAX_ITEMS	(2000)
+
 /*
  * fpu_hyperb.c: defines the following functions
  *
@@ -159,7 +162,7 @@ __fpu_sinhcosh_taylor(struct fpemu *fe, 
 
 	sign = 1;	/* sign := (-1)^n */
 
-	for (;;) {
+	for (; f < (2 * MAX_ITEMS); ) {
 		/* (f1 :=) s0 * x^2 */
 		CPYFPN(&fe->fe_f1, s0);
 		CPYFPN(&fe->fe_f2, &x2);

Reply via email to