summaryrefslogtreecommitdiff
path: root/rts/Disassembler.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Disassembler.c')
-rw-r--r--rts/Disassembler.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/rts/Disassembler.c b/rts/Disassembler.c
index 67a451e7e6..451521d57e 100644
--- a/rts/Disassembler.c
+++ b/rts/Disassembler.c
@@ -148,6 +148,13 @@ disInstr ( StgBCO *bco, int pc )
debugBelch("PUSH_ALTS_V " ); printPtr( ptrs[instrs[pc]] );
debugBelch("\n");
pc += 1; break;
+ case bci_PUSH_ALTS_T:
+ debugBelch("PUSH_ALTS_T ");
+ printPtr( ptrs[instrs[pc]] );
+ debugBelch(" 0x%" FMT_HexWord " ", literals[instrs[pc+1]] );
+ printPtr( ptrs[instrs[pc+2]] );
+ debugBelch("\n");
+ pc += 3; break;
case bci_PUSH_PAD8:
debugBelch("PUSH_PAD8\n");
pc += 1; break;
@@ -310,6 +317,9 @@ disInstr ( StgBCO *bco, int pc )
case bci_RETURN_V:
debugBelch("RETURN_V\n" );
break;
+ case bci_RETURN_T:
+ debugBelch("RETURN_T\n ");
+ break;
default:
barf("disInstr: unknown opcode %u", (unsigned int) instr);
@@ -317,12 +327,6 @@ disInstr ( StgBCO *bco, int pc )
return pc;
}
-
-/* Something of a kludge .. how do we know where the end of the insn
- array is, since it isn't recorded anywhere? Answer: the first
- short is the number of bytecodes which follow it.
- See GHC.CoreToByteCode.linkBCO.insns_arr for construction ...
-*/
void disassemble( StgBCO *bco )
{
uint32_t i, j;