diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-05-16 23:57:08 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-05-16 23:57:08 -0400 |
commit | 7da210c73acec4c6196a3915dba084cd8f9f23f5 (patch) | |
tree | 101a16aed461bad4a2a5e4b29e1a393ba197dbc1 /src/entryfuncs.S | |
parent | 9f193b9883da62105238c9b5e199e28508748f09 (diff) | |
download | seabios-hppa-7da210c73acec4c6196a3915dba084cd8f9f23f5.zip seabios-hppa-7da210c73acec4c6196a3915dba084cd8f9f23f5.tar.gz seabios-hppa-7da210c73acec4c6196a3915dba084cd8f9f23f5.tar.bz2 |
Support %ebp register in 'struct bregs'.
Save/restore %ebp on irq entry.
Support saving and restoring %ebp on call16.
Enable display of %ebp in register dumps.
Diffstat (limited to 'src/entryfuncs.S')
-rw-r--r-- | src/entryfuncs.S | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/entryfuncs.S b/src/entryfuncs.S index 96a2fcf..65218e3 100644 --- a/src/entryfuncs.S +++ b/src/entryfuncs.S @@ -67,6 +67,7 @@ pushl %ecx pushl %edx pushl %ebx + pushl %ebp pushl %esi pushl %edi pushw %es @@ -82,6 +83,7 @@ popw %es popl %edi popl %esi + popl %ebp popl %ebx popl %edx popl %ecx @@ -95,6 +97,7 @@ pushl %ecx pushl %edx pushl %ebx + pushl %ebp pushl %esi pushl %edi pushw %es @@ -103,8 +106,8 @@ movw %cx, %ds movl %esp, %ebx // Backup %esp, then zero high bits movzwl %sp, %esp - movl 24(%esp), %ecx // Get calling function - movl %eax, 24(%esp) // Save %eax + movl 28(%esp), %ecx // Get calling function + movl %eax, 28(%esp) // Save %eax movl %esp, %eax // First arg is pointer to struct bregs calll *%ecx movl %ebx, %esp // Restore %esp (including high bits) @@ -112,6 +115,7 @@ popw %es popl %edi popl %esi + popl %ebp popl %ebx popl %edx popl %ecx @@ -126,6 +130,7 @@ pushl %ecx pushl %edx pushl %ebx + pushl %ebp pushl %esi pushl %edi pushw %es @@ -138,6 +143,7 @@ popw %es popl %edi popl %esi + popl %ebp popl %ebx popl %edx popl %ecx |