diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-07-17 15:43:18 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-07-17 15:43:18 +0000 |
commit | e40c2d35dc36bad38e1d2e5fe285a1b9a2cc31d1 (patch) | |
tree | 8fef084fb4b9d7bc1118a7164c0110c39bea38a0 /gcc/config/sh/lib1funcs.asm | |
parent | d3b29bbd4457eac0538a6b6156166a95d3fdd40a (diff) | |
download | gcc-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.asm | 16 |
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 |