fwcutter/make: Avoid _DEFAULT_SOURCE warning
[b43-tools.git] / disassembler / main.c
index 0e32599b2a21faebf2b13da4aee7eb50fcaf2b2b..eecea39d70d2f1e33eb68a489303b5a7a75211ab 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *   Copyright (C) 2006-2010  Michael Buesch <mb@bu3sch.de>
+ *   Copyright (C) 2006-2010  Michael Buesch <m@bues.ch>
  *
  *   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;