dbg_mlc.c (GC_debug_generic_malloc): Removed.

* dbg_mlc.c (GC_debug_generic_malloc): Removed.

	* sparc_mach_dep.S: Rename from sparc_mach_dep.s as it is a
	preprocessor file.
	* mips_sgi_mach_dep.S: Likewise.
	* Makefile.am: Update for above changes.
	* Makefile.in: Rebuilt.

From-SVN: r49720
This commit is contained in:
Bryce McKinlay 2002-02-13 05:38:39 +00:00 committed by Bryce McKinlay
parent 0ec4e2a87f
commit ca77b9e123
6 changed files with 122 additions and 33 deletions

View File

@ -1,3 +1,13 @@
2002-02-13 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* dbg_mlc.c (GC_debug_generic_malloc): Removed.
* sparc_mach_dep.S: Rename from sparc_mach_dep.s as it is a
preprocessor file.
* mips_sgi_mach_dep.S: Likewise.
* Makefile.am: Update for above changes.
* Makefile.in: Rebuilt.
2002-02-12 Richard Henderson <rth@redhat.com>
* configure.in: Re-apply 2001-06-26 configure change.

View File

@ -39,8 +39,8 @@ libgcjgc_la_DEPENDENCIES = @addobjs@
libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
EXTRA_libgcjgc_la_SOURCES = alpha_mach_dep.s \
mips_sgi_mach_dep.s mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
rs6000_mach_dep.s sparc_mach_dep.s sparc_netbsd_mach_dep.s \
mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
AM_CXXFLAGS = @GC_CFLAGS@

View File

@ -124,8 +124,8 @@ libgcjgc_la_DEPENDENCIES = @addobjs@
libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
EXTRA_libgcjgc_la_SOURCES = alpha_mach_dep.s \
mips_sgi_mach_dep.s mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
rs6000_mach_dep.s sparc_mach_dep.s sparc_netbsd_mach_dep.s \
mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s

View File

@ -429,35 +429,6 @@ void GC_start_debugging()
return (GC_store_debug_info(result, (word)lb, s, (word)i));
}
# ifdef __STDC__
GC_PTR GC_debug_generic_malloc(size_t lb, int k, GC_EXTRA_PARAMS)
# else
GC_PTR GC_debug_malloc(lb, k, s, i)
size_t lb;
int k;
char * s;
int i;
# ifdef GC_ADD_CALLER
--> GC_ADD_CALLER not implemented for K&R C
# endif
# endif
{
GC_PTR result = GC_generic_malloc(lb + DEBUG_BYTES, k);
if (result == 0) {
GC_err_printf1("GC_debug_malloc(%ld) returning NIL (",
(unsigned long) lb);
GC_err_puts(s);
GC_err_printf1(":%ld)\n", (unsigned long)i);
return(0);
}
if (!GC_debugging_started) {
GC_start_debugging();
}
ADD_CALL_CHAIN(result, ra);
return (GC_store_debug_info(result, (word)lb, s, (word)i));
}
# ifdef DBG_HDRS_ALL
/*
* An allocation function for internal use.

View File

@ -0,0 +1,41 @@
#include <sys/regdef.h>
#include <sys/asm.h>
# define call_push(x) move $4,x; jal GC_push_one
.option pic2
.text
/* Mark from machine registers that are saved by C compiler */
# define FRAMESZ 32
# define RAOFF FRAMESZ-SZREG
# define GPOFF FRAMESZ-(2*SZREG)
NESTED(GC_push_regs, FRAMESZ, ra)
.mask 0x80000000,-SZREG # inform debugger of saved ra loc
move t0,gp
SETUP_GPX(t8)
PTR_SUBU sp,FRAMESZ
# ifdef SETUP_GP64
SETUP_GP64(GPOFF, GC_push_regs)
# endif
SAVE_GP(GPOFF)
REG_S ra,RAOFF(sp)
# if (_MIPS_SIM == _MIPS_SIM_ABI32)
call_push($2)
call_push($3)
# endif
call_push($16)
call_push($17)
call_push($18)
call_push($19)
call_push($20)
call_push($21)
call_push($22)
call_push($23)
call_push($30)
REG_L ra,RAOFF(sp)
# ifdef RESTORE_GP64
RESTORE_GP64
# endif
PTR_ADDU sp,FRAMESZ
j ra
.end GC_push_regs

67
boehm-gc/sparc_mach_dep.S Normal file
View File

@ -0,0 +1,67 @@
! SPARCompiler 3.0 and later apparently no longer handles
! asm outside functions. So we need a separate .s file
! This is only set up for SunOS 5, not SunOS 4.
! Assumes this is called before the stack contents are
! examined.
.seg "text"
.globl GC_save_regs_in_stack
.globl GC_push_regs
GC_save_regs_in_stack:
GC_push_regs:
#if defined(__arch64__) || defined(__sparcv9)
save %sp,-128,%sp
flushw
ret
restore %sp,2047+128,%o0
#else /* 32 bit SPARC */
ta 0x3 ! ST_FLUSH_WINDOWS
mov %sp,%o0
retl
nop
#endif /* 32 bit SPARC */
.GC_save_regs_in_stack_end:
.size GC_save_regs_in_stack,.GC_save_regs_in_stack_end-GC_save_regs_in_stack
.globl GC_clear_stack_inner
GC_clear_stack_inner:
#if defined(__arch64__) || defined(__sparcv9)
mov %sp,%o2 ! Save sp
add %sp,2047-8,%o3 ! p = sp+bias-8
add %o1,-2047-192,%sp ! Move sp out of the way,
! so that traps still work.
! Includes some extra words
! so we can be sloppy below.
loop:
stx %g0,[%o3] ! *(long *)p = 0
cmp %o3,%o1
bgu,pt %xcc, loop ! if (p > limit) goto loop
asm("add %o3,-8,%o3 ! p -= 8 (delay slot)
retl
mov %o2,%sp ! Restore sp., delay slot
#else /* 32 bit SPARC */
mov %sp,%o2 ! Save sp
add %sp,-8,%o3 ! p = sp-8
clr %g1 ! [g0,g1] = 0
add %o1,-0x60,%sp ! Move sp out of the way,
! so that traps still work.
! Includes some extra words
! so we can be sloppy below.
loop:
std %g0,[%o3] ! *(long long *)p = 0
cmp %o3,%o1
bgu loop ! if (p > limit) goto loop
add %o3,-8,%o3 ! p -= 8 (delay slot)
retl
mov %o2,%sp ! Restore sp., delay slot
#endif /* 32 bit SPARC */
.GC_clear_stack_inner_end:
.size GC_clear_stack_inner,.GC_clear_stack_inner_end-GC_clear_stack_inner