X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmips%2Finsts.lisp;h=a6b7c7231461df6c2c804a520db62c7730d807d3;hb=85483d976cc2d779493985f77f39efefb2ea622b;hp=dec4636a0031a8baa1f9603a38c6bac4370e5880;hpb=40b6c8b10330df5f1a3cc17e309857a7465ebc3f;p=sbcl.git diff --git a/src/compiler/mips/insts.lisp b/src/compiler/mips/insts.lisp index dec4636..a6b7c72 100644 --- a/src/compiler/mips/insts.lisp +++ b/src/compiler/mips/insts.lisp @@ -222,10 +222,10 @@ (sb!disassem:define-instruction-format (break 32 :default-printer - '(:name :tab code (:unless (:constant 0) subcode))) + '(:name :tab code (:unless (:constant 0) ", " subcode))) (op :field (byte 6 26) :value special-op) (code :field (byte 10 16)) - (subcode :field (byte 10 6) :value 0) + (subcode :field (byte 10 6)) (funct :field (byte 6 0) :value #b001101)) (sb!disassem:define-instruction-format @@ -1062,35 +1062,35 @@ (defun break-control (chunk inst stream dstate) (declare (ignore inst)) (flet ((nt (x) (if stream (sb!disassem:note x dstate)))) - (case (break-code chunk dstate) - (#.halt-trap - (nt "Halt trap")) - (#.pending-interrupt-trap - (nt "Pending interrupt trap")) - (#.error-trap - (nt "Error trap") - (sb!disassem:handle-break-args #'snarf-error-junk stream dstate)) - (#.cerror-trap - (nt "Cerror trap") - (sb!disassem:handle-break-args #'snarf-error-junk stream dstate)) - (#.breakpoint-trap - (nt "Breakpoint trap")) - (#.fun-end-breakpoint-trap - (nt "Function end breakpoint trap")) - (#.after-breakpoint-trap - (nt "After breakpoint trap")) - (#.pseudo-atomic-trap - (nt "Pseudo atomic trap")) - (#.object-not-list-trap - (nt "Object not list trap")) - (#.object-not-instance-trap - (nt "Object not instance trap")) - ))) + (when (= (break-code chunk dstate) 0) + (case (break-subcode chunk dstate) + (#.halt-trap + (nt "Halt trap")) + (#.pending-interrupt-trap + (nt "Pending interrupt trap")) + (#.error-trap + (nt "Error trap") + (sb!disassem:handle-break-args #'snarf-error-junk stream dstate)) + (#.cerror-trap + (nt "Cerror trap") + (sb!disassem:handle-break-args #'snarf-error-junk stream dstate)) + (#.breakpoint-trap + (nt "Breakpoint trap")) + (#.fun-end-breakpoint-trap + (nt "Function end breakpoint trap")) + (#.after-breakpoint-trap + (nt "After breakpoint trap")) + (#.pseudo-atomic-trap + (nt "Pseudo atomic trap")) + (#.object-not-list-trap + (nt "Object not list trap")) + (#.object-not-instance-trap + (nt "Object not instance trap")))))) (define-instruction break (segment code &optional (subcode 0)) (:declare (type (unsigned-byte 10) code subcode)) (:printer break ((op special-op) (funct #b001101)) - '(:name :tab code (:unless (:constant 0) subcode)) + '(:name :tab code (:unless (:constant 0) ", " subcode)) :control #'break-control) :pinned (:cost 0)