summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-11-03 21:42:25 +0000
committerjhb <jhb@FreeBSD.org>2001-11-03 21:42:25 +0000
commit008cbb2ddee52fd6e070d16340a547b330412183 (patch)
tree1ae9464a4be4c12eb850224b6e03fca899753ef5 /sys/boot
parent6bee569517374aa99e8f938044c8335356c64e8c (diff)
downloadFreeBSD-src-008cbb2ddee52fd6e070d16340a547b330412183.zip
FreeBSD-src-008cbb2ddee52fd6e070d16340a547b330412183.tar.gz
Add support for trace traps by returning from them just as for breakpoint
traps rather than halting. Ideally, we should avoid printing the 'BTX halted' message for debug register dumps.
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/btx/btx/btx.S6
-rw-r--r--sys/boot/i386/btx/btx/btx.s6
2 files changed, 10 insertions, 2 deletions
diff --git a/sys/boot/i386/btx/btx/btx.S b/sys/boot/i386/btx/btx/btx.S
index 6203ed5..3269d18 100644
--- a/sys/boot/i386/btx/btx/btx.S
+++ b/sys/boot/i386/btx/btx/btx.S
@@ -408,7 +408,11 @@ except.2: push $SEL_SDATA # Set up
popl %ds # saved
cmpb $0x3,(%esp,1) # Breakpoint?
je except.3 # Yes
- jmp exit # Exit
+ cmpb $0x1,(%esp,1) # Debug?
+ jne except.2a # No
+ testl $0x100,0x10(%esp,1) # Trap flag set?
+ jnz except.3 # Yes
+except.2a: jmp exit # Exit
except.3: leal 0x8(%esp,1),%esp # Discard err, int no
iret # From interrupt
#
diff --git a/sys/boot/i386/btx/btx/btx.s b/sys/boot/i386/btx/btx/btx.s
index 6203ed5..3269d18 100644
--- a/sys/boot/i386/btx/btx/btx.s
+++ b/sys/boot/i386/btx/btx/btx.s
@@ -408,7 +408,11 @@ except.2: push $SEL_SDATA # Set up
popl %ds # saved
cmpb $0x3,(%esp,1) # Breakpoint?
je except.3 # Yes
- jmp exit # Exit
+ cmpb $0x1,(%esp,1) # Debug?
+ jne except.2a # No
+ testl $0x100,0x10(%esp,1) # Trap flag set?
+ jnz except.3 # Yes
+except.2a: jmp exit # Exit
except.3: leal 0x8(%esp,1),%esp # Discard err, int no
iret # From interrupt
#
OpenPOWER on IntegriCloud