summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386/btx
diff options
context:
space:
mode:
authorrnordier <rnordier@FreeBSD.org>1998-11-01 13:52:52 +0000
committerrnordier <rnordier@FreeBSD.org>1998-11-01 13:52:52 +0000
commit19bbd56b9709717ba7012f44c2f4e9c61afc8159 (patch)
tree5abd6d2f487f0b6b08fd73066e22501828e70e76 /sys/boot/i386/btx
parent038974f958f28a88e6e0be42bb3a806797e2a1b9 (diff)
downloadFreeBSD-src-19bbd56b9709717ba7012f44c2f4e9c61afc8159.zip
FreeBSD-src-19bbd56b9709717ba7012f44c2f4e9c61afc8159.tar.gz
Ignore, rather than emulate, an i386 'hlt' instruction (though for
most practical purposes, this should be indistinguishable from a more strictly correct approach). Feedback and testing: msmith
Diffstat (limited to 'sys/boot/i386/btx')
-rw-r--r--sys/boot/i386/btx/btx/btx.S22
-rw-r--r--sys/boot/i386/btx/btx/btx.s22
2 files changed, 22 insertions, 22 deletions
diff --git a/sys/boot/i386/btx/btx/btx.S b/sys/boot/i386/btx/btx/btx.S
index d94fa2c..d7fc5e3 100644
--- a/sys/boot/i386/btx/btx/btx.S
+++ b/sys/boot/i386/btx/btx/btx.S
@@ -13,7 +13,7 @@
# purpose.
#
-# $Id: btx.s,v 1.5 1998/10/03 18:05:12 rnordier Exp $
+# $Id: btx.s,v 1.6 1998/10/04 21:14:33 rnordier Exp $
#
# Memory layout.
@@ -459,7 +459,7 @@ v86mon.1: lodsb # Get opcode
v86mon.2: cmpb $0xf4,%al # HLT?
jne v86mon.3 # No
cmpl $inthlt+0x1,%esi # Is inthlt?
- jne v86mon.4 # No
+ jne v86mon.6 # No
jmp intrtn # Return to user mode
v86mon.3: cmpb $0xfa,%al # CLI?
je v86cli # Yes
@@ -479,13 +479,13 @@ v86mon.3: cmpb $0xfa,%al # CLI?
cmpb $0xcf,%al # IRET/IRETD?
je v86iret # Yes
popl %ebx # Restore
-v86mon.4: popa # Restore
+ popa # Restore
jmp except # Handle exception
-v86mon.5: movl %edx,0x30(%ebp) # Save V86 flags
-v86mon.6: popl %edx # V86 SS adjustment
+v86mon.4: movl %edx,0x30(%ebp) # Save V86 flags
+v86mon.5: popl %edx # V86 SS adjustment
subl %edx,%ebx # Save V86
movl %ebx,0x34(%ebp) # SP
-v86mon.7: subl %edi,%esi # From linear
+v86mon.6: subl %edi,%esi # From linear
movl %esi,0x28(%ebp) # Save V86 IP
popa # Restore
leal 0x8(%esp,1),%esp # Discard int no, error
@@ -494,12 +494,12 @@ v86mon.7: subl %edi,%esi # From linear
# Emulate CLI.
#
v86cli: andb $~0x2,0x31(%ebp) # Clear IF
- jmp v86mon.7 # Finish up
+ jmp v86mon.6 # Finish up
#
# Emulate STI.
#
v86sti: orb $0x2,0x31(%ebp) # Set IF
- jmp v86mon.7 # Finish up
+ jmp v86mon.6 # Finish up
#
# Emulate PUSHF/PUSHFD.
#
@@ -508,7 +508,7 @@ v86pushf: subl %ecx,%ebx # Adjust SP
je v86pushf.1 # Yes
o16 # 16-bit
v86pushf.1: movl %edx,(%ebx) # Save flags
- jmp v86mon.6 # Finish up
+ jmp v86mon.5 # Finish up
#
# Emulate IRET/IRETD.
#
@@ -529,7 +529,7 @@ v86popf.1: movl (%ebx),%eax # Load flags
andl $V86_FLG,%eax # Merge
andl $~V86_FLG,%edx # the
orl %eax,%edx # flags
- jmp v86mon.5 # Finish up
+ jmp v86mon.4 # Finish up
#
# Emulate INT imm8.
#
@@ -546,7 +546,7 @@ v86intn: lodsb # Get int no
movl %edi,0x2c(%ebp) # Save CS
xorl %edi,%edi # No ESI adjustment
andb $~0x3,%dh # Clear IF and TF
- jmp v86mon.5 # Finish up
+ jmp v86mon.4 # Finish up
#
# Hardware interrupt jump table.
#
diff --git a/sys/boot/i386/btx/btx/btx.s b/sys/boot/i386/btx/btx/btx.s
index d94fa2c..d7fc5e3 100644
--- a/sys/boot/i386/btx/btx/btx.s
+++ b/sys/boot/i386/btx/btx/btx.s
@@ -13,7 +13,7 @@
# purpose.
#
-# $Id: btx.s,v 1.5 1998/10/03 18:05:12 rnordier Exp $
+# $Id: btx.s,v 1.6 1998/10/04 21:14:33 rnordier Exp $
#
# Memory layout.
@@ -459,7 +459,7 @@ v86mon.1: lodsb # Get opcode
v86mon.2: cmpb $0xf4,%al # HLT?
jne v86mon.3 # No
cmpl $inthlt+0x1,%esi # Is inthlt?
- jne v86mon.4 # No
+ jne v86mon.6 # No
jmp intrtn # Return to user mode
v86mon.3: cmpb $0xfa,%al # CLI?
je v86cli # Yes
@@ -479,13 +479,13 @@ v86mon.3: cmpb $0xfa,%al # CLI?
cmpb $0xcf,%al # IRET/IRETD?
je v86iret # Yes
popl %ebx # Restore
-v86mon.4: popa # Restore
+ popa # Restore
jmp except # Handle exception
-v86mon.5: movl %edx,0x30(%ebp) # Save V86 flags
-v86mon.6: popl %edx # V86 SS adjustment
+v86mon.4: movl %edx,0x30(%ebp) # Save V86 flags
+v86mon.5: popl %edx # V86 SS adjustment
subl %edx,%ebx # Save V86
movl %ebx,0x34(%ebp) # SP
-v86mon.7: subl %edi,%esi # From linear
+v86mon.6: subl %edi,%esi # From linear
movl %esi,0x28(%ebp) # Save V86 IP
popa # Restore
leal 0x8(%esp,1),%esp # Discard int no, error
@@ -494,12 +494,12 @@ v86mon.7: subl %edi,%esi # From linear
# Emulate CLI.
#
v86cli: andb $~0x2,0x31(%ebp) # Clear IF
- jmp v86mon.7 # Finish up
+ jmp v86mon.6 # Finish up
#
# Emulate STI.
#
v86sti: orb $0x2,0x31(%ebp) # Set IF
- jmp v86mon.7 # Finish up
+ jmp v86mon.6 # Finish up
#
# Emulate PUSHF/PUSHFD.
#
@@ -508,7 +508,7 @@ v86pushf: subl %ecx,%ebx # Adjust SP
je v86pushf.1 # Yes
o16 # 16-bit
v86pushf.1: movl %edx,(%ebx) # Save flags
- jmp v86mon.6 # Finish up
+ jmp v86mon.5 # Finish up
#
# Emulate IRET/IRETD.
#
@@ -529,7 +529,7 @@ v86popf.1: movl (%ebx),%eax # Load flags
andl $V86_FLG,%eax # Merge
andl $~V86_FLG,%edx # the
orl %eax,%edx # flags
- jmp v86mon.5 # Finish up
+ jmp v86mon.4 # Finish up
#
# Emulate INT imm8.
#
@@ -546,7 +546,7 @@ v86intn: lodsb # Get int no
movl %edi,0x2c(%ebp) # Save CS
xorl %edi,%edi # No ESI adjustment
andb $~0x3,%dh # Clear IF and TF
- jmp v86mon.5 # Finish up
+ jmp v86mon.4 # Finish up
#
# Hardware interrupt jump table.
#
OpenPOWER on IntegriCloud