mirror of git://gcc.gnu.org/git/gcc.git
gc.h (GC_INIT): Add DATASTART and DATAEND roots on AIX.
* include/gc.h (GC_INIT): Add DATASTART and DATAEND roots on AIX. * include/private/gcconfig.h (RS6000): Add 64-bit AIX support. Define USE_GENERIC_PUSH_REGS. Use AIX _data and _end symbols for DATASTART and DATAEND roots. * rs6000_mach_dep.s: Add function descriptor and traceback table. From-SVN: r49218
This commit is contained in:
parent
01a2ccd010
commit
6cb3421f1f
|
@ -1,3 +1,11 @@
|
||||||
|
2002-01-25 David Edelsohn <edelsohn@gnu.org>
|
||||||
|
|
||||||
|
* include/gc.h (GC_INIT): Add DATASTART and DATAEND roots on AIX.
|
||||||
|
* include/private/gcconfig.h (RS6000): Add 64-bit AIX support.
|
||||||
|
Define USE_GENERIC_PUSH_REGS. Use AIX _data and _end symbols for
|
||||||
|
DATASTART and DATAEND roots.
|
||||||
|
* rs6000_mach_dep.s: Add function descriptor and traceback table.
|
||||||
|
|
||||||
2001-12-16 Jeff Sturm <jsturm@one-point.com>
|
2001-12-16 Jeff Sturm <jsturm@one-point.com>
|
||||||
|
|
||||||
* dyn_load.c: Define ElfW (if needed) for all targets,
|
* dyn_load.c: Define ElfW (if needed) for all targets,
|
||||||
|
|
|
@ -888,7 +888,7 @@ extern void GC_thr_init(); /* Needed for Solaris/X86 */
|
||||||
# define GC_INIT() { extern end, etext; \
|
# define GC_INIT() { extern end, etext; \
|
||||||
GC_noop(&end, &etext); }
|
GC_noop(&end, &etext); }
|
||||||
#else
|
#else
|
||||||
# if defined(__CYGWIN32__) && defined(GC_USE_DLL)
|
# if (defined(__CYGWIN32__) && defined(GC_USE_DLL)) || defined (_AIX)
|
||||||
/*
|
/*
|
||||||
* Similarly gnu-win32 DLLs need explicit initialization
|
* Similarly gnu-win32 DLLs need explicit initialization
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1174,10 +1174,19 @@
|
||||||
|
|
||||||
# ifdef RS6000
|
# ifdef RS6000
|
||||||
# define MACH_TYPE "RS6000"
|
# define MACH_TYPE "RS6000"
|
||||||
# define ALIGNMENT 4
|
# ifdef __64BIT__
|
||||||
# define DATASTART ((ptr_t)0x20000000)
|
# define ALIGNMENT 8
|
||||||
|
# define CPP_WORDSZ 64
|
||||||
|
# else
|
||||||
|
# define ALIGNMENT 4
|
||||||
|
# define CPP_WORDSZ 32
|
||||||
|
# endif
|
||||||
|
extern int _data, _end;
|
||||||
|
# define DATASTART ((ptr_t)((ulong)&_data))
|
||||||
|
# define DATAEND ((ptr_t)((ulong)&_end))
|
||||||
extern int errno;
|
extern int errno;
|
||||||
# define STACKBOTTOM ((ptr_t)((ulong)&errno))
|
# define STACKBOTTOM ((ptr_t)((ulong)&errno))
|
||||||
|
# define USE_GENERIC_PUSH_REGS
|
||||||
# define DYNAMIC_LOADING
|
# define DYNAMIC_LOADING
|
||||||
/* For really old versions of AIX, this may have to be removed. */
|
/* For really old versions of AIX, this may have to be removed. */
|
||||||
# endif
|
# endif
|
||||||
|
@ -1582,7 +1591,7 @@
|
||||||
|
|
||||||
# if defined(SVR4) || defined(LINUX) || defined(IRIX) || defined(HPUX) \
|
# if defined(SVR4) || defined(LINUX) || defined(IRIX) || defined(HPUX) \
|
||||||
|| defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
|
|| defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
|
||||||
|| defined(BSD) || defined(AIX) || defined(MACOSX) || defined(OSF1)
|
|| defined(BSD) || defined(_AIX) || defined(MACOSX) || defined(OSF1)
|
||||||
# define UNIX_LIKE /* Basic Unix-like system calls work. */
|
# define UNIX_LIKE /* Basic Unix-like system calls work. */
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
.csect
|
|
||||||
.set r0,0
|
.set r0,0
|
||||||
.set r1,1
|
.set r1,1
|
||||||
.set r2,2
|
.set r2,2
|
||||||
|
@ -32,10 +31,18 @@
|
||||||
.set r30,30
|
.set r30,30
|
||||||
.set r31,31
|
.set r31,31
|
||||||
|
|
||||||
|
.extern .GC_push_one
|
||||||
# Mark from machine registers that are saved by C compiler
|
# Mark from machine registers that are saved by C compiler
|
||||||
.globl .GC_push_regs
|
.globl .GC_push_regs
|
||||||
|
.csect .text[PR]
|
||||||
|
.align 2
|
||||||
|
.globl GC_push_regs
|
||||||
|
.globl .GC_push_regs
|
||||||
|
.csect GC_push_regs[DS]
|
||||||
|
GC_push_regs:
|
||||||
|
.long .GC_push_regs, TOC[tc0], 0
|
||||||
|
.csect .text[PR]
|
||||||
.GC_push_regs:
|
.GC_push_regs:
|
||||||
.extern .GC_push_one
|
|
||||||
stu r1,-64(r1) # reserve stack frame
|
stu r1,-64(r1) # reserve stack frame
|
||||||
mflr r0 # save link register
|
mflr r0 # save link register
|
||||||
st r0,0x48(r1)
|
st r0,0x48(r1)
|
||||||
|
@ -103,3 +110,5 @@
|
||||||
mtlr r0
|
mtlr r0
|
||||||
ai r1,r1,64
|
ai r1,r1,64
|
||||||
br
|
br
|
||||||
|
.long 0
|
||||||
|
.byte 0,0,0,0,0,0,0,0
|
||||||
|
|
Loading…
Reference in New Issue