aboutsummaryrefslogtreecommitdiffstats
path: root/src/romlayout.S
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2011-07-16 13:13:12 -0400
committerKevin O'Connor <kevin@koconnor.net>2011-07-16 13:15:27 -0400
commit533b6286cbc5a01e8aaafc2a8393a7d109f81958 (patch)
tree5d051ff2edeb3f62b982d5fcc4761bf9dd5448e7 /src/romlayout.S
parent77b8536e5c9908fbe99c88d01462a36a3deb05b1 (diff)
downloadseabios-533b6286cbc5a01e8aaafc2a8393a7d109f81958.tar.gz
Run option rom visible PMM code in 32bit mode instead of 16bit mode.
Use call32() to jump into handle_pmm(). This reduces the amount of 16bit code needed. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/romlayout.S')
-rw-r--r--src/romlayout.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/romlayout.S b/src/romlayout.S
index fbc5cb30..5983a4a7 100644
--- a/src/romlayout.S
+++ b/src/romlayout.S
@@ -264,8 +264,10 @@ entry_pmm:
pushw %ds
movw %ss, %cx // Move %ss to %ds
movw %cx, %ds
- leal 28(%esp), %eax // %eax points to start of args
- calll handle_pmm
+ movl $_cfunc32flat_handle_pmm, %eax // Setup: call32(handle_pmm, args, -1)
+ leal 28(%esp), %edx // %edx points to start of args
+ movl $-1, %ecx
+ calll call32
movw %ax, 12(%esp) // Modify %ax:%dx to return %eax
shrl $16, %eax
movw %ax, 4(%esp)