(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))
- (#.object-not-list-trap
- (nt "Object not list trap"))
(#.breakpoint-trap
(nt "Breakpoint trap"))
- (#.pending-interrupt-trap
- (nt "Pending interrupt trap"))
- (#.halt-trap
- (nt "Halt 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"))
)))
`((let ((vop ,vop))
(when vop
(note-this-location vop :internal-error)))
- (inst break ,kind)
+ (inst break 0 ,kind)
(with-adjustable-vector (,vector)
(write-var-integer (error-number-or-lose ',code) ,vector)
,@(mapcar #'(lambda (tn)
(let ((label (gen-label)))
(inst bgez ,flag-tn label)
(inst addu alloc-tn (1- ,extra))
- (inst break 16)
+ (inst break 0 16)
(emit-label label)))))
\f
;;;; memory accessor vop generators
(:policy :fast-safe)
(:translate sb!unix::receive-pending-interrupt)
(:generator 1
- (inst break pending-interrupt-trap)))
+ (inst break 0 pending-interrupt-trap)))
(define-vop (halt)
(:generator 1
- (inst break halt-trap)))
+ (inst break 0 halt-trap)))
\f
;;;; Dynamic vop count collection support
ptr++;
result = (unsigned long)insn;
- *ptr = (trap_Breakpoint << 16) | 0xd;
+ *ptr = (trap_Breakpoint << 6) | 0xd;
os_flush_icache((os_vm_address_t)ptr, INSN_LEN);
return result;
sigtrap_handler(int signal, siginfo_t *info, void *void_context)
{
os_context_t *context = arch_os_get_context(&void_context);
- unsigned int code = (os_context_insn(context) >> 16) & 0x1f;
+ unsigned int code = (os_context_insn(context) >> 6) & 0xfffff;
switch (code) {
case trap_Halt:
.set noreorder
bgez reg_NL4, 1f
subu reg_ALLOC, 1
- break 0x10
+ break 0x0, 0x10
1: .set reorder
/* Pass in args */
.set noreorder
bgez reg_NL4, 1f
subu reg_ALLOC, 1
- break 0x10
+ break 0x0, 0x10
1: .set reorder
/* Pass one return value back to C land. For a 64bit value, we may
.set noreorder
bgez reg_NL4, 1f
subu reg_ALLOC, 1
- break 0x10
+ break 0x0, 0x10
1: .set reorder
/* Into C land we go. */
.set noreorder
bgez reg_NL4, 1f
subu reg_ALLOC, 1
- break 0x10
+ break 0x0, 0x10
1: .set reorder
/* Reset the lisp stack. */
addiu reg_CODE, - 24 + FUN_POINTER_LOWTAG
.set noreorder
b 1f
- break trap_Cerror
+ break 0x0, trap_Cerror
/* Error data length. */
.byte 4
/* Error number. */
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.4.69"
+"0.9.4.70"