Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933261AbbFJMJn (ORCPT ); Wed, 10 Jun 2015 08:09:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55396 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751318AbbFJMHF (ORCPT ); Wed, 10 Jun 2015 08:07:05 -0400 From: Josh Poimboeuf To: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Cc: Michal Marek , Peter Zijlstra , Andy Lutomirski , Borislav Petkov , Linus Torvalds , Andi Kleen , x86@kernel.org, live-patching@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 01/10] x86/asm: Add FP_SAVE/RESTORE frame pointer macros Date: Wed, 10 Jun 2015 07:06:09 -0500 Message-Id: <6b0f0a275e240eb4f6889eea8863875041f05bba.1433937132.git.jpoimboe@redhat.com> In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1196 Lines: 47 Add the FP_SAVE and FP_RESTORE asm macros, which can be used to save and restore the frame pointer. Signed-off-by: Josh Poimboeuf --- arch/x86/include/asm/func.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 arch/x86/include/asm/func.h diff --git a/arch/x86/include/asm/func.h b/arch/x86/include/asm/func.h new file mode 100644 index 0000000..4d62782 --- /dev/null +++ b/arch/x86/include/asm/func.h @@ -0,0 +1,24 @@ +#ifndef _ASM_X86_FUNC_H +#define _ASM_X86_FUNC_H + +#include +#include + +/* + * These are frame pointer save and restore macros. They should be used by + * every callable non-leaf asm function. + */ +.macro FP_SAVE name + .if CONFIG_FRAME_POINTER + push %_ASM_BP + _ASM_MOV %_ASM_SP, %_ASM_BP + .endif +.endm + +.macro FP_RESTORE name + .if CONFIG_FRAME_POINTER + pop %_ASM_BP + .endif +.endm + +#endif /* _ASM_X86_FUNC_H */ -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/