summaryrefslogtreecommitdiffstats
path: root/arch/xtensa/include/asm/futex.h
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2018-12-05 12:48:19 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2018-12-05 12:53:07 -0800
commit037602705109ec2ab96340bea93ad87daa3ac046 (patch)
tree616c10e2e60b8a6bfbe388366ea1c1c3f170dafb /arch/xtensa/include/asm/futex.h
parentf37598be4e3896359e87c824be57ddddc280cc3f (diff)
downloadlinux-037602705109ec2ab96340bea93ad87daa3ac046.tar.bz2
xtensa: don't use l32r opcode directly
xtensa assembler is capable of representing register loads with either movi + addmi, l32r or const16, depending on the core configuration. Don't use '.literal' and 'l32r' directly in the code, use 'movi' and let the assembler relax them. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm/futex.h')
-rw-r--r--arch/xtensa/include/asm/futex.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/xtensa/include/asm/futex.h b/arch/xtensa/include/asm/futex.h
index 5bfbc1c401d4..fd0eef6b8e7c 100644
--- a/arch/xtensa/include/asm/futex.h
+++ b/arch/xtensa/include/asm/futex.h
@@ -32,8 +32,8 @@
"3:\n" \
" .section .fixup,\"ax\"\n" \
" .align 4\n" \
- "4: .long 3b\n" \
- "5: l32r %0, 4b\n" \
+ " .literal_position\n" \
+ "5: movi %0, 3b\n" \
" movi %1, %3\n" \
" jx %0\n" \
" .previous\n" \
@@ -108,8 +108,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
"2:\n"
" .section .fixup,\"ax\"\n"
" .align 4\n"
- "3: .long 2b\n"
- "4: l32r %1, 3b\n"
+ " .literal_position\n"
+ "4: movi %1, 2b\n"
" movi %0, %7\n"
" jx %1\n"
" .previous\n"