aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2013-12-09 20:30:30 -0500
committerKevin O'Connor <kevin@koconnor.net>2013-12-09 20:39:16 -0500
commitfeb0284e3737631a19e3f7a1c1097b8c6b40fb2f (patch)
tree13ea5d1d5ee55b6e434d92a26654c4177dd7c156
parent41c6061d36628d1f920616ed5662e0e697278587 (diff)
downloadseabios-feb0284e3737631a19e3f7a1c1097b8c6b40fb2f.zip
seabios-feb0284e3737631a19e3f7a1c1097b8c6b40fb2f.tar.gz
seabios-feb0284e3737631a19e3f7a1c1097b8c6b40fb2f.tar.bz2
Small improvements to irqentry_extrastack assembler.
Simplify the entry assembler slightly. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/romlayout.S8
-rw-r--r--vgasrc/vgaentry.S3
2 files changed, 3 insertions, 8 deletions
diff --git a/src/romlayout.S b/src/romlayout.S
index 9de91a2..f6b7979 100644
--- a/src/romlayout.S
+++ b/src/romlayout.S
@@ -486,7 +486,6 @@ irqentry_extrastack:
popl %ecx
movl %edx, 12(%eax)
movl %esp, 16(%eax)
- movzwl %sp, %esp
movw %ss, 20(%eax)
movw %ds, %dx // Setup %ss/%esp and call function
@@ -528,12 +527,9 @@ irqentry_arg_extrastack:
popl %ecx
movw %es, BREGS_es(%eax)
movl %esp, BREGS_size+0(%eax)
- movzwl %sp, %esp
movw %ss, BREGS_size+4(%eax)
- movl (%esp), %edx
- movl %edx, BREGS_code(%eax)
- movw 4(%esp), %dx
- movw %dx, BREGS_flags(%eax)
+ popl BREGS_code(%eax)
+ popw BREGS_flags(%eax)
movw %ds, %dx // Setup %ss/%esp and call function
movw %dx, %ss
diff --git a/vgasrc/vgaentry.S b/vgasrc/vgaentry.S
index a5622b8..9854448 100644
--- a/vgasrc/vgaentry.S
+++ b/vgasrc/vgaentry.S
@@ -84,8 +84,7 @@ entry_10_extrastack:
cld
pushw %ds // Set %ds:%eax to space on ExtraStack
pushl %eax
- movzwl %cs:ExtraStackSeg, %eax
- movl %eax, %ds
+ movw %cs:ExtraStackSeg, %ds
movl $(CONFIG_VGA_EXTRA_STACK_SIZE-BREGS_size-8), %eax
popl BREGS_eax(%eax) // Backup registers
popw BREGS_ds(%eax)