(ELF_MACHINE_START_ADDRESS): Define.
[kopensolaris-gnu/glibc.git] / sysdeps / hppa / sysdep.h
1 /* Assembler macros for HP/PA.
2    Copyright (C) 1999 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4    Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 1999.
5
6    The GNU C Library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Library General Public License as
8    published by the Free Software Foundation; either version 2 of the
9    License, or (at your option) any later version.
10
11    The GNU C Library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Library General Public License for more details.
15
16    You should have received a copy of the GNU Library General Public
17    License along with the GNU C Library; see the file COPYING.LIB.  If not,
18    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 #include <sysdeps/generic/sysdep.h>
22 #include <sys/syscall.h>
23 #include "config.h"
24
25 #ifndef ASM_LINE_SEP
26 #define ASM_LINE_SEP ;
27 #endif
28
29 #ifdef  __ASSEMBLER__
30
31 /* Syntactic details of assembler.  */
32
33 #define ALIGNARG(log2) log2
34
35
36 /* Define an entry point visible from C.
37
38    There is currently a bug in gdb which prevents us from specifying
39    incomplete stabs information.  Fake some entries here which specify
40    the current source file.  */
41 #define ENTRY(name)                                                           \
42   .SPACE $TEXT$                                                 ASM_LINE_SEP  \
43   .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY             ASM_LINE_SEP  \
44   .align ALIGNARG(4)                                            ASM_LINE_SEP  \
45   .NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY            ASM_LINE_SEP  \
46   .EXPORT C_SYMBOL_NAME(name),ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR ASM_LINE_SEP\
47   C_LABEL(name)                                                               \
48   CALL_MCOUNT
49
50 #undef  END
51 #define END(name)                                                             \
52   .PROCEND
53
54
55 /* If compiled for profiling, call `mcount' at the start of each function.  */
56 #ifdef  PROF
57 /* The mcount code relies on a normal frame pointer being on the stack
58    to locate our caller, so push one just for its benefit.  */
59 #define CALL_MCOUNT \
60   XXX   ASM_LINE_SEP
61 #else
62 #define CALL_MCOUNT             /* Do nothing.  */
63 #endif
64
65 #define PSEUDO(name, syscall_name, args)                                      \
66   ENTRY (name)                                                                \
67   DO_CALL (syscall_name, args)
68
69 #undef  PSEUDO_END
70 #define PSEUDO_END(name)                                                      \
71   END (name)
72
73 #define JUMPTARGET(name)        name
74 #define SYSCALL_PIC_SETUP       /* Nothing.  */
75
76 /* Local label name for asm code. */
77 #ifndef L
78 #define L(name)         name
79 #endif
80
81 #endif  /* __ASSEMBLER__ */