summaryrefslogtreecommitdiff
path: root/gcc/config/sh/lib1funcs.asm
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-17 15:43:18 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-17 15:43:18 +0000
commite40c2d35dc36bad38e1d2e5fe285a1b9a2cc31d1 (patch)
tree8fef084fb4b9d7bc1118a7164c0110c39bea38a0 /gcc/config/sh/lib1funcs.asm
parentd3b29bbd4457eac0538a6b6156166a95d3fdd40a (diff)
downloadgcc-e40c2d35dc36bad38e1d2e5fe285a1b9a2cc31d1.tar.gz
* config/sh/lib1funcs.asm (init_trampoline): New entry point.
* sh-protos.h (sh_initialize_trampoline): Declare. * sh.c (sh_initialize_trampoline): New function. * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32. (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA. (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline. (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact. * sh.md (initialize_trampoline, double_shori): New patterns. (initialize_trampoline_compact): Likewise. (shmedia32_initialize_trampoline_big): Remove. (shmedia32_initialize_trampoline_little): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55529 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/lib1funcs.asm')
-rw-r--r--gcc/config/sh/lib1funcs.asm16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm
index 1021c9ba3b5..d7071b12321 100644
--- a/gcc/config/sh/lib1funcs.asm
+++ b/gcc/config/sh/lib1funcs.asm
@@ -1821,6 +1821,22 @@ LOCAL(set_fpscr_L1):
.mode SHmedia
.section .text..SHmedia32,"ax"
.align 2
+ .global GLOBAL(init_trampoline)
+GLOBAL(init_trampoline):
+ st.l r0,8,r2
+#ifdef __LITTLE_ENDIAN__
+ movi 9,r20
+ shori 0x402b,r20
+ shori 0xd101,r20
+ shori 0xd002,r20
+#else
+ movi 0xffffffffffffd002,r20
+ shori 0xd101,r20
+ shori 0x402b,r20
+ shori 9,r20
+#endif
+ st.q r0,0,r20
+ st.l r0,12,r3
.global GLOBAL(ic_invalidate)
GLOBAL(ic_invalidate):
ocbwb r0,0