X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx_lowlevel.S;h=78f2d848a592b04020f82a73ea96b3cede3c89cb;hb=a5d2c00cc461b4a60a1360a2a0bba55cef467bab;hp=757d835081b5333b147eae9c1f63feae0610ddba;hpb=167669d14b4a2564a298fbb3a1bf626d5f9f4033;p=palacios.git diff --git a/palacios/src/palacios/vmx_lowlevel.S b/palacios/src/palacios/vmx_lowlevel.S index 757d835..78f2d84 100644 --- a/palacios/src/palacios/vmx_lowlevel.S +++ b/palacios/src/palacios/vmx_lowlevel.S @@ -268,10 +268,14 @@ vmx_launch_ret: #define PRE_LAUNCH(return_target) \ + push %ebp; \ + movl %esp, %ebp; \ pushf; \ PUSHA; \ - pushl %edi; \ - pushl %edx; \ + \ + movl 8(%ebp), %edi; \ + movl 12(%ebp), %esi; \ + movl 16(%ebp), %edx; \ \ movl %esp, %eax; \ movl $VMCS_HOST_RSP, %ebx; \ @@ -289,6 +293,8 @@ vmx_launch_ret: restore_registers(%edi); +// 32 bit GCC passes arguments via stack + .align 4 .globl v3_vmx_resume v3_vmx_resume: @@ -346,6 +352,7 @@ vmx_launch_ret: jmp .Lreturn .Lreturn: + pop %ebp; ret #endif