summaryrefslogtreecommitdiffstats
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
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.
-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