/* -----------------------------------------------------------------------------
- * $Id: Bytecodes.h,v 1.5 2001/02/06 12:01:00 sewardj Exp $
+ * $Id: Bytecodes.h,v 1.6 2001/03/21 10:56:04 sewardj Exp $
*
* (c) The GHC Team, 1998-2000
*
#define bci_ENTER 24
#define bci_RETURN 25
#define bci_STKCHECK 26
+#define bci_JMP 27
/* If a BCO definitely requires less than this many words of stack,
* Copyright (c) 1994-1998.
*
* $RCSfile: Disassembler.c,v $
- * $Revision: 1.19 $
- * $Date: 2001/02/11 17:51:07 $
+ * $Revision: 1.20 $
+ * $Date: 2001/03/21 10:56:04 $
* ---------------------------------------------------------------------------*/
#ifdef DEBUG
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]);
* Copyright (c) 1994-2000.
*
* $RCSfile: Interpreter.c,v $
- * $Revision: 1.20 $
- * $Date: 2001/02/15 14:30:07 $
+ * $Revision: 1.21 $
+ * $Date: 2001/03/21 10:56:04 $
* ---------------------------------------------------------------------------*/
#include "Rts.h"
}
}
+ case bci_JMP: {
+ /* BCO_NEXT modifies bciPtr, so be conservative. */
+ int nextpc = BCO_NEXT;
+ bciPtr = nextpc;
+ goto nextInsn;
+ }
case bci_CASEFAIL:
barf("interpretBCO: hit a CASEFAIL");