diff options
author | Jan Beulich <JBeulich@suse.com> | 2014-09-24 09:40:14 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-10-08 10:05:49 +0200 |
commit | 5f1d919a8ca15f450c749227bc5e2e18f3cbfdb4 (patch) | |
tree | 00c028d32d6c9f97740271ee5645607ce6ae7b6d /arch/x86/lib | |
parent | x86: Improve cmpxchg16b_emu.S (diff) | |
download | linux-5f1d919a8ca15f450c749227bc5e2e18f3cbfdb4.tar.xz linux-5f1d919a8ca15f450c749227bc5e2e18f3cbfdb4.zip |
x86: Improve cmpxchg8b_emu.S
- don't include unneeded headers
- drop redundant entry point label
- complete unwind annotations
- use .L prefix on local labels to not clutter the symbol table
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/5422917E0200007800038081@mail.emea.novell.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/lib')
-rw-r--r-- | arch/x86/lib/cmpxchg8b_emu.S | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/arch/x86/lib/cmpxchg8b_emu.S b/arch/x86/lib/cmpxchg8b_emu.S index 828cb710dec2..b4807fce5177 100644 --- a/arch/x86/lib/cmpxchg8b_emu.S +++ b/arch/x86/lib/cmpxchg8b_emu.S @@ -7,11 +7,8 @@ */ #include <linux/linkage.h> -#include <asm/alternative-asm.h> -#include <asm/frame.h> #include <asm/dwarf2.h> - .text /* @@ -30,27 +27,28 @@ CFI_STARTPROC # set the whole ZF thing (caller will just compare # eax:edx with the expected value) # -cmpxchg8b_emu: - pushfl + pushfl_cfi cli cmpl (%esi), %eax - jne not_same + jne .Lnot_same cmpl 4(%esi), %edx - jne half_same + jne .Lhalf_same movl %ebx, (%esi) movl %ecx, 4(%esi) - popfl + CFI_REMEMBER_STATE + popfl_cfi ret - not_same: + CFI_RESTORE_STATE +.Lnot_same: movl (%esi), %eax - half_same: +.Lhalf_same: movl 4(%esi), %edx - popfl + popfl_cfi ret CFI_ENDPROC |