summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2001-06-03 22:08:26 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2001-06-03 22:08:26 +0000
commit9d4d725bb817be97593d5f5bf345b55ee5e93427 (patch)
tree94f3dab4430eb0f23a1979e0cf422c9992987484
parentf85b8d1a2f3e3dfec7b38b6e65ba920bb0ed1426 (diff)
downloadgcc-9d4d725bb817be97593d5f5bf345b55ee5e93427.tar.gz
lib1funcs.asm (ic_invalidate): Align the cache-mirroring sequence.
* config/sh/lib1funcs.asm (ic_invalidate): Align the cache-mirroring sequence. Add nops. From-SVN: r42833
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/lib1funcs.asm11
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c77ed73ae86..a5630817fc9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-06-03 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/lib1funcs.asm (ic_invalidate): Align the
+ cache-mirroring sequence. Add nops.
+
2001-06-03 Joseph S. Myers <jsm28@cam.ac.uk>
* doc/install-old.texi: Remove more old installation
diff --git a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm
index d2a860efb5c..21707587c9e 100644
--- a/gcc/config/sh/lib1funcs.asm
+++ b/gcc/config/sh/lib1funcs.asm
@@ -1217,18 +1217,23 @@ GLOBAL(ic_invalidate):
ocbwb @r4
mova 0f,r0
mov.w 1f,r1
+/* Compute how many cache lines 0f is away from r4. */
sub r0,r4
and r1,r4
- add #4,r4
+/* Prepare to branch to 0f plus the cache-line offset. */
+ add # 0f - 1f,r4
braf r4
nop
1:
.short 0x1fe0
- nop
+ .p2align 5
+/* This must be aligned to the beginning of a cache line. */
0:
- .rept 2048
+ .rept 256 /* There are 256 cache lines of 32 bytes. */
rts
+ .rept 15
nop
.endr
+ .endr
#endif /* SH4 */
#endif /* L_ic_invalidate */