summaryrefslogtreecommitdiff
path: root/mbr
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-09-08 17:30:55 -0700
committerH. Peter Anvin <hpa@zytor.com>2008-09-08 17:30:55 -0700
commit6879e4565b2ed27de10e7a22bba568503012ef1a (patch)
tree886652e829918739e2d293d2b11d16acf3579760 /mbr
parent6d5d88b94bccafc2e8f28dff016172103f3814ed (diff)
downloadsyslinux-6879e4565b2ed27de10e7a22bba568503012ef1a.tar.gz
mbr, gptmbr, isohdpfx: don't lose the carry flag
Using addw to restore the stack pointer clobbers CF. Use leaw instead, even though this relies on the BIOS not clobbering %si. Worst case we can add a mov %sp, %si or similar. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'mbr')
-rw-r--r--mbr/gptmbr.S2
-rw-r--r--mbr/isohdpfx.S2
-rw-r--r--mbr/mbr.S2
3 files changed, 3 insertions, 3 deletions
diff --git a/mbr/gptmbr.S b/mbr/gptmbr.S
index 77408b75..385afe74 100644
--- a/mbr/gptmbr.S
+++ b/mbr/gptmbr.S
@@ -257,7 +257,7 @@ read_sector_cbios:
read_common:
movb (%bp), %dl /* driveno */
int $0x13
- addw $16, %sp /* Drop DAPA */
+ leaw 16(%si), %sp /* Drop DAPA */
popal
jc disk_error
addb $2, %bh /* bx += 512: point to the next buffer */
diff --git a/mbr/isohdpfx.S b/mbr/isohdpfx.S
index ece37a76..9a97a5ee 100644
--- a/mbr/isohdpfx.S
+++ b/mbr/isohdpfx.S
@@ -182,7 +182,7 @@ read_sector_cbios:
read_common:
movb (driveno), %dl
int $0x13
- addw $16, %sp /* Drop DAPA */
+ leaw 16(%si), %sp /* Drop DAPA */
popal
ret
diff --git a/mbr/mbr.S b/mbr/mbr.S
index e0d42d6e..722d90db 100644
--- a/mbr/mbr.S
+++ b/mbr/mbr.S
@@ -144,7 +144,7 @@ read_sector_cbios:
read_common:
movb (driveno), %dl
int $0x13
- addw $16, %sp /* Drop DAPA */
+ leaw 16(%si), %sp /* Drop DAPA */
popal
ret