[project @ 2001-10-22 16:02:44 by sewardj]
[ghc-hetmet.git] / ghc / rts / Disassembler.c
index 65809d3..0063a65 100644 (file)
@@ -5,12 +5,13 @@
  * Copyright (c) 1994-1998.
  *
  * $RCSfile: Disassembler.c,v $
- * $Revision: 1.18 $
- * $Date: 2001/01/05 15:24:28 $
+ * $Revision: 1.24 $
+ * $Date: 2001/08/14 13:40:09 $
  * ---------------------------------------------------------------------------*/
 
-#ifdef GHCI
+#ifdef DEBUG
 
+#include "PosixSource.h"
 #include "Rts.h"
 #include "RtsAPI.h"
 #include "RtsUtils.h"
@@ -44,6 +45,17 @@ int disInstr ( StgBCO *bco, int pc )
    StgInfoTable** itbls       = (StgInfoTable**)(&itbls_arr->payload[0]);
 
    switch (instrs[pc++]) {
+      case bci_SWIZZLE:
+         fprintf(stderr, "SWIZZLE stkoff %d by %d\n",
+                         instrs[pc], (signed int)instrs[pc+1]);
+         pc += 2; break;
+      case bci_CCALL:
+         fprintf(stderr, "CCALL    marshaller at 0x%x\n", 
+                         literals[instrs[pc]] );
+         pc += 1; break;
+      case bci_STKCHECK: 
+         fprintf(stderr, "STKCHECK %d\n", instrs[pc] );
+         pc += 1; break;
       case bci_ARGCHECK: 
          fprintf(stderr, "ARGCHECK %d\n", instrs[pc] );
          pc += 1; break;
@@ -98,6 +110,13 @@ int disInstr ( StgBCO *bco, int pc )
          fprintf(stderr, "\n");
          pc += 2; break;
 
+      case bci_CASEFAIL: 
+         fprintf(stderr, "CASEFAIL\n" );
+         break;
+      case bci_JMP:
+         fprintf(stderr, "JMP to   %d\n", instrs[pc]);
+         pc += 1; break;
+
       case bci_TESTLT_I:
          fprintf(stderr, "TESTLT_I %d, fail to %d\n", literals[instrs[pc]],
                                                       instrs[pc+1]);
@@ -190,4 +209,4 @@ void disassemble( StgBCO *bco )
    ASSERT(pc == nbcs+1);
 }
 
-#endif /* GHCI */
+#endif /* DEBUG */