diff options
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 0f82098c9bfe..cd22d821bf74 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -562,21 +562,21 @@ ENDPROC(__und_usr) | |||
562 | @ Fall-through from Thumb-2 __und_usr | 562 | @ Fall-through from Thumb-2 __und_usr |
563 | @ | 563 | @ |
564 | #ifdef CONFIG_NEON | 564 | #ifdef CONFIG_NEON |
565 | get_thread_info r10 @ get current thread | ||
565 | adr r6, .LCneon_thumb_opcodes | 566 | adr r6, .LCneon_thumb_opcodes |
566 | b 2f | 567 | b 2f |
567 | #endif | 568 | #endif |
568 | call_fpe: | 569 | call_fpe: |
570 | get_thread_info r10 @ get current thread | ||
569 | #ifdef CONFIG_NEON | 571 | #ifdef CONFIG_NEON |
570 | adr r6, .LCneon_arm_opcodes | 572 | adr r6, .LCneon_arm_opcodes |
571 | 2: | 573 | 2: ldr r5, [r6], #4 @ mask value |
572 | ldr r7, [r6], #4 @ mask value | ||
573 | cmp r7, #0 @ end mask? | ||
574 | beq 1f | ||
575 | and r8, r0, r7 | ||
576 | ldr r7, [r6], #4 @ opcode bits matching in mask | 574 | ldr r7, [r6], #4 @ opcode bits matching in mask |
575 | cmp r5, #0 @ end mask? | ||
576 | beq 1f | ||
577 | and r8, r0, r5 | ||
577 | cmp r8, r7 @ NEON instruction? | 578 | cmp r8, r7 @ NEON instruction? |
578 | bne 2b | 579 | bne 2b |
579 | get_thread_info r10 | ||
580 | mov r7, #1 | 580 | mov r7, #1 |
581 | strb r7, [r10, #TI_USED_CP + 10] @ mark CP#10 as used | 581 | strb r7, [r10, #TI_USED_CP + 10] @ mark CP#10 as used |
582 | strb r7, [r10, #TI_USED_CP + 11] @ mark CP#11 as used | 582 | strb r7, [r10, #TI_USED_CP + 11] @ mark CP#11 as used |
@@ -586,7 +586,6 @@ call_fpe: | |||
586 | tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 | 586 | tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 |
587 | tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 | 587 | tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 |
588 | moveq pc, lr | 588 | moveq pc, lr |
589 | get_thread_info r10 @ get current thread | ||
590 | and r8, r0, #0x00000f00 @ mask out CP number | 589 | and r8, r0, #0x00000f00 @ mask out CP number |
591 | THUMB( lsr r8, r8, #8 ) | 590 | THUMB( lsr r8, r8, #8 ) |
592 | mov r7, #1 | 591 | mov r7, #1 |