v5: add disassembler support for EPKTDATACOPY{IMM|R1}_EXT_OPCODE

Test: TH
Change-Id: Ide66182d0c2ef434412cb452c75413a459c7331b
diff --git a/disassembler.c b/disassembler.c
index 3b9f105..228bce0 100644
--- a/disassembler.c
+++ b/disassembler.c
@@ -273,22 +273,21 @@
                 case EWRITE1_EXT_OPCODE: print_opcode("ewrite1"); bprintf("r%d", reg_num); break;
                 case EWRITE2_EXT_OPCODE: print_opcode("ewrite2"); bprintf("r%d", reg_num); break;
                 case EWRITE4_EXT_OPCODE: print_opcode("ewrite4"); bprintf("r%d", reg_num); break;
-                case EDATACOPY_EXT_OPCODE:
-                case EPKTCOPY_EXT_OPCODE: {
-                    if (imm == EPKTCOPY_EXT_OPCODE) {
-                        print_opcode("pcopy");
+                case EPKTDATACOPYIMM_EXT_OPCODE:
+                case EPKTDATACOPYR1_EXT_OPCODE: {
+                    if (reg_num == 0) {
+                        print_opcode("epktcopy");
                     } else {
-                        print_opcode("dcopy");
+                        print_opcode("edatacopy");
                     }
-                    if (len_field > 0) {
-                        const uint32_t imm_len = 1 << (len_field - 1);
-                        uint32_t relative_offs = 0;
-                        DECODE_IMM(relative_offs, imm_len);
-                        uint32_t copy_len = 0;
-                        DECODE_IMM(copy_len, 1);
+                    if (imm == EPKTDATACOPYIMM_EXT_OPCODE) {
+                      uint32_t len = 0;
+                      DECODE_IMM(len, 1);
+                        bprintf(" r0, %d", len);
+                    } else {
+                        bprintf(" r0, r1");
+                    }
 
-                        bprintf("[r%u+%d], %d", reg_num, relative_offs, copy_len);
-                    }
                     break;
                 }
                 default: