summaryrefslogtreecommitdiff
path: root/gcc/config/arm/linux-gas.h
diff options
context:
space:
mode:
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>1999-02-22 16:47:59 +0000
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>1999-02-22 16:47:59 +0000
commit9888ad6d0aae045a7c142479341642cbe023a568 (patch)
treea2fe88d03bd68ea8ca2592dc1d58cf9345eeb24f /gcc/config/arm/linux-gas.h
parent22e2b0d04b4f635c1091942c78f8b6c7079b1db9 (diff)
downloadgcc-9888ad6d0aae045a7c142479341642cbe023a568.tar.gz
Apply ARM/Linux patches.
Rework cpu/architecture command line parsing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25380 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/linux-gas.h')
-rw-r--r--gcc/config/arm/linux-gas.h34
1 files changed, 15 insertions, 19 deletions
diff --git a/gcc/config/arm/linux-gas.h b/gcc/config/arm/linux-gas.h
index 72567f39158..f2b5d42e1e2 100644
--- a/gcc/config/arm/linux-gas.h
+++ b/gcc/config/arm/linux-gas.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
ARM Linux-based GNU systems version.
- Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
Contributed by Russell King <rmk92@ecs.soton.ac.uk>.
This file is part of GNU CC.
@@ -59,29 +59,25 @@ Boston, MA 02111-1307, USA. */
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD
-#if 0 /* not yet */
+/* Emit code to set up a trampoline and synchronise the caches. */
+#undef INITIALIZE_TRAMPOLINE
+#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
+{ \
+ emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 8)), \
+ (CXT)); \
+ emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 12)), \
+ (FNADDR)); \
+ emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__clear_cache"), \
+ 0, VOIDmode, 2, TRAMP, Pmode, \
+ plus_constant (TRAMP, TRAMPOLINE_SIZE), Pmode); \
+}
/* Clear the instruction cache from `beg' to `end'. This makes an
- inline system call to SYS_cacheflush. The arguments are as
- follows:
-
- cacheflush (start, end, flags)
-
-*/
-
+ inline system call to SYS_cacheflush. */
#define CLEAR_INSN_CACHE(BEG, END) \
{ \
register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
register unsigned long _end __asm ("a2") = (unsigned long) (END); \
register unsigned long _flg __asm ("a3") = 0; \
- __asm __volatile ("swi 0x9000b8"); \
+ __asm __volatile ("swi 0x9f0002"); \
}
-
-#endif
-
-/* If cross-compiling, don't require stdio.h etc to build libgcc.a. */
-#ifdef CROSS_COMPILE
-#ifndef inhibit_libc
-#define inhibit_libc
-#endif
-#endif