X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=disassembler%2Fmain.c;h=eecea39d70d2f1e33eb68a489303b5a7a75211ab;hb=HEAD;hp=0e32599b2a21faebf2b13da4aee7eb50fcaf2b2b;hpb=56f9ee9a2cf2c78e92601f711734b76e0eb98a74;p=b43-tools.git diff --git a/disassembler/main.c b/disassembler/main.c index 0e32599..eecea39 100644 --- a/disassembler/main.c +++ b/disassembler/main.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2010 Michael Buesch + * Copyright (C) 2006-2010 Michael Buesch * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -284,6 +284,12 @@ static void disasm_constant_opcodes(struct disassembler_context *ctx, struct bin_instruction *bin = stmt->u.insn.bin; switch (bin->opcode) { + case 0x101: + stmt->u.insn.name = "mul"; + disasm_std_operand(stmt, 0, 0); + disasm_std_operand(stmt, 1, 1); + disasm_std_operand(stmt, 2, 2); + break; case 0x1C0: stmt->u.insn.name = "add"; disasm_std_operand(stmt, 0, 0); @@ -457,27 +463,28 @@ static void disasm_constant_opcodes(struct disassembler_context *ctx, disasm_std_operand(stmt, 1, 1); break; case 0x0D6: - stmt->u.insn.name = "@D6"; /* FIXME */ + stmt->u.insn.name = "jdn"; stmt->u.insn.labelref_operand = 2; stmt->u.insn.labeladdr = stmt->u.insn.bin->operands[2]; disasm_std_operand(stmt, 0, 0); disasm_std_operand(stmt, 1, 1); break; case (0x0D6 | 0x1): - stmt->u.insn.name = "@D7"; /* FIXME */ + stmt->u.insn.name = "jdpz"; stmt->u.insn.labelref_operand = 2; stmt->u.insn.labeladdr = stmt->u.insn.bin->operands[2]; disasm_std_operand(stmt, 0, 0); disasm_std_operand(stmt, 1, 1); + break; case 0x0D8: - stmt->u.insn.name = "@D8"; /* FIXME */ + stmt->u.insn.name = "jdp"; stmt->u.insn.labelref_operand = 2; stmt->u.insn.labeladdr = stmt->u.insn.bin->operands[2]; disasm_std_operand(stmt, 0, 0); disasm_std_operand(stmt, 1, 1); break; case (0x0D8 | 0x1): - stmt->u.insn.name = "@D9"; /* FIXME */ + stmt->u.insn.name = "jdnz"; stmt->u.insn.labelref_operand = 2; stmt->u.insn.labeladdr = stmt->u.insn.bin->operands[2]; disasm_std_operand(stmt, 0, 0); @@ -870,7 +877,7 @@ static int read_input(struct disassembler_context *ctx) size_t ret; struct bin_instruction *code = NULL; unsigned char tmp[sizeof(uint64_t)]; - uint64_t codeword; + uint64_t codeword = 0; struct fw_header hdr; int err;