X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx_lowlevel.S;h=f0e793f2c00cd06d5b76a8b413760a4acd5a051d;hp=065154250fcb5f947f06c9137c95cc2ea9b093d6;hb=52a58bb7bdf06ca22ad6883f8095f8aa5ca4b8a4;hpb=f1d8183ae8c4390dfc74cb2780dd2058c569fc57 diff --git a/palacios/src/palacios/vmx_lowlevel.S b/palacios/src/palacios/vmx_lowlevel.S index 0651542..f0e793f 100644 --- a/palacios/src/palacios/vmx_lowlevel.S +++ b/palacios/src/palacios/vmx_lowlevel.S @@ -100,12 +100,14 @@ v3_vmx_exit_handler: POPA popf pushq %rdi + pushq %rsi call v3_handle_vmx_exit andq %rax, %rax jnz .Lvmm_failure v3_vmx_vmresume: + pop %rsi pop %rdi pushf PUSHA @@ -114,9 +116,9 @@ v3_vmx_vmresume: vmresume - addq $8, %rsp jz .Lfail_valid jc .Lfail_invalid + addq $8, %rsp jmp .Lreturn .align 8 @@ -150,24 +152,24 @@ v3_vmx_vmlaunch: .Lfail_valid: addq $8, %rsp POPA + popf movq $VMX_FAIL_VALID, %rax jmp .Lreturn .Lfail_invalid: addq $8, %rsp POPA + popf movq $VMX_FAIL_INVALID, %rax jmp .Lreturn .Lvmm_failure: - addq $8, %rsp - POPA + addq $16, %rsp movq $VMM_FAILURE, %rax jmp .Lreturn .Lreturn: sti - popf ret #else @@ -222,10 +224,10 @@ v3_vmx_vmlaunch: .globl v3_vmx_exit_handler v3_vmx_exit_handler: save_registers(4(%esp)) - addl $8, %rsp + addl $8, %esp POPA popf - pushl %rdi + pushl %edi call v3_handle_vmx_exit andl %eax, %eax