remove old gc cruft

svn: r17634
This commit is contained in:
Kevin Tew 2010-01-13 17:08:20 +00:00
parent 8d00ce3cec
commit e4fdd172a7
6 changed files with 0 additions and 6744 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,23 +0,0 @@
#include "commongc_internal.h"
typedef struct CompactGC {
/* Common with NewGC */
Fnl *finalizers;
Fnl *splayed_finalizers;
int num_fnls;
void *park[2];
void *park_save[2];
unsigned short weak_array_tag;
unsigned short weak_box_tag;
unsigned short ephemeron_tag;
unsigned short cust_box_tag;
Roots roots;
GC_Weak_Array *weak_arrays;
GC_Weak_Box *weak_boxes;
GC_Ephemeron *ephemerons;
int num_last_seen_ephemerons;
struct VM *vm;
} CompactGC;

File diff suppressed because it is too large Load Diff

View File

@ -2046,13 +2046,6 @@ void GC_switch_out_master_gc() {
}
}
/* used to initialize a MasterGC Thread, bad idea
* scheme_master_fast_path is more performant */
void GC_switch_in_master_gc() {
GC_set_GC(MASTERGC);
restore_globals_from_gc(MASTERGC);
}
/*used in scheme_master_fast_path*/
void *GC_switch_to_master_gc() {
NewGC *gc = GC_get_GC();

View File

@ -1,104 +0,0 @@
/* This code comes from the conservative collector, ../gc/os_dep.c */
/* Decodes the machine instruction which was responsible for the sending of the
SIGBUS signal. Sadly this is the only way to find the faulting address because
the signal handler doesn't get it directly from the kernel (although it is
available on the Mach level, but droppped by the BSD personality before it
calls our signal handler...)
This code should be able to deal correctly with all PPCs starting from the
601 up to and including the G4s (including Velocity Engine). */
#define EXTRACT_OP1(iw) (((iw) & 0xFC000000) >> 26)
#define EXTRACT_OP2(iw) (((iw) & 0x000007FE) >> 1)
#define EXTRACT_REGA(iw) (((iw) & 0x001F0000) >> 16)
#define EXTRACT_REGB(iw) (((iw) & 0x03E00000) >> 21)
#define EXTRACT_REGC(iw) (((iw) & 0x0000F800) >> 11)
#define EXTRACT_DISP(iw) ((short *) &(iw))[1]
static char *get_fault_addr(unsigned int instr, unsigned int * regs)
{
int disp = 0, tmp;
unsigned int baseA = 0, baseB = 0;
unsigned int addr, alignmask = 0xFFFFFFFF;
switch(EXTRACT_OP1(instr)) {
case 38: /* stb */
case 39: /* stbu */
case 54: /* stfd */
case 55: /* stfdu */
case 52: /* stfs */
case 53: /* stfsu */
case 44: /* sth */
case 45: /* sthu */
case 47: /* stmw */
case 36: /* stw */
case 37: /* stwu */
tmp = EXTRACT_REGA(instr);
if(tmp > 0)
baseA = regs[tmp];
disp = EXTRACT_DISP(instr);
break;
case 31:
switch(EXTRACT_OP2(instr)) {
case 86: /* dcbf */
case 54: /* dcbst */
case 1014: /* dcbz */
case 247: /* stbux */
case 215: /* stbx */
case 759: /* stfdux */
case 727: /* stfdx */
case 983: /* stfiwx */
case 695: /* stfsux */
case 663: /* stfsx */
case 918: /* sthbrx */
case 439: /* sthux */
case 407: /* sthx */
case 661: /* stswx */
case 662: /* stwbrx */
case 150: /* stwcx. */
case 183: /* stwux */
case 151: /* stwx */
case 135: /* stvebx */
case 167: /* stvehx */
case 199: /* stvewx */
case 231: /* stvx */
case 487: /* stvxl */
tmp = EXTRACT_REGA(instr);
if(tmp > 0)
baseA = regs[tmp];
baseB = regs[EXTRACT_REGC(instr)];
/* determine Altivec alignment mask */
switch(EXTRACT_OP2(instr)) {
case 167: /* stvehx */
alignmask = 0xFFFFFFFE;
break;
case 199: /* stvewx */
alignmask = 0xFFFFFFFC;
break;
case 231: /* stvx */
alignmask = 0xFFFFFFF0;
break;
case 487: /* stvxl */
alignmask = 0xFFFFFFF0;
break;
}
break;
case 725: /* stswi */
tmp = EXTRACT_REGA(instr);
if(tmp > 0)
baseA = regs[tmp];
break;
default: /* ignore instruction */
return NULL;
break;
}
break;
default: /* ignore instruction */
return NULL;
break;
}
addr = (baseA + baseB) + disp;
addr &= alignmask;
return (char *)addr;
}

View File

@ -463,26 +463,6 @@ Scheme_Object *scheme_places_deep_copy_in_master(Scheme_Object *so) {
#ifdef MZ_PRECISE_GC
static void* scheme_master_place_handlemsg(int msg_type, void *msg_payload);
#if 0
static void *master_scheme_place(void *data) {
mz_proc_thread *myself;
myself = proc_thread_self;
GC_switch_in_master_gc();
while(1) {
int recv_type;
void *recv_payload;
pt_mbox *origin;
Scheme_Object *o;
pt_mbox_recv(myself->mbox, &recv_type, &recv_payload, &origin);
o = scheme_master_place_handlemsg(recv_type, recv_payload);
pt_mbox_send(origin, 2, (void *) o, NULL);
}
return NULL;
}
#endif
static void* scheme_master_place_handlemsg(int msg_type, void *msg_payload)
{
switch(msg_type) {