diff --git a/assembly/sparc/arith.lisp b/assembly/sparc/arith.lisp
index 6ad697f9cf617e87f2420b847d9f8468ca8e5731..cd2f0d6f030f13df6b1ef7966694da793ca27fdd 100644
--- a/assembly/sparc/arith.lisp
+++ b/assembly/sparc/arith.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/sparc/arith.lisp,v 1.4 1990/11/30 11:44:11 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/sparc/arith.lisp,v 1.5 1990/11/30 14:02:15 wlott Exp $
 ;;;
 ;;; Stuff to handle simple cases for generic arithmetic.
 ;;;
@@ -238,6 +238,7 @@
 
 #+assembler
 (defun emit-divide-loop (divisor rem quo tagged)
+  (inst li quo 0)
   (labels
       ((do-loop (depth)
 	 (cond
@@ -275,7 +276,6 @@
 			  (:res rem any-reg nl0-offset))
 
   (move rem dividend)
-  (inst li quo 0)
   (emit-divide-loop divisor rem quo t))
 
 
@@ -307,6 +307,7 @@
     (inst ba :lt label)
     (inst neg divisor)
     (emit-label label))
+  (move rem dividend)
   (emit-divide-loop divisor rem quo t)
   (let ((label (gen-label)))
     ;; If the quo-sign is negative, we need to negate quo.
@@ -351,6 +352,7 @@
     (inst ba :lt label)
     (inst neg divisor)
     (emit-label label))
+  (move rem dividend)
   (emit-divide-loop divisor rem quo nil)
   (let ((label (gen-label)))
     ;; If the quo-sign is negative, we need to negate quo.