Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: Fix up optimized SH-4 memcpy on big endian.

Signed-off-by: Hideo Saito <saito@densan.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

authored by

Hideo Saito and committed by
Paul Mundt
e08b954c 972ad0e0

+11 -11
+11 -11
arch/sh/lib/memcpy-sh4.S
··· 126 126 127 127 mov.l r3,@-r0 ! 30 LS 128 128 #else 129 - 3: mov r1,r3 ! OPQR 129 + 3: mov r7,r3 ! OPQR 130 130 shlr8 r3 ! xOPQ 131 - mov.l @(r0,r5),r1 ! KLMN 132 - mov r1,r6 131 + mov.l @(r0,r5),r7 ! KLMN 132 + mov r7,r6 133 133 shll16 r6 134 134 shll8 r6 ! Nxxx 135 135 or r6,r3 ! NOPQ ··· 733 733 movca.l r0,@r1 ! 40 LS (latency=3-7) 734 734 add #-0x1c, r1 ! 50 EX 735 735 736 - mov.l r3, @(0x1c,r1) ! 33 LS 736 + mov.l r3, @(0x18,r1) ! 33 LS 737 737 xtrct r11, r10 ! 48 EX 738 738 739 - mov.l r6, @(0x18,r1) ! 33 LS 739 + mov.l r6, @(0x14,r1) ! 33 LS 740 740 xtrct r12, r11 ! 48 EX 741 741 742 - mov.l r7, @(0x14,r1) ! 33 LS 742 + mov.l r7, @(0x10,r1) ! 33 LS 743 743 744 - mov.l r8, @(0x10,r1) ! 33 LS 745 - add #-0x3e, r5 ! 50 EX 744 + mov.l r8, @(0x0c,r1) ! 33 LS 745 + add #-0x1e, r5 ! 50 EX 746 746 747 - mov.l r9, @(0x0c,r1) ! 33 LS 747 + mov.l r9, @(0x08,r1) ! 33 LS 748 748 cmp/eq r2,r1 ! 54 MT 749 749 750 - mov.l r10, @(0x08,r1) ! 33 LS 750 + mov.l r10, @(0x04,r1) ! 33 LS 751 751 bf/s 2b ! 109 BR 752 752 753 - mov.l r11, @(0x04,r1) ! 33 LS 753 + mov.l r11, @(0x00,r1) ! 33 LS 754 754 #endif 755 755 756 756 mov.l @r15+, r12