Reorder guest saved regs to match hyperall order
Move eax next to ebx/ecx/edx in struct lguest_regs on i386, so they will be located together and allow it to map directly to a struct hcall_ring entry (which will be renamed struct hcall_args as in a subsequent patch). This is in preparation for making the code hcall code architecture independent. Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
625efab1cd
commit
4614a3a3b6
2 changed files with 3 additions and 4 deletions
|
@ -133,6 +133,7 @@ ENTRY(switch_to_guest)
|
|||
// The Guest's register page has been mapped
|
||||
// Writable onto our %esp (stack) --
|
||||
// We can simply pop off all Guest regs.
|
||||
popl %eax
|
||||
popl %ebx
|
||||
popl %ecx
|
||||
popl %edx
|
||||
|
@ -140,7 +141,6 @@ ENTRY(switch_to_guest)
|
|||
popl %edi
|
||||
popl %ebp
|
||||
popl %gs
|
||||
popl %eax
|
||||
popl %fs
|
||||
popl %ds
|
||||
popl %es
|
||||
|
@ -168,7 +168,6 @@ ENTRY(switch_to_guest)
|
|||
pushl %es; \
|
||||
pushl %ds; \
|
||||
pushl %fs; \
|
||||
pushl %eax; \
|
||||
pushl %gs; \
|
||||
pushl %ebp; \
|
||||
pushl %edi; \
|
||||
|
@ -176,6 +175,7 @@ ENTRY(switch_to_guest)
|
|||
pushl %edx; \
|
||||
pushl %ecx; \
|
||||
pushl %ebx; \
|
||||
pushl %eax; \
|
||||
/* Our stack and our code are using segments \
|
||||
* Set in the TSS and IDT \
|
||||
* Yet if we were to touch data we'd use \
|
||||
|
|
|
@ -26,10 +26,9 @@ extern unsigned long default_idt_entries[];
|
|||
struct lguest_regs
|
||||
{
|
||||
/* Manually saved part. */
|
||||
unsigned long ebx, ecx, edx;
|
||||
unsigned long eax, ebx, ecx, edx;
|
||||
unsigned long esi, edi, ebp;
|
||||
unsigned long gs;
|
||||
unsigned long eax;
|
||||
unsigned long fs, ds, es;
|
||||
unsigned long trapnum, errcode;
|
||||
/* Trap pushed part */
|
||||
|
|
Loading…
Reference in a new issue