/* -*- mode: hugs-c; -*- */
/* -----------------------------------------------------------------------------
- * $Id: Printer.c,v 1.4 1999/01/18 15:21:38 simonm Exp $
+ * $Id: Printer.c,v 1.5 1999/02/05 14:44:43 simonm Exp $
*
* Copyright (c) 1994-1998.
*
StgWord i, j;
const StgInfoTable* info = get_itbl(obj);
fprintf(stderr,"%s(",tag);
- printPtr((StgPtr)info);
+ printPtr((StgPtr)obj->header.info);
for (i = 0; i < info->layout.payload.ptrs; ++i) {
fprintf(stderr,", ");
printPtr(payloadPtr(obj,i));
disassemble(stgCast(StgBCO*,obj),"\t");
break;
#endif
+
case AP_UPD:
{
StgAP_UPD* ap = stgCast(StgAP_UPD*,obj);
fprintf(stderr,")\n");
break;
}
+
case PAP:
{
StgPAP* pap = stgCast(StgPAP*,obj);
StgWord i;
- fprintf(stderr,"AP_NUPD("); printPtr((StgPtr)pap->fun);
+ fprintf(stderr,"PAP("); printPtr((StgPtr)pap->fun);
for (i = 0; i < pap->n_args; ++i) {
fprintf(stderr,", ");
printPtr(payloadPtr(pap,i));
fprintf(stderr,")\n");
break;
}
+
case IND:
fprintf(stderr,"IND(");
printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
fprintf(stderr,")\n");
break;
+
+ case IND_STATIC:
+ fprintf(stderr,"IND_STATIC(");
+ printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
+ fprintf(stderr,")\n");
+ break;
+
+ case IND_OLDGEN:
+ fprintf(stderr,"IND_OLDGEN(");
+ printPtr((StgPtr)stgCast(StgInd*,obj)->indirectee);
+ fprintf(stderr,")\n");
+ break;
+
case CAF_UNENTERED:
{
StgCAF* caf = stgCast(StgCAF*,obj);
fprintf(stderr,")\n");
break;
}
+
case CAF_ENTERED:
{
StgCAF* caf = stgCast(StgCAF*,obj);
fprintf(stderr,")\n");
break;
}
+
case CAF_BLACKHOLE:
fprintf(stderr,"CAF_BH(");
printPtr((StgPtr)stgCast(StgBlockingQueue*,obj)->blocking_queue);
fprintf(stderr,")\n");
break;
+
case BLACKHOLE:
fprintf(stderr,"BH\n");
break;
+
case BLACKHOLE_BQ:
fprintf(stderr,"BQ(");
printPtr((StgPtr)stgCast(StgBlockingQueue*,obj)->blocking_queue);
fprintf(stderr,")\n");
break;
+
case CONSTR:
+ case CONSTR_1_0: case CONSTR_0_1:
+ case CONSTR_1_1: case CONSTR_0_2: case CONSTR_2_0:
case CONSTR_INTLIKE:
case CONSTR_CHARLIKE:
case CONSTR_STATIC:
StgWord i, j;
const StgInfoTable* info = get_itbl(obj);
fprintf(stderr,"PACK(");
- printPtr((StgPtr)info);
+ printPtr((StgPtr)obj->header.info);
fprintf(stderr,"(tag=%d)",info->srt_len);
for (i = 0; i < info->layout.payload.ptrs; ++i) {
fprintf(stderr,", ");
fprintf(stderr,")\n");
break;
}
+
case FUN:
+ case FUN_1_0: case FUN_0_1:
+ case FUN_1_1: case FUN_0_2: case FUN_2_0:
case FUN_STATIC:
printStdObject(obj,"FUN");
break;
+
case THUNK:
+ case THUNK_1_0: case THUNK_0_1:
+ case THUNK_1_1: case THUNK_0_2: case THUNK_2_0:
case THUNK_STATIC:
/* ToDo: will this work for THUNK_STATIC too? */
printStdObject(obj,"THUNK");
fprintf(stderr,")\n");
break;
}
+
case CATCH_FRAME:
{
StgCatchFrame* u = stgCast(StgCatchFrame*,obj);
fprintf(stderr,")\n");
break;
}
+
case SEQ_FRAME:
{
StgSeqFrame* u = stgCast(StgSeqFrame*,obj);
fprintf(stderr,")\n");
break;
}
+
case STOP_FRAME:
{
StgStopFrame* u = stgCast(StgStopFrame*,obj);