projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e413776
)
Tweaks and missing case in disassembler
author
Ian Lynagh
<igloo@earth.li>
Mon, 9 Oct 2006 23:05:39 +0000
(23:05 +0000)
committer
Ian Lynagh
<igloo@earth.li>
Mon, 9 Oct 2006 23:05:39 +0000
(23:05 +0000)
rts/Disassembler.c
patch
|
blob
|
history
diff --git
a/rts/Disassembler.c
b/rts/Disassembler.c
index
00f700f
..
f29cce2
100644
(file)
--- a/
rts/Disassembler.c
+++ b/
rts/Disassembler.c
@@
-31,6
+31,7
@@
int
disInstr ( StgBCO *bco, int pc )
{
int i;
disInstr ( StgBCO *bco, int pc )
{
int i;
+ StgWord16 instr;
StgWord16* instrs = (StgWord16*)(bco->instrs->payload);
StgWord16* instrs = (StgWord16*)(bco->instrs->payload);
@@
-43,7
+44,8
@@
disInstr ( StgBCO *bco, int pc )
StgArrWords* itbls_arr = bco->itbls;
StgInfoTable** itbls = (StgInfoTable**)(&itbls_arr->payload[0]);
StgArrWords* itbls_arr = bco->itbls;
StgInfoTable** itbls = (StgInfoTable**)(&itbls_arr->payload[0]);
- switch (instrs[pc++]) {
+ instr = instrs[pc++];
+ switch (instr) {
case bci_SWIZZLE:
debugBelch("SWIZZLE stkoff %d by %d\n",
instrs[pc], (signed int)instrs[pc+1]);
case bci_SWIZZLE:
debugBelch("SWIZZLE stkoff %d by %d\n",
instrs[pc], (signed int)instrs[pc+1]);
@@
-145,13
+147,17
@@
disInstr ( StgBCO *bco, int pc )
debugBelch("ALLOC_AP %d words\n", instrs[pc] );
pc += 1; break;
case bci_ALLOC_PAP:
debugBelch("ALLOC_AP %d words\n", instrs[pc] );
pc += 1; break;
case bci_ALLOC_PAP:
- debugBelch("ALLOC_PAP %d words, %d arity\n",
+ debugBelch("ALLOC_PAP %d arity, %d words\n",
instrs[pc], instrs[pc+1] );
pc += 2; break;
case bci_MKAP:
debugBelch("MKAP %d words, %d stkoff\n", instrs[pc+1],
instrs[pc] );
pc += 2; break;
instrs[pc], instrs[pc+1] );
pc += 2; break;
case bci_MKAP:
debugBelch("MKAP %d words, %d stkoff\n", instrs[pc+1],
instrs[pc] );
pc += 2; break;
+ case bci_MKPAP:
+ debugBelch("MKPAP %d words, %d stkoff\n", instrs[pc+1],
+ instrs[pc] );
+ pc += 2; break;
case bci_UNPACK:
debugBelch("UNPACK %d\n", instrs[pc] );
pc += 1; break;
case bci_UNPACK:
debugBelch("UNPACK %d\n", instrs[pc] );
pc += 1; break;
@@
-230,7
+236,7
@@
disInstr ( StgBCO *bco, int pc )
break;
default:
break;
default:
- barf("disInstr: unknown opcode");
+ barf("disInstr: unknown opcode %u", (unsigned int) instr);
}
return pc;
}
}
return pc;
}