x86: Unwind-annotate thunk_32.S
Signed-off-by: Jan Beulich <jbeulich@suse.com> Link: http://lkml.kernel.org/r/542291CA0200007800038085@mail.emea.novell.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
5f1d919a8c
commit
f74954f01e
1 changed files with 15 additions and 6 deletions
|
@ -6,14 +6,19 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <asm/asm.h>
|
#include <asm/asm.h>
|
||||||
|
#include <asm/dwarf2.h>
|
||||||
|
|
||||||
/* put return address in eax (arg1) */
|
/* put return address in eax (arg1) */
|
||||||
.macro THUNK name, func, put_ret_addr_in_eax=0
|
.macro THUNK name, func, put_ret_addr_in_eax=0
|
||||||
.globl \name
|
.globl \name
|
||||||
\name:
|
\name:
|
||||||
pushl %eax
|
CFI_STARTPROC
|
||||||
pushl %ecx
|
pushl_cfi %eax
|
||||||
pushl %edx
|
CFI_REL_OFFSET eax, 0
|
||||||
|
pushl_cfi %ecx
|
||||||
|
CFI_REL_OFFSET ecx, 0
|
||||||
|
pushl_cfi %edx
|
||||||
|
CFI_REL_OFFSET edx, 0
|
||||||
|
|
||||||
.if \put_ret_addr_in_eax
|
.if \put_ret_addr_in_eax
|
||||||
/* Place EIP in the arg1 */
|
/* Place EIP in the arg1 */
|
||||||
|
@ -21,10 +26,14 @@
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
call \func
|
call \func
|
||||||
popl %edx
|
popl_cfi %edx
|
||||||
popl %ecx
|
CFI_RESTORE edx
|
||||||
popl %eax
|
popl_cfi %ecx
|
||||||
|
CFI_RESTORE ecx
|
||||||
|
popl_cfi %eax
|
||||||
|
CFI_RESTORE eax
|
||||||
ret
|
ret
|
||||||
|
CFI_ENDPROC
|
||||||
_ASM_NOKPROBE(\name)
|
_ASM_NOKPROBE(\name)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue