diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-05-04 18:40:05 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-05-04 18:40:05 +0200 |
commit | 3e8a38dfb33e26395d63467669dbf896ec774eaa (patch) | |
tree | 81f28599e85eba0abaf1753b3fa8263ab9d33044 /sys/src/libmach | |
parent | cf76ca4f3214c3aed03bc99c48e74d87f4dd0756 (diff) |
libmach: update mips disassembler (from sources)
Diffstat (limited to 'sys/src/libmach')
-rw-r--r-- | sys/src/libmach/vcodas.c | 8 | ||||
-rw-r--r-- | sys/src/libmach/vdb.c | 10 |
2 files changed, 14 insertions, 4 deletions
diff --git a/sys/src/libmach/vcodas.c b/sys/src/libmach/vcodas.c index 355ae81c8..7ab8fb5f5 100644 --- a/sys/src/libmach/vcodas.c +++ b/sys/src/libmach/vcodas.c @@ -492,9 +492,13 @@ cop0(Instr *i) case 16: m = "rfe"; break; - - case 32: + + case 24: m = "eret"; + break; + + case 32: + m = "wait"; break; } if (m) { diff --git a/sys/src/libmach/vdb.c b/sys/src/libmach/vdb.c index d62521fcd..de67905ff 100644 --- a/sys/src/libmach/vdb.c +++ b/sys/src/libmach/vdb.c @@ -415,7 +415,9 @@ static void sll(Opcode *o, Instr *i) { if (i->w0 == 0) - bprint(i, "NOOP"); + bprint(i, "NOOP"); /* unofficial nop */ + else if (i->w0 == 0xc0) /* 0xc0: SLL $3,R0 */ + bprint(i, "EHB"); else if (i->rd == i->rt) format(o->mnemonic, i, "$%a,R%d"); else @@ -962,9 +964,13 @@ cop0(Instr *i) m = "RFE"; break; - case 32: + case 24: m = "ERET"; break; + + case 32: + m = "WAIT"; + break; } if (m) { format(m, i, 0); |