aboutsummaryrefslogtreecommitdiff
path: root/src/resume.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2010-11-25 08:52:50 -0500
committerKevin O'Connor <kevin@koconnor.net>2010-11-25 08:52:50 -0500
commit4057f9847e94147aaa9799b92ba4561506333a57 (patch)
tree240e28b8ffa057b5716c3378e7623d23870e7033 /src/resume.c
parente2623fc6bce2a332d58fa00b00787432102fb089 (diff)
downloadseabios-hppa-4057f9847e94147aaa9799b92ba4561506333a57.zip
seabios-hppa-4057f9847e94147aaa9799b92ba4561506333a57.tar.gz
seabios-hppa-4057f9847e94147aaa9799b92ba4561506333a57.tar.bz2
Don't pass return address to transition(32,16,16big) on stack.
It's difficult to have a uniform view of the stack when transition modes, so pass the return address in a register. As a result, the transition functions only access memory via the %cs selector now.
Diffstat (limited to 'src/resume.c')
-rw-r--r--src/resume.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/resume.c b/src/resume.c
index 81ad1ac..2a743c9 100644
--- a/src/resume.c
+++ b/src/resume.c
@@ -40,7 +40,7 @@ handle_resume(u8 status)
asm volatile(
"movw %w1, %%ss\n"
"movl %0, %%esp\n"
- "pushl $s3_resume\n"
+ "movl $s3_resume, %%edx\n"
"jmp transition32\n"
: : "i"(BUILD_S3RESUME_STACK_ADDR), "r"(0)
);