diff options
author | Robin Getz <robin.getz@analog.com> | 2007-06-20 23:34:16 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-06-20 23:34:16 -0400 |
commit | 4bf3f3cbb6add01d3e6a18c73f594b73113b14f2 (patch) | |
tree | a80839f98a64052f4d004a5207da2731fe556908 /arch/blackfin/lib/memcpy.S | |
parent | 0864a4e201b1ea442f4c8b887418a29f67e24d30 (diff) |
Blackfin arch: update ANOMALY handling
update lists for 533, 537, and add SSYNC workaround into assembly files.
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/lib/memcpy.S')
-rw-r--r-- | arch/blackfin/lib/memcpy.S | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/blackfin/lib/memcpy.S b/arch/blackfin/lib/memcpy.S index 34b5a91c215c..14a5585bbd02 100644 --- a/arch/blackfin/lib/memcpy.S +++ b/arch/blackfin/lib/memcpy.S | |||
@@ -94,13 +94,20 @@ ENTRY(_memcpy) | |||
94 | .Lmore_than_seven: | 94 | .Lmore_than_seven: |
95 | /* There's at least eight bytes to copy. */ | 95 | /* There's at least eight bytes to copy. */ |
96 | P2 += -1; /* because we unroll one iteration */ | 96 | P2 += -1; /* because we unroll one iteration */ |
97 | LSETUP(.Lword_loop, .Lword_loop) LC0=P2; | 97 | LSETUP(.Lword_loops, .Lword_loope) LC0=P2; |
98 | R0 = R1; | 98 | R0 = R1; |
99 | I1 = P1; | 99 | I1 = P1; |
100 | R3 = [I1++]; | 100 | R3 = [I1++]; |
101 | .Lword_loop: | 101 | #ifdef ANOMALY_05000202 |
102 | .Lword_loops: | ||
103 | [P0++] = R3; | ||
104 | .Lword_loope: | ||
105 | R3 = [I1++]; | ||
106 | #else | ||
107 | .Lword_loops: | ||
108 | .Lword_loope: | ||
102 | MNOP || [P0++] = R3 || R3 = [I1++]; | 109 | MNOP || [P0++] = R3 || R3 = [I1++]; |
103 | 110 | #endif | |
104 | [P0++] = R3; | 111 | [P0++] = R3; |
105 | /* Any remaining bytes to copy? */ | 112 | /* Any remaining bytes to copy? */ |
106 | R3 = 0x3; | 113 | R3 = 0x3; |