Skip to content
Snippets Groups Projects
Commit d92dcc7d authored by wlott's avatar wlott
Browse files

Added checking for division by zero.

parent cc56d4ff
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;;
(ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/sparc/arith.lisp,v 1.11 1992/12/17 09:45:50 wlott Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/sparc/arith.lisp,v 1.12 1993/06/08 10:58:54 wlott Exp $")
;;;
;;; **********************************************************************
;;;
......@@ -266,6 +266,11 @@
(:res quo any-reg nl2-offset)
(:res rem any-reg nl0-offset))
(let ((error (generate-error-code nil division-by-zero-error
dividend divisor)))
(inst cmp divisor)
(inst b :eq error))
(move rem dividend)
(emit-divide-loop divisor rem quo t))
......@@ -286,6 +291,11 @@
(:temp quo-sign any-reg nl5-offset)
(:temp rem-sign any-reg nargs-offset))
(let ((error (generate-error-code nil division-by-zero-error
dividend divisor)))
(inst cmp divisor)
(inst b :eq error))
(inst xor quo-sign dividend divisor)
(inst move rem-sign dividend)
(let ((label (gen-label)))
......@@ -331,6 +341,11 @@
(:temp quo-sign signed-reg nl5-offset)
(:temp rem-sign signed-reg nargs-offset))
(let ((error (generate-error-code nil division-by-zero-error
dividend divisor)))
(inst cmp divisor)
(inst b :eq error))
(inst xor quo-sign dividend divisor)
(inst move rem-sign dividend)
(let ((label (gen-label)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment