提交 d3f79584 编写于 作者: R Russell King

ARM: cleanup undefined instruction entry code

We don't need to keep reloading the thread into into r10 - we can do
this once and keep the value cached in the register.  Also, schedule
some instructions better so that the pipeline doesn't stall after a
load in the neon code.
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 19f949f5
...@@ -562,21 +562,21 @@ ENDPROC(__und_usr) ...@@ -562,21 +562,21 @@ ENDPROC(__und_usr)
@ Fall-through from Thumb-2 __und_usr @ Fall-through from Thumb-2 __und_usr
@ @
#ifdef CONFIG_NEON #ifdef CONFIG_NEON
get_thread_info r10 @ get current thread
adr r6, .LCneon_thumb_opcodes adr r6, .LCneon_thumb_opcodes
b 2f b 2f
#endif #endif
call_fpe: call_fpe:
get_thread_info r10 @ get current thread
#ifdef CONFIG_NEON #ifdef CONFIG_NEON
adr r6, .LCneon_arm_opcodes adr r6, .LCneon_arm_opcodes
2: 2: ldr r5, [r6], #4 @ mask value
ldr r7, [r6], #4 @ mask value
cmp r7, #0 @ end mask?
beq 1f
and r8, r0, r7
ldr r7, [r6], #4 @ opcode bits matching in mask ldr r7, [r6], #4 @ opcode bits matching in mask
cmp r5, #0 @ end mask?
beq 1f
and r8, r0, r5
cmp r8, r7 @ NEON instruction? cmp r8, r7 @ NEON instruction?
bne 2b bne 2b
get_thread_info r10
mov r7, #1 mov r7, #1
strb r7, [r10, #TI_USED_CP + 10] @ mark CP#10 as used strb r7, [r10, #TI_USED_CP + 10] @ mark CP#10 as used
strb r7, [r10, #TI_USED_CP + 11] @ mark CP#11 as used strb r7, [r10, #TI_USED_CP + 11] @ mark CP#11 as used
...@@ -586,7 +586,6 @@ call_fpe: ...@@ -586,7 +586,6 @@ call_fpe:
tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27
tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2
moveq pc, lr moveq pc, lr
get_thread_info r10 @ get current thread
and r8, r0, #0x00000f00 @ mask out CP number and r8, r0, #0x00000f00 @ mask out CP number
THUMB( lsr r8, r8, #8 ) THUMB( lsr r8, r8, #8 )
mov r7, #1 mov r7, #1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册