From 079b98b63a43b48c15677ff92cd784b59ea4b6f1 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 16 Feb 2016 23:37:46 +0000 Subject: [PATCH] [librm] Discard argument as part of return from real_call() Signed-off-by: Michael Brown --- src/arch/x86/include/librm.h | 1 - src/arch/x86/transitions/librm.S | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/arch/x86/include/librm.h b/src/arch/x86/include/librm.h index 44d931ea0..379e085a2 100644 --- a/src/arch/x86/include/librm.h +++ b/src/arch/x86/include/librm.h @@ -192,7 +192,6 @@ extern void remove_user_from_rm_stack ( userptr_t data, size_t size ); #define REAL_CODE( asm_code_str ) \ "push $1f\n\t" \ "call real_call\n\t" \ - "addl $4, %%esp\n\t" \ TEXT16_CODE ( "\n1:\n\t" \ asm_code_str \ "\n\t" \ diff --git a/src/arch/x86/transitions/librm.S b/src/arch/x86/transitions/librm.S index bf79637a8..a3b78c784 100644 --- a/src/arch/x86/transitions/librm.S +++ b/src/arch/x86/transitions/librm.S @@ -518,7 +518,7 @@ rc_rmode: rc_pmode: /* Restore registers and return */ popal - ret + ret $4 /* Function vector, used because "call xx(%sp)" is not a valid