v5: add disassembler support for JDNSQMATCH_EXT_OPCODE

Test: TH
Change-Id: Ib42c7f7f0d4a7c952dbfab21f4da9b4a69fd39ac
diff --git a/disassembler.c b/disassembler.c
index cda64f7..5e3100a 100644
--- a/disassembler.c
+++ b/disassembler.c
@@ -298,6 +298,30 @@
 
                     break;
                 }
+                case JDNSQMATCH_EXT_OPCODE: {
+                    if (reg_num == 0) {
+                        print_opcode("jdnsqne");
+                    } else {
+                        print_opcode("jdnsqeq");
+                    }
+                    bprintf("r0, ");
+                    uint32_t offs = 0;
+                    DECODE_IMM(offs, 1 << (len_field - 1));
+                    uint16_t qtype = 0;
+                    DECODE_IMM(qtype, 1);
+                    uint32_t end = *pc;
+                    while (end + 1 < program_len && !(program[end] == 0 && program[end + 1] == 0)) {
+                        end++;
+                    }
+                    end += 2;
+                    print_jump_target(end + offs, program_len);
+                    bprintf(", %d, ", qtype);
+                    while (*pc < end) {
+                        uint8_t byte = program[(*pc)++];
+                        bprintf("%02x", byte);
+                    }
+                    break;
+                }
                 default:
                     bprintf("unknown_ext %u", imm);
                     break;