1.0.25.40: fix JOIN-THREAD
[sbcl.git] / src / assembly / x86-64 / assem-rtns.lisp
index c3f8d3c..dea6cbb 100644 (file)
@@ -54,6 +54,7 @@
   (inst lea edi (make-ea :qword :base ebx :disp (- n-word-bytes)))
   (inst rep)
   (inst movs :qword)
+  (inst cld)
 
   ;; Restore the count.
   (inst mov ecx edx)
   (inst sub esi (fixnumize 1))
   (inst rep)
   (inst movs :qword)
+  (inst cld)
 
   ;; Load the register arguments carefully.
   (loadw edx rbp-tn -1)
   (inst push ebx)
 
   ;; And jump into the function.
-    (inst jmp
-          (make-ea :byte :base eax
-                   :disp (- (* closure-fun-slot n-word-bytes)
-                            fun-pointer-lowtag)))
+  (inst jmp
+        (make-ea :byte :base eax
+                 :disp (- (* closure-fun-slot n-word-bytes)
+                          fun-pointer-lowtag)))
 
   ;; All the arguments fit in registers, so load them.
   REGISTER-ARGS
 
   LOOP
 
-  (let ((error (generate-error-code nil unseen-throw-tag-error target)))
+  (let ((error (generate-error-code nil 'unseen-throw-tag-error target)))
     (inst or catch catch)               ; check for NULL pointer
     (inst jmp :z error))
 
                           (:temp uwp unsigned-reg rsi-offset))
   (declare (ignore start count))
 
-  (let ((error (generate-error-code nil invalid-unwind-error)))
+  (let ((error (generate-error-code nil 'invalid-unwind-error)))
     (inst or block block)               ; check for NULL pointer
     (inst jmp :z error))