diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2010-11-25 08:52:50 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2010-11-25 08:52:50 -0500 |
commit | 4057f9847e94147aaa9799b92ba4561506333a57 (patch) | |
tree | 240e28b8ffa057b5716c3378e7623d23870e7033 /src/resume.c | |
parent | e2623fc6bce2a332d58fa00b00787432102fb089 (diff) | |
download | seabios-4057f9847e94147aaa9799b92ba4561506333a57.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/resume.c b/src/resume.c index 81ad1ac7..2a743c94 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) ); |