OSDN Git Service

* dbg_mlc.c (GC_debug_generic_malloc): Removed.
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Feb 2002 05:38:39 +0000 (05:38 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Feb 2002 05:38:39 +0000 (05:38 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49720 138bc75d-0d04-0410-961f-82ee72b054a4

boehm-gc/ChangeLog
boehm-gc/Makefile.am
boehm-gc/Makefile.in
boehm-gc/dbg_mlc.c
boehm-gc/mips_sgi_mach_dep.S [new file with mode: 0644]
boehm-gc/sparc_mach_dep.S [new file with mode: 0644]

index 2f4a173..a4fe942 100644 (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.
index 4097072..2876ece 100644 (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@
index 4460d67..740883c 100644 (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
 
 
index e875c88..57de3da 100644 (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.
diff --git a/boehm-gc/mips_sgi_mach_dep.S b/boehm-gc/mips_sgi_mach_dep.S
new file mode 100644 (file)
index 0000000..bae9b5e
--- /dev/null
@@ -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
diff --git a/boehm-gc/sparc_mach_dep.S b/boehm-gc/sparc_mach_dep.S
new file mode 100644 (file)
index 0000000..9f3a4b0
--- /dev/null
@@ -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
+
+       
+               
+               
+               
+               
+