From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22641 invoked by alias); 15 Sep 2003 08:59:17 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22549 invoked from network); 15 Sep 2003 08:59:10 -0000 Received: from unknown (HELO sohm.kpit.com) (203.129.230.82) by sources.redhat.com with SMTP; 15 Sep 2003 08:59:10 -0000 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C37B67.17B76A10" Subject: RFA - PATCH - Support H8/300H and H8S Normal Mode for GDB Date: Mon, 15 Sep 2003 08:59:00 -0000 Message-ID: <69595093233BB547BB70CF5E492B63F201F7240B@sohm.kpit.com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: From: "Shrinivas Atre" To: X-SW-Source: 2003-09/txt/msg00323.txt.bz2 This is a multi-part message in MIME format. ------_=_NextPart_001_01C37B67.17B76A10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 19654 Hi, The attached patch enables debugging and simulation of H8/300H and H8S=20 Normal Mode binaries in GDB. Is that OK for mainline and 6.0 branch ? The patches are attached as well as included inline. Regards, Shrinivas =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Changelog: 2003-09-15 Shrinivas Atre * bfd/coff-h8300.c (funcvec_hash_newfunc): Handle normal mode (h8300_reloc16_extra_cases) : Ditto (h8300_bfd_link_add_symbols) : Ditto * gdb/config/h8300/tm-h8300.h : Addition of extern variable Normalmod= e=20 * gdb/h8300-tdep.c (BINWORD): Update BINWORD for Normalmode (h8300_examine_prologue): Use Normalmode flag (h8300_gdbarch_init): Set architecture info for normal mode * sim/h8300/compile.c : Addition of extern variable Normalmode=20 (SP) : Handle normal mode=20 (bitfrom) : Use normal mode flag to return suitable value (lvalue) : Use normal mode flag to return command line location (decode) : Decode instruction correctly for normal mode (init_pointers) : Initialise memory correctly for normal mode (sim_resume) : Handle cases for normal mode using normal mode flag (sim_store_register) : Handle 2 byte PC for normal mode=20 (sim_fetch_register) : Handle 2 byte PC for normal mode (set_h8300h) : Set normal mode flag as per architechture (sim_load) : Allocate 64K for normal mode instead of bigger memory =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- src/bfd/coff-h8300.c.orig Mon Sep 15 14:14:58 2003 +++ src/bfd/coff-h8300.c Mon Sep 15 14:10:22 2003 @@ -154,7 +154,9 @@ funcvec_hash_newfunc (struct bfd_hash_en /* Bump the offset at which we store entries in the function vector. We'd like to bump up the size of the vectors section, but it's not easily available here. */ - if (bfd_get_mach (table->abfd) =3D=3D bfd_mach_h8300) + if (bfd_get_mach (table->abfd) =3D=3D bfd_mach_h8300 + || bfd_get_mach (table->abfd) =3D=3D bfd_mach_h8300hn + || bfd_get_mach (table->abfd) =3D=3D bfd_mach_h8300sn) table->offset +=3D 2; else if (bfd_get_mach (table->abfd) =3D=3D bfd_mach_h8300h || bfd_get_mach (table->abfd) =3D=3D bfd_mach_h8300s) @@ -1124,7 +1126,9 @@ h8300_reloc16_extra_cases (bfd *abfd, st src_address++; =20 /* Now create an entry in the function vector itself. */ - if (bfd_get_mach (input_section->owner) =3D=3D bfd_mach_h8300) + if (bfd_get_mach (input_section->owner) =3D=3D bfd_mach_h8300 + || bfd_get_mach (input_section->owner) =3D=3D bfd_mach_h8300hn + || bfd_get_mach (input_section->owner) =3D=3D bfd_mach_h8300sn) bfd_put_16 (abfd, bfd_coff_reloc16_get_value (reloc, link_info, @@ -1304,7 +1308,9 @@ h8300_bfd_link_add_symbols (bfd *abfd, s =20 /* Bump the size of the vectors section. Each vector takes 2 bytes on the h8300 and 4 bytes on the h8300h. */ - if (bfd_get_mach (abfd) =3D=3D bfd_mach_h8300) + if (bfd_get_mach (abfd) =3D=3D bfd_mach_h8300 + || bfd_get_mach (abfd) =3D=3D bfd_mach_h8300hn + || bfd_get_mach (abfd) =3D=3D bfd_mach_h8300sn) htab->vectors_sec->_raw_size +=3D 2; else if (bfd_get_mach (abfd) =3D=3D bfd_mach_h8300h || bfd_get_mach (abfd) =3D=3D bfd_mach_h8300s) --------------------------------------------------------------------- --- src/gdb/config/h8300/tm-h8300.h.orig Mon Sep 15 10:46:23 2003 +++ src/gdb/config/h8300/tm-h8300.h Mon Sep 15 13:32:23 2003 @@ -26,6 +26,7 @@ GDB_TARGET_IS_H8300 in remote-e7000.c */ extern int h8300hmode; extern int h8300smode; +extern int NormalMode; /* 1 - Normal Mode , 0 - Advanced mode */ extern int h8300sxmode; #define GDB_TARGET_IS_H8300 =20 --------------------------------------------------------------------- --- src/gdb/h8300-tdep.c.orig Mon Sep 15 10:43:31 2003 +++ src/gdb/h8300-tdep.c Mon Sep 15 13:32:30 2003 @@ -49,7 +49,7 @@ enum h8300h_reg_size =3D 4, h8300_max_reg_size =3D 4, }; -#define BINWORD (h8300hmode ? h8300h_reg_size : h8300_reg_size) +#define BINWORD (h8300hmode && 0 =3D=3D NormalMode ? h8300h_reg_size : h83= 00_reg_size) =20 enum gdb_regnum { @@ -350,7 +350,7 @@ h8300_examine_prologue (register CORE_AD } =20 /* If the PC isn't valid, quit now. */ - if (ip =3D=3D 0 || ip & (h8300hmode ? ~0xffffff : ~0xffff)) + if (ip =3D=3D 0 || ip & (h8300hmode && 0 =3D=3D NormalMode ? ~0xffffff := ~0xffff)) return 0; =20 next_ip =3D h8300_next_prologue_insn (ip, limit, &insn_word); @@ -1214,8 +1214,26 @@ h8300_gdbarch_init (struct gdbarch_info=20 set_gdbarch_store_return_value (gdbarch, h8300_store_return_value); set_gdbarch_print_insn (gdbarch, print_insn_h8300); break; - case bfd_mach_h8300h: case bfd_mach_h8300hn: + NormalMode =3D 1; + h8300sxmode =3D 0; + h8300smode =3D 0; + h8300hmode =3D 1; + set_gdbarch_num_regs (gdbarch, 13); + set_gdbarch_num_pseudo_regs (gdbarch, 1); + set_gdbarch_ecoff_reg_to_regnum (gdbarch, h8300_dbg_reg_to_regnum); + set_gdbarch_dwarf_reg_to_regnum (gdbarch, h8300_dbg_reg_to_regnum); + set_gdbarch_dwarf2_reg_to_regnum (gdbarch, h8300_dbg_reg_to_regnum); + set_gdbarch_stab_reg_to_regnum (gdbarch, h8300_dbg_reg_to_regnum); + set_gdbarch_register_name (gdbarch, h8300_register_name); + set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT); + set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); + set_gdbarch_extract_return_value (gdbarch, h8300h_extract_return_val= ue); + set_gdbarch_store_return_value (gdbarch, h8300h_store_return_value); + set_gdbarch_print_insn (gdbarch, print_insn_h8300h); + break; + case bfd_mach_h8300h: + NormalMode =3D 0; h8300sxmode =3D 0; h8300smode =3D 0; h8300hmode =3D 1; @@ -1232,8 +1250,26 @@ h8300_gdbarch_init (struct gdbarch_info=20 set_gdbarch_store_return_value (gdbarch, h8300h_store_return_value); set_gdbarch_print_insn (gdbarch, print_insn_h8300h); break; - case bfd_mach_h8300s: case bfd_mach_h8300sn: + NormalMode =3D 1; + h8300sxmode =3D 0; + h8300smode =3D 1; + h8300hmode =3D 1; + set_gdbarch_num_regs (gdbarch, 16); + set_gdbarch_num_pseudo_regs (gdbarch, 2); + set_gdbarch_ecoff_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_dwarf_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_dwarf2_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_stab_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_register_name (gdbarch, h8300s_register_name); + set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT); + set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); + set_gdbarch_extract_return_value (gdbarch, h8300h_extract_return_val= ue); + set_gdbarch_store_return_value (gdbarch, h8300h_store_return_value); + set_gdbarch_print_insn (gdbarch, print_insn_h8300s); + break; + case bfd_mach_h8300s: + NormalMode =3D 0; h8300sxmode =3D 0; h8300smode =3D 1; h8300hmode =3D 1; @@ -1250,8 +1286,26 @@ h8300_gdbarch_init (struct gdbarch_info=20 set_gdbarch_store_return_value (gdbarch, h8300h_store_return_value); set_gdbarch_print_insn (gdbarch, print_insn_h8300s); break; - case bfd_mach_h8300sx: case bfd_mach_h8300sxn: + NormalMode =3D 1; + h8300sxmode =3D 1; + h8300smode =3D 1; + h8300hmode =3D 1; + set_gdbarch_num_regs (gdbarch, 18); + set_gdbarch_num_pseudo_regs (gdbarch, 2); + set_gdbarch_ecoff_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_dwarf_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_dwarf2_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_stab_reg_to_regnum (gdbarch, h8300s_dbg_reg_to_regnum); + set_gdbarch_register_name (gdbarch, h8300sx_register_name); + set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT); + set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); + set_gdbarch_extract_return_value (gdbarch, h8300h_extract_return_val= ue); + set_gdbarch_store_return_value (gdbarch, h8300h_store_return_value); + set_gdbarch_print_insn (gdbarch, print_insn_h8300s); + break; + case bfd_mach_h8300sx: + NormalMode =3D 0; h8300sxmode =3D 1; h8300smode =3D 1; h8300hmode =3D 1; --------------------------------------------------------------------- --- src/sim/h8300/compile.c.orig Mon Sep 15 14:00:52 2003 +++ src/sim/h8300/compile.c Mon Sep 15 14:07:27 2003 @@ -53,7 +53,7 @@ static void set_simcache_size (SIM_DESC, =20 #define X(op, size) (op * 4 + size) =20 -#define SP (h8300hmode ? SL : SW) +#define SP (h8300hmode && 0 =3D=3D NormalMode ? SL : SW) =20 #define h8_opcodes ops #define DEFINE_TABLE @@ -510,6 +510,7 @@ enum { POLL_QUIT_INTERVAL =3D 0x80000 }; =20 int h8300hmode =3D 0; int h8300smode =3D 0; +int NormalMode =3D 0; int h8300sxmode =3D 0; =20 static int memory_size; @@ -539,7 +540,7 @@ bitfrom (int x) case L_32: return SL; case L_P: - return h8300hmode ? SL : SW; + return (h8300hmode && 0 =3D=3D NormalMode)? SL : SW; } return 0; } @@ -575,9 +576,9 @@ lvalue (SIM_DESC sd, int x, int rn, unsi static int cmdline_location() { - if (h8300smode) + if (h8300smode && 0 =3D=3D NormalMode) return 0xffff00L; - else if (h8300hmode) + else if (h8300hmode && 0 =3D=3D NormalMode) return 0x2ff00L; else return 0xff00L; @@ -837,8 +838,10 @@ decode (SIM_DESC sd, int addr, unsigned=20 } else if ((looking_for & MODE) =3D=3D VECIND) { - /* FIXME: Multiplier should be 2 for "normal" mode. */ - cst[opnum] =3D ((data[1] & 0x7f) + 0x80) * 4; + if(NormalMode) + cst[opnum] =3D ((data[1] & 0x7f) + 0x80) * 2; + else + cst[opnum] =3D ((data[1] & 0x7f) + 0x80) * 4; cst[opnum] +=3D h8_get_vbr (sd); /* Add vector base reg. */ } else if ((looking_for & SIZE) =3D=3D L_32) @@ -1774,9 +1777,9 @@ init_pointers (SIM_DESC sd) =20 littleendian.i =3D 1; =20 - if (h8300smode) + if (h8300smode && 0 =3D=3D NormalMode) memory_size =3D H8300S_MSIZE; - else if (h8300hmode) + else if (h8300hmode && 0 =3D=3D NormalMode) memory_size =3D H8300H_MSIZE; else memory_size =3D H8300_MSIZE; @@ -1950,7 +1953,7 @@ sim_resume (SIM_DESC sd, int step, int s } =20 oldmask =3D h8_get_mask (sd); - if (!h8300hmode) + if (!h8300hmode || NormalMode) h8_set_mask (sd, 0xffff); do { @@ -2790,7 +2793,7 @@ sim_resume (SIM_DESC sd, int step, int s =20 /* Setting char_ptr_size to the sizeof (char *) on the different architectures. */ - if (h8300hmode || h8300smode) + if ((h8300hmode || h8300smode) && 0 =3D=3D NormalMode) { char_ptr_size =3D 4; } @@ -2859,7 +2862,7 @@ sim_resume (SIM_DESC sd, int step, int s for (i =3D 0; i < no_of_args; i++) { /* Saving the argv pointer. */ - if (h8300hmode || h8300smode) + if ((h8300hmode || h8300smode) && 0 =3D=3D NormalMode) { SET_MEMORY_L (argv_ptrs_location, argv_ptrs[i]); } @@ -2875,7 +2878,7 @@ sim_resume (SIM_DESC sd, int step, int s =20 /* Required by POSIX, Setting 0x0 at the end of the list of argv pointers. */ - if (h8300hmode || h8300smode) + if ((h8300hmode || h8300smode) && 0 =3D=3D NormalMode) { SET_MEMORY_L (old_sp, 0x0); } @@ -2914,7 +2917,7 @@ sim_resume (SIM_DESC sd, int step, int s =20 /* Setting filename_ptr to first argument of open, */ /* and trying to get mode. */ - if (h8300sxmode || h8300hmode || h8300smode) + if ((h8300sxmode || h8300hmode || h8300smode) && 0 =3D=3D NormalMode) { filename_ptr =3D GET_L_REG (0); mode =3D GET_MEMORY_L (h8_get_reg (sd, SP_REGNUM) + 4); @@ -2965,8 +2968,8 @@ sim_resume (SIM_DESC sd, int step, int s int read_return =3D 0; /* Return value from callback to read. */ =20 - fd =3D h8300hmode ? GET_L_REG (0) : GET_W_REG (0); - buf_size =3D h8300hmode ? GET_L_REG (2) : GET_W_REG (2); + fd =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (0) : GET_W_RE= G (0); + buf_size =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (2) : GE= T_W_REG (2); =20 char_ptr =3D (char *) malloc (sizeof (char) * buf_size); =20 @@ -3000,9 +3003,9 @@ sim_resume (SIM_DESC sd, int step, int s int write_return; /* Return value from callback to write. */ int i =3D 0; /* Loop counter */ =20 - fd =3D h8300hmode ? GET_L_REG (0) : GET_W_REG (0); - char_ptr =3D h8300hmode ? GET_L_REG (1) : GET_W_REG (1); - len =3D h8300hmode ? GET_L_REG (2) : GET_W_REG (2); + fd =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (0) : GET_W_RE= G (0); + char_ptr =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (1) : GE= T_W_REG (1); + len =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (2) : GET_W_R= EG (2); =20 /* Allocating space for the characters to be written. */ ptr =3D (char *) malloc (sizeof (char) * len); @@ -3032,9 +3035,9 @@ sim_resume (SIM_DESC sd, int step, int s int origin; /* Origin */ int lseek_return; /* Return value from callback to lseek. */ =20 - fd =3D h8300hmode ? GET_L_REG (0) : GET_W_REG (0); - offset =3D h8300hmode ? GET_L_REG (1) : GET_W_REG (1); - origin =3D h8300hmode ? GET_L_REG (2) : GET_W_REG (2); + fd =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (0) : GET_W_RE= G (0); + offset =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (1) : GET_= W_REG (1); + origin =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (2) : GET_= W_REG (2); =20 /* Callback lseek and return offset. */ lseek_return =3D @@ -3050,7 +3053,7 @@ sim_resume (SIM_DESC sd, int step, int s int fd; /* File descriptor */ int close_return; /* Return value from callback to close. */ =20 - fd =3D h8300hmode ? GET_L_REG (0) : GET_W_REG (0); + fd =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (0) : GET_W_RE= G (0); =20 /* Callback close and return. */ close_return =3D sim_callback->close (sim_callback, fd); @@ -3068,10 +3071,10 @@ sim_resume (SIM_DESC sd, int step, int s int stat_ptr; /* Pointer to stat record. */ char *temp_stat_ptr; /* Temporary stat_rec pointer. */ =20 - fd =3D h8300hmode ? GET_L_REG (0) : GET_W_REG (0); + fd =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (0) : GET_W_RE= G (0); =20 /* Setting stat_ptr to second argument of stat. */ - stat_ptr =3D h8300hmode ? GET_L_REG (1) : GET_W_REG (1); + stat_ptr =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (1) : GE= T_W_REG (1); =20 /* Callback stat and return. */ fstat_return =3D sim_callback->fstat (sim_callback, fd, &stat_rec); @@ -3120,7 +3123,7 @@ sim_resume (SIM_DESC sd, int step, int s int i =3D 0; /* Loop Counter */ =20 /* Setting filename_ptr to first argument of open. */ - filename_ptr =3D h8300hmode ? GET_L_REG (0) : GET_W_REG (0); + filename_ptr =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (0) = : GET_W_REG (0); =20 /* Trying to find the length of the filename. */ temp_char =3D GET_MEMORY_B (h8_get_reg (sd, 0)); @@ -3144,7 +3147,7 @@ sim_resume (SIM_DESC sd, int step, int s =20 /* Setting stat_ptr to second argument of stat. */ /* stat_ptr =3D h8_get_reg (sd, 1); */ - stat_ptr =3D h8300hmode ? GET_L_REG (1) : GET_W_REG (1); + stat_ptr =3D (h8300hmode && 0 =3D=3D NormalMode) ? GET_L_REG (1) : GE= T_W_REG (1); =20 /* Callback stat and return. */ stat_return =3D @@ -3552,7 +3555,7 @@ sim_resume (SIM_DESC sd, int step, int s call: tmp =3D h8_get_reg (sd, SP_REGNUM); =20 - if (h8300hmode) + if (h8300hmode && 0 =3D=3D NormalMode) { tmp -=3D 4; SET_MEMORY_L (tmp, code->next_pc); @@ -3584,7 +3587,7 @@ sim_resume (SIM_DESC sd, int step, int s h8_set_exr (sd, GET_MEMORY_L (tmp)); tmp +=3D 4; } - if (h8300hmode) + if (h8300hmode && 0 =3D=3D NormalMode) { h8_set_ccr (sd, GET_MEMORY_L (tmp)); tmp +=3D 4; @@ -3607,7 +3610,7 @@ sim_resume (SIM_DESC sd, int step, int s rts: tmp =3D h8_get_reg (sd, SP_REGNUM); =20 - if (h8300hmode) + if (h8300hmode && 0 =3D=3D NormalMode) { pc =3D GET_MEMORY_L (tmp); tmp +=3D 4; @@ -3658,10 +3661,20 @@ sim_resume (SIM_DESC sd, int step, int s goto end; /* res is vector number. */ =20 tmp =3D h8_get_reg (sd, SP_REGNUM); - tmp -=3D 4; - SET_MEMORY_L (tmp, code->next_pc); - tmp -=3D 4;=20 - SET_MEMORY_L (tmp, h8_get_ccr (sd)); + if(NormalMode) + { + tmp -=3D 2; + SET_MEMORY_W (tmp, code->next_pc); + tmp -=3D 2; + SET_MEMORY_W (tmp, h8_get_ccr (sd)); + } + else + { + tmp -=3D 4; + SET_MEMORY_L (tmp, code->next_pc); + tmp -=3D 4; + SET_MEMORY_L (tmp, h8_get_ccr (sd)); + } intMaskBit =3D 1; BUILDSR (sd); =20 @@ -3673,8 +3686,10 @@ sim_resume (SIM_DESC sd, int step, int s =20 h8_set_reg (sd, SP_REGNUM, tmp); =20 - /* FIXME: "normal" mode should use 2-byte ptrs. */ - pc =3D GET_MEMORY_L (0x20 + res * 4); + if(NormalMode) + pc =3D GET_MEMORY_L (0x10 + res * 2); /* Vector addresses are 0x10,0x= 12,0x14 and 0x16 */ + else + pc =3D GET_MEMORY_L (0x20 + res * 4); goto end; =20 case O (O_BPT, SN): @@ -4703,7 +4718,10 @@ sim_store_register (SIM_DESC sd, int rn, switch (rn) { case PC_REGNUM: - h8_set_pc (sd, intval); + if(NormalMode) + h8_set_pc (sd, shortval); /* PC for Normal mode is 2 bytes */ + else + h8_set_pc (sd, intval); break; default: (*sim_callback->printf_filtered) (sim_callback,=20 @@ -4814,7 +4832,8 @@ sim_fetch_register (SIM_DESC sd, int rn, longreg =3D 1; break; } - if (h8300hmode || longreg) + /* In Normal mode PC is 2 byte, but other registers are 4 byte */ + if ((h8300hmode || longreg) && !(rn =3D=3D PC_REGNUM && NormalMode)) { buf[0] =3D v >> 24; buf[1] =3D v >> 16; @@ -4919,6 +4938,9 @@ set_h8300h (unsigned long machine) =20 if (machine =3D=3D bfd_mach_h8300h || machine =3D=3D bfd_mach_h8300hn ||= h8300smode) h8300hmode =3D 1; + + if(machine =3D=3D bfd_mach_h8300hn || machine =3D=3D bfd_mach_h8300sn ||= machine =3D=3D bfd_mach_h8300sxn) + NormalMode =3D 1; } =20 /* Cover function of sim_state_free to free the cpu buffers as well. */ @@ -5054,9 +5076,9 @@ sim_load (SIM_DESC sd, char *prog, bfd * switching between H8/300 and H8/300H programs without exiting gdb. */ =20 - if (h8300smode) + if (h8300smode && 0 =3D=3D NormalMode) memory_size =3D H8300S_MSIZE; - else if (h8300hmode) + else if (h8300hmode && 0 =3D=3D NormalMode) memory_size =3D H8300H_MSIZE; else memory_size =3D H8300_MSIZE; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D ------_=_NextPart_001_01C37B67.17B76A10 Content-Type: application/octet-stream; name="h8300-tdep.diff" Content-Transfer-Encoding: base64 Content-Description: h8300-tdep.diff Content-Disposition: attachment; filename="h8300-tdep.diff" Content-length: 6182 LS0tIHNyYy9nZGIvaDgzMDAtdGRlcC5jLm9yaWcJTW9uIFNlcCAxNSAxMDo0 MzozMSAyMDAzCisrKyBzcmMvZ2RiL2g4MzAwLXRkZXAuYwlNb24gU2VwIDE1 IDEzOjMyOjMwIDIwMDMKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bQogICBoODMw MGhfcmVnX3NpemUgPSA0LAogICBoODMwMF9tYXhfcmVnX3NpemUgPSA0LAog fTsKLSNkZWZpbmUgQklOV09SRCAoaDgzMDBobW9kZSA/IGg4MzAwaF9yZWdf c2l6ZSA6IGg4MzAwX3JlZ19zaXplKQorI2RlZmluZSBCSU5XT1JEIChoODMw MGhtb2RlICYmIDAgPT0gTm9ybWFsTW9kZSA/IGg4MzAwaF9yZWdfc2l6ZSA6 IGg4MzAwX3JlZ19zaXplKQogCiBlbnVtIGdkYl9yZWdudW0KIHsKQEAgLTM1 MCw3ICszNTAsNyBAQCBoODMwMF9leGFtaW5lX3Byb2xvZ3VlIChyZWdpc3Rl ciBDT1JFX0FECiAgICAgfQogCiAgIC8qIElmIHRoZSBQQyBpc24ndCB2YWxp ZCwgcXVpdCBub3cuICAqLwotICBpZiAoaXAgPT0gMCB8fCBpcCAmIChoODMw MGhtb2RlID8gfjB4ZmZmZmZmIDogfjB4ZmZmZikpCisgIGlmIChpcCA9PSAw IHx8IGlwICYgKGg4MzAwaG1vZGUgJiYgMCA9PSBOb3JtYWxNb2RlID8gfjB4 ZmZmZmZmIDogfjB4ZmZmZikpCiAgICAgcmV0dXJuIDA7CiAKICAgbmV4dF9p cCA9IGg4MzAwX25leHRfcHJvbG9ndWVfaW5zbiAoaXAsIGxpbWl0LCAmaW5z bl93b3JkKTsKQEAgLTEyMTQsOCArMTIxNCwyNiBAQCBoODMwMF9nZGJhcmNo X2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gCiAgICAgICBzZXRfZ2RiYXJj aF9zdG9yZV9yZXR1cm5fdmFsdWUgKGdkYmFyY2gsIGg4MzAwX3N0b3JlX3Jl dHVybl92YWx1ZSk7CiAgICAgICBzZXRfZ2RiYXJjaF9wcmludF9pbnNuIChn ZGJhcmNoLCBwcmludF9pbnNuX2g4MzAwKTsKICAgICAgIGJyZWFrOwotICAg IGNhc2UgYmZkX21hY2hfaDgzMDBoOgogICAgIGNhc2UgYmZkX21hY2hfaDgz MDBobjoKKyAgICAgIE5vcm1hbE1vZGUgPSAxOworICAgICAgaDgzMDBzeG1v ZGUgPSAwOworICAgICAgaDgzMDBzbW9kZSA9IDA7CisgICAgICBoODMwMGht b2RlID0gMTsKKyAgICAgIHNldF9nZGJhcmNoX251bV9yZWdzIChnZGJhcmNo LCAxMyk7CisgICAgICBzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MgKGdk YmFyY2gsIDEpOworICAgICAgc2V0X2dkYmFyY2hfZWNvZmZfcmVnX3RvX3Jl Z251bSAoZ2RiYXJjaCwgaDgzMDBfZGJnX3JlZ190b19yZWdudW0pOworICAg ICAgc2V0X2dkYmFyY2hfZHdhcmZfcmVnX3RvX3JlZ251bSAoZ2RiYXJjaCwg aDgzMDBfZGJnX3JlZ190b19yZWdudW0pOworICAgICAgc2V0X2dkYmFyY2hf ZHdhcmYyX3JlZ190b19yZWdudW0gKGdkYmFyY2gsIGg4MzAwX2RiZ19yZWdf dG9fcmVnbnVtKTsKKyAgICAgIHNldF9nZGJhcmNoX3N0YWJfcmVnX3RvX3Jl Z251bSAoZ2RiYXJjaCwgaDgzMDBfZGJnX3JlZ190b19yZWdudW0pOworICAg ICAgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZSAoZ2RiYXJjaCwgaDgzMDBf cmVnaXN0ZXJfbmFtZSk7CisgICAgICBzZXRfZ2RiYXJjaF9wdHJfYml0IChn ZGJhcmNoLCAyICogVEFSR0VUX0NIQVJfQklUKTsKKyAgICAgIHNldF9nZGJh cmNoX2FkZHJfYml0IChnZGJhcmNoLCAyICogVEFSR0VUX0NIQVJfQklUKTsK KyAgICAgIHNldF9nZGJhcmNoX2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChnZGJh cmNoLCBoODMwMGhfZXh0cmFjdF9yZXR1cm5fdmFsdWUpOworICAgICAgc2V0 X2dkYmFyY2hfc3RvcmVfcmV0dXJuX3ZhbHVlIChnZGJhcmNoLCBoODMwMGhf c3RvcmVfcmV0dXJuX3ZhbHVlKTsKKyAgICAgIHNldF9nZGJhcmNoX3ByaW50 X2luc24gKGdkYmFyY2gsIHByaW50X2luc25faDgzMDBoKTsKKyAgICAgIGJy ZWFrOworICAgIGNhc2UgYmZkX21hY2hfaDgzMDBoOgorICAgICAgTm9ybWFs TW9kZSA9IDA7CiAgICAgICBoODMwMHN4bW9kZSA9IDA7CiAgICAgICBoODMw MHNtb2RlID0gMDsKICAgICAgIGg4MzAwaG1vZGUgPSAxOwpAQCAtMTIzMiw4 ICsxMjUwLDI2IEBAIGg4MzAwX2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyAKICAgICAgIHNldF9nZGJhcmNoX3N0b3JlX3JldHVybl92YWx1 ZSAoZ2RiYXJjaCwgaDgzMDBoX3N0b3JlX3JldHVybl92YWx1ZSk7CiAgICAg ICBzZXRfZ2RiYXJjaF9wcmludF9pbnNuIChnZGJhcmNoLCBwcmludF9pbnNu X2g4MzAwaCk7CiAgICAgICBicmVhazsKLSAgICBjYXNlIGJmZF9tYWNoX2g4 MzAwczoKICAgICBjYXNlIGJmZF9tYWNoX2g4MzAwc246CisgICAgICBOb3Jt YWxNb2RlID0gMTsKKyAgICAgIGg4MzAwc3htb2RlID0gMDsKKyAgICAgIGg4 MzAwc21vZGUgPSAxOworICAgICAgaDgzMDBobW9kZSA9IDE7CisgICAgICBz ZXRfZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCwgMTYpOworICAgICAgc2V0 X2dkYmFyY2hfbnVtX3BzZXVkb19yZWdzIChnZGJhcmNoLCAyKTsKKyAgICAg IHNldF9nZGJhcmNoX2Vjb2ZmX3JlZ190b19yZWdudW0gKGdkYmFyY2gsIGg4 MzAwc19kYmdfcmVnX3RvX3JlZ251bSk7CisgICAgICBzZXRfZ2RiYXJjaF9k d2FyZl9yZWdfdG9fcmVnbnVtIChnZGJhcmNoLCBoODMwMHNfZGJnX3JlZ190 b19yZWdudW0pOworICAgICAgc2V0X2dkYmFyY2hfZHdhcmYyX3JlZ190b19y ZWdudW0gKGdkYmFyY2gsIGg4MzAwc19kYmdfcmVnX3RvX3JlZ251bSk7Cisg ICAgICBzZXRfZ2RiYXJjaF9zdGFiX3JlZ190b19yZWdudW0gKGdkYmFyY2gs IGg4MzAwc19kYmdfcmVnX3RvX3JlZ251bSk7CisgICAgICBzZXRfZ2RiYXJj aF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBoODMwMHNfcmVnaXN0ZXJfbmFt ZSk7CisgICAgICBzZXRfZ2RiYXJjaF9wdHJfYml0IChnZGJhcmNoLCAyICog VEFSR0VUX0NIQVJfQklUKTsKKyAgICAgIHNldF9nZGJhcmNoX2FkZHJfYml0 IChnZGJhcmNoLCAyICogVEFSR0VUX0NIQVJfQklUKTsKKyAgICAgIHNldF9n ZGJhcmNoX2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChnZGJhcmNoLCBoODMwMGhf ZXh0cmFjdF9yZXR1cm5fdmFsdWUpOworICAgICAgc2V0X2dkYmFyY2hfc3Rv cmVfcmV0dXJuX3ZhbHVlIChnZGJhcmNoLCBoODMwMGhfc3RvcmVfcmV0dXJu X3ZhbHVlKTsKKyAgICAgIHNldF9nZGJhcmNoX3ByaW50X2luc24gKGdkYmFy Y2gsIHByaW50X2luc25faDgzMDBzKTsKKyAgICAgIGJyZWFrOworICAgIGNh c2UgYmZkX21hY2hfaDgzMDBzOgorICAgICAgTm9ybWFsTW9kZSA9IDA7CiAg ICAgICBoODMwMHN4bW9kZSA9IDA7CiAgICAgICBoODMwMHNtb2RlID0gMTsK ICAgICAgIGg4MzAwaG1vZGUgPSAxOwpAQCAtMTI1MCw4ICsxMjg2LDI2IEBA IGg4MzAwX2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyAKICAg ICAgIHNldF9nZGJhcmNoX3N0b3JlX3JldHVybl92YWx1ZSAoZ2RiYXJjaCwg aDgzMDBoX3N0b3JlX3JldHVybl92YWx1ZSk7CiAgICAgICBzZXRfZ2RiYXJj aF9wcmludF9pbnNuIChnZGJhcmNoLCBwcmludF9pbnNuX2g4MzAwcyk7CiAg ICAgICBicmVhazsKLSAgICBjYXNlIGJmZF9tYWNoX2g4MzAwc3g6CiAgICAg Y2FzZSBiZmRfbWFjaF9oODMwMHN4bjoKKyAgICAgIE5vcm1hbE1vZGUgPSAx OworICAgICAgaDgzMDBzeG1vZGUgPSAxOworICAgICAgaDgzMDBzbW9kZSA9 IDE7CisgICAgICBoODMwMGhtb2RlID0gMTsKKyAgICAgIHNldF9nZGJhcmNo X251bV9yZWdzIChnZGJhcmNoLCAxOCk7CisgICAgICBzZXRfZ2RiYXJjaF9u dW1fcHNldWRvX3JlZ3MgKGdkYmFyY2gsIDIpOworICAgICAgc2V0X2dkYmFy Y2hfZWNvZmZfcmVnX3RvX3JlZ251bSAoZ2RiYXJjaCwgaDgzMDBzX2RiZ19y ZWdfdG9fcmVnbnVtKTsKKyAgICAgIHNldF9nZGJhcmNoX2R3YXJmX3JlZ190 b19yZWdudW0gKGdkYmFyY2gsIGg4MzAwc19kYmdfcmVnX3RvX3JlZ251bSk7 CisgICAgICBzZXRfZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoZ2Ri YXJjaCwgaDgzMDBzX2RiZ19yZWdfdG9fcmVnbnVtKTsKKyAgICAgIHNldF9n ZGJhcmNoX3N0YWJfcmVnX3RvX3JlZ251bSAoZ2RiYXJjaCwgaDgzMDBzX2Ri Z19yZWdfdG9fcmVnbnVtKTsKKyAgICAgIHNldF9nZGJhcmNoX3JlZ2lzdGVy X25hbWUgKGdkYmFyY2gsIGg4MzAwc3hfcmVnaXN0ZXJfbmFtZSk7CisgICAg ICBzZXRfZ2RiYXJjaF9wdHJfYml0IChnZGJhcmNoLCAyICogVEFSR0VUX0NI QVJfQklUKTsKKyAgICAgIHNldF9nZGJhcmNoX2FkZHJfYml0IChnZGJhcmNo LCAyICogVEFSR0VUX0NIQVJfQklUKTsKKyAgICAgIHNldF9nZGJhcmNoX2V4 dHJhY3RfcmV0dXJuX3ZhbHVlIChnZGJhcmNoLCBoODMwMGhfZXh0cmFjdF9y ZXR1cm5fdmFsdWUpOworICAgICAgc2V0X2dkYmFyY2hfc3RvcmVfcmV0dXJu X3ZhbHVlIChnZGJhcmNoLCBoODMwMGhfc3RvcmVfcmV0dXJuX3ZhbHVlKTsK KyAgICAgIHNldF9nZGJhcmNoX3ByaW50X2luc24gKGdkYmFyY2gsIHByaW50 X2luc25faDgzMDBzKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgYmZkX21h Y2hfaDgzMDBzeDoKKyAgICAgIE5vcm1hbE1vZGUgPSAwOwogICAgICAgaDgz MDBzeG1vZGUgPSAxOwogICAgICAgaDgzMDBzbW9kZSA9IDE7CiAgICAgICBo ODMwMGhtb2RlID0gMTsK ------_=_NextPart_001_01C37B67.17B76A10 Content-Type: application/octet-stream; name="compile.diff" Content-Transfer-Encoding: base64 Content-Description: compile.diff Content-Disposition: attachment; filename="compile.diff" Content-length: 13750 LS0tIHNyYy9zaW0vaDgzMDAvY29tcGlsZS5jLm9yaWcJTW9uIFNlcCAxNSAx NDowMDo1MiAyMDAzCisrKyBzcmMvc2ltL2g4MzAwL2NvbXBpbGUuYwlNb24g U2VwIDE1IDE0OjA3OjI3IDIwMDMKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGlj IHZvaWQgc2V0X3NpbWNhY2hlX3NpemUgKFNJTV9ERVNDLAogCiAjZGVmaW5l IFgob3AsIHNpemUpICAob3AgKiA0ICsgc2l6ZSkKIAotI2RlZmluZSBTUCAo aDgzMDBobW9kZSA/IFNMIDogU1cpCisjZGVmaW5lIFNQIChoODMwMGhtb2Rl ICYmIDAgPT0gTm9ybWFsTW9kZSA/IFNMIDogU1cpCiAKICNkZWZpbmUgaDhf b3Bjb2RlcyBvcHMKICNkZWZpbmUgREVGSU5FX1RBQkxFCkBAIC01MTAsNiAr NTEwLDcgQEAgZW51bSB7IFBPTExfUVVJVF9JTlRFUlZBTCA9IDB4ODAwMDAg fTsKIAogaW50IGg4MzAwaG1vZGUgID0gMDsKIGludCBoODMwMHNtb2RlICA9 IDA7CitpbnQgTm9ybWFsTW9kZSAgPSAwOwogaW50IGg4MzAwc3htb2RlID0g MDsKIAogc3RhdGljIGludCBtZW1vcnlfc2l6ZTsKQEAgLTUzOSw3ICs1NDAs NyBAQCBiaXRmcm9tIChpbnQgeCkKICAgICBjYXNlIExfMzI6CiAgICAgICBy ZXR1cm4gU0w7CiAgICAgY2FzZSBMX1A6Ci0gICAgICByZXR1cm4gaDgzMDBo bW9kZSA/IFNMIDogU1c7CisgICAgICByZXR1cm4gKGg4MzAwaG1vZGUgJiYg MCA9PSBOb3JtYWxNb2RlKT8gU0wgOiBTVzsKICAgICB9CiAgIHJldHVybiAw OwogfQpAQCAtNTc1LDkgKzU3Niw5IEBAIGx2YWx1ZSAoU0lNX0RFU0Mgc2Qs IGludCB4LCBpbnQgcm4sIHVuc2kKIHN0YXRpYyBpbnQKIGNtZGxpbmVfbG9j YXRpb24oKQogewotICBpZiAoaDgzMDBzbW9kZSkKKyAgaWYgKGg4MzAwc21v ZGUgJiYgMCA9PSBOb3JtYWxNb2RlKQogICAgIHJldHVybiAweGZmZmYwMEw7 Ci0gIGVsc2UgaWYgKGg4MzAwaG1vZGUpCisgIGVsc2UgaWYgKGg4MzAwaG1v ZGUgJiYgMCA9PSBOb3JtYWxNb2RlKQogICAgIHJldHVybiAweDJmZjAwTDsK ICAgZWxzZQogICAgIHJldHVybiAweGZmMDBMOwpAQCAtODM3LDggKzgzOCwx MCBAQCBkZWNvZGUgKFNJTV9ERVNDIHNkLCBpbnQgYWRkciwgdW5zaWduZWQg CiAJCX0KIAkgICAgICBlbHNlIGlmICgobG9va2luZ19mb3IgJiBNT0RFKSA9 PSBWRUNJTkQpCiAJCXsKLQkJICAvKiBGSVhNRTogTXVsdGlwbGllciBzaG91 bGQgYmUgMiBmb3IgIm5vcm1hbCIgbW9kZS4gICovCi0JCSAgY3N0W29wbnVt XSA9ICgoZGF0YVsxXSAmIDB4N2YpICsgMHg4MCkgKiA0OworCQkgIGlmKE5v cm1hbE1vZGUpCisJCSAgICBjc3Rbb3BudW1dID0gKChkYXRhWzFdICYgMHg3 ZikgKyAweDgwKSAqIDI7CisJCSAgZWxzZQorCQkgICAgY3N0W29wbnVtXSA9 ICgoZGF0YVsxXSAmIDB4N2YpICsgMHg4MCkgKiA0OwogCQkgIGNzdFtvcG51 bV0gKz0gaDhfZ2V0X3ZiciAoc2QpOyAvKiBBZGQgdmVjdG9yIGJhc2UgcmVn LiAgKi8KIAkJfQogCSAgICAgIGVsc2UgaWYgKChsb29raW5nX2ZvciAmIFNJ WkUpID09IExfMzIpCkBAIC0xNzc0LDkgKzE3NzcsOSBAQCBpbml0X3BvaW50 ZXJzIChTSU1fREVTQyBzZCkKIAogICAgICAgbGl0dGxlZW5kaWFuLmkgPSAx OwogCi0gICAgICBpZiAoaDgzMDBzbW9kZSkKKyAgICAgIGlmIChoODMwMHNt b2RlICYmIDAgPT0gTm9ybWFsTW9kZSkKIAltZW1vcnlfc2l6ZSA9IEg4MzAw U19NU0laRTsKLSAgICAgIGVsc2UgaWYgKGg4MzAwaG1vZGUpCisgICAgICBl bHNlIGlmIChoODMwMGhtb2RlICYmIDAgPT0gTm9ybWFsTW9kZSkKIAltZW1v cnlfc2l6ZSA9IEg4MzAwSF9NU0laRTsKICAgICAgIGVsc2UKIAltZW1vcnlf c2l6ZSA9IEg4MzAwX01TSVpFOwpAQCAtMTk1MCw3ICsxOTUzLDcgQEAgc2lt X3Jlc3VtZSAoU0lNX0RFU0Mgc2QsIGludCBzdGVwLCBpbnQgcwogICAgIH0K IAogICBvbGRtYXNrID0gaDhfZ2V0X21hc2sgKHNkKTsKLSAgaWYgKCFoODMw MGhtb2RlKQorICBpZiAoIWg4MzAwaG1vZGUgfHwgTm9ybWFsTW9kZSkKICAg ICBoOF9zZXRfbWFzayAoc2QsIDB4ZmZmZik7CiAgIGRvCiAgICAgewpAQCAt Mjc5MCw3ICsyNzkzLDcgQEAgc2ltX3Jlc3VtZSAoU0lNX0RFU0Mgc2QsIGlu dCBzdGVwLCBpbnQgcwogCiAJICAgIC8qIFNldHRpbmcgY2hhcl9wdHJfc2l6 ZSB0byB0aGUgc2l6ZW9mIChjaGFyICopIG9uIHRoZSBkaWZmZXJlbnQKIAkg ICAgICAgYXJjaGl0ZWN0dXJlcy4gICovCi0JICAgIGlmIChoODMwMGhtb2Rl IHx8IGg4MzAwc21vZGUpCisJICAgIGlmICgoaDgzMDBobW9kZSB8fCBoODMw MHNtb2RlKSAmJiAwID09IE5vcm1hbE1vZGUpCiAJICAgICAgewogCQljaGFy X3B0cl9zaXplID0gNDsKIAkgICAgICB9CkBAIC0yODU5LDcgKzI4NjIsNyBA QCBzaW1fcmVzdW1lIChTSU1fREVTQyBzZCwgaW50IHN0ZXAsIGludCBzCiAJ ICAgIGZvciAoaSA9IDA7IGkgPCBub19vZl9hcmdzOyBpKyspCiAJICAgICAg ewogCQkvKiBTYXZpbmcgdGhlIGFyZ3YgcG9pbnRlci4gICovCi0JCWlmICho ODMwMGhtb2RlIHx8IGg4MzAwc21vZGUpCisJCWlmICgoaDgzMDBobW9kZSB8 fCBoODMwMHNtb2RlKSAmJiAwID09IE5vcm1hbE1vZGUpCiAJCSAgewogCQkg ICAgU0VUX01FTU9SWV9MIChhcmd2X3B0cnNfbG9jYXRpb24sIGFyZ3ZfcHRy c1tpXSk7CiAJCSAgfQpAQCAtMjg3NSw3ICsyODc4LDcgQEAgc2ltX3Jlc3Vt ZSAoU0lNX0RFU0Mgc2QsIGludCBzdGVwLCBpbnQgcwogCiAJICAgIC8qIFJl cXVpcmVkIGJ5IFBPU0lYLCBTZXR0aW5nIDB4MCBhdCB0aGUgZW5kIG9mIHRo ZSBsaXN0IG9mIGFyZ3YKIAkgICAgICAgcG9pbnRlcnMuICAqLwotCSAgICBp ZiAoaDgzMDBobW9kZSB8fCBoODMwMHNtb2RlKQorCSAgICBpZiAoKGg4MzAw aG1vZGUgfHwgaDgzMDBzbW9kZSkgJiYgMCA9PSBOb3JtYWxNb2RlKQogCSAg ICAgIHsKIAkJU0VUX01FTU9SWV9MIChvbGRfc3AsIDB4MCk7CiAJICAgICAg fQpAQCAtMjkxNCw3ICsyOTE3LDcgQEAgc2ltX3Jlc3VtZSAoU0lNX0RFU0Mg c2QsIGludCBzdGVwLCBpbnQgcwogCiAJICAgIC8qIFNldHRpbmcgZmlsZW5h bWVfcHRyIHRvIGZpcnN0IGFyZ3VtZW50IG9mIG9wZW4sICAqLwogCSAgICAv KiBhbmQgdHJ5aW5nIHRvIGdldCBtb2RlLiAgKi8KLQkgICAgaWYgKGg4MzAw c3htb2RlIHx8IGg4MzAwaG1vZGUgfHwgaDgzMDBzbW9kZSkKKwkgICAgaWYg KChoODMwMHN4bW9kZSB8fCBoODMwMGhtb2RlIHx8IGg4MzAwc21vZGUpICYm IDAgPT0gTm9ybWFsTW9kZSkKIAkgICAgICB7CiAJCWZpbGVuYW1lX3B0ciA9 IEdFVF9MX1JFRyAoMCk7CiAJCW1vZGUgPSBHRVRfTUVNT1JZX0wgKGg4X2dl dF9yZWcgKHNkLCBTUF9SRUdOVU0pICsgNCk7CkBAIC0yOTY1LDggKzI5Njgs OCBAQCBzaW1fcmVzdW1lIChTSU1fREVTQyBzZCwgaW50IHN0ZXAsIGludCBz CiAJICAgIGludCByZWFkX3JldHVybiA9IDA7CS8qIFJldHVybiB2YWx1ZSBm cm9tIGNhbGxiYWNrIHRvCiAJCQkJCSAgIHJlYWQuICAqLwogCi0JICAgIGZk ID0gaDgzMDBobW9kZSA/IEdFVF9MX1JFRyAoMCkgOiBHRVRfV19SRUcgKDAp OwotCSAgICBidWZfc2l6ZSA9IGg4MzAwaG1vZGUgPyBHRVRfTF9SRUcgKDIp IDogR0VUX1dfUkVHICgyKTsKKwkgICAgZmQgPSAoaDgzMDBobW9kZSAmJiAw ID09IE5vcm1hbE1vZGUpID8gR0VUX0xfUkVHICgwKSA6IEdFVF9XX1JFRyAo MCk7CisJICAgIGJ1Zl9zaXplID0gKGg4MzAwaG1vZGUgJiYgMCA9PSBOb3Jt YWxNb2RlKSA/IEdFVF9MX1JFRyAoMikgOiBHRVRfV19SRUcgKDIpOwogCiAJ ICAgIGNoYXJfcHRyID0gKGNoYXIgKikgbWFsbG9jIChzaXplb2YgKGNoYXIp ICogYnVmX3NpemUpOwogCkBAIC0zMDAwLDkgKzMwMDMsOSBAQCBzaW1fcmVz dW1lIChTSU1fREVTQyBzZCwgaW50IHN0ZXAsIGludCBzCiAJICAgIGludCB3 cml0ZV9yZXR1cm47CS8qIFJldHVybiB2YWx1ZSBmcm9tIGNhbGxiYWNrIHRv IHdyaXRlLiAgKi8KIAkgICAgaW50IGkgPSAwOwkJLyogTG9vcCBjb3VudGVy ICovCiAKLQkgICAgZmQgPSBoODMwMGhtb2RlID8gR0VUX0xfUkVHICgwKSA6 IEdFVF9XX1JFRyAoMCk7Ci0JICAgIGNoYXJfcHRyID0gaDgzMDBobW9kZSA/ IEdFVF9MX1JFRyAoMSkgOiBHRVRfV19SRUcgKDEpOwotCSAgICBsZW4gPSBo ODMwMGhtb2RlID8gR0VUX0xfUkVHICgyKSA6IEdFVF9XX1JFRyAoMik7CisJ ICAgIGZkID0gKGg4MzAwaG1vZGUgJiYgMCA9PSBOb3JtYWxNb2RlKSA/IEdF VF9MX1JFRyAoMCkgOiBHRVRfV19SRUcgKDApOworCSAgICBjaGFyX3B0ciA9 IChoODMwMGhtb2RlICYmIDAgPT0gTm9ybWFsTW9kZSkgPyBHRVRfTF9SRUcg KDEpIDogR0VUX1dfUkVHICgxKTsKKwkgICAgbGVuID0gKGg4MzAwaG1vZGUg JiYgMCA9PSBOb3JtYWxNb2RlKSA/IEdFVF9MX1JFRyAoMikgOiBHRVRfV19S RUcgKDIpOwogCiAJICAgIC8qIEFsbG9jYXRpbmcgc3BhY2UgZm9yIHRoZSBj aGFyYWN0ZXJzIHRvIGJlIHdyaXR0ZW4uICAqLwogCSAgICBwdHIgPSAoY2hh ciAqKSBtYWxsb2MgKHNpemVvZiAoY2hhcikgKiBsZW4pOwpAQCAtMzAzMiw5 ICszMDM1LDkgQEAgc2ltX3Jlc3VtZSAoU0lNX0RFU0Mgc2QsIGludCBzdGVw LCBpbnQgcwogCSAgICBpbnQgb3JpZ2luOwkJLyogT3JpZ2luICovCiAJICAg IGludCBsc2Vla19yZXR1cm47CS8qIFJldHVybiB2YWx1ZSBmcm9tIGNhbGxi YWNrIHRvIGxzZWVrLiAgKi8KIAotCSAgICBmZCA9IGg4MzAwaG1vZGUgPyBH RVRfTF9SRUcgKDApIDogR0VUX1dfUkVHICgwKTsKLQkgICAgb2Zmc2V0ID0g aDgzMDBobW9kZSA/IEdFVF9MX1JFRyAoMSkgOiBHRVRfV19SRUcgKDEpOwot CSAgICBvcmlnaW4gPSBoODMwMGhtb2RlID8gR0VUX0xfUkVHICgyKSA6IEdF VF9XX1JFRyAoMik7CisJICAgIGZkID0gKGg4MzAwaG1vZGUgJiYgMCA9PSBO b3JtYWxNb2RlKSA/IEdFVF9MX1JFRyAoMCkgOiBHRVRfV19SRUcgKDApOwor CSAgICBvZmZzZXQgPSAoaDgzMDBobW9kZSAmJiAwID09IE5vcm1hbE1vZGUp ID8gR0VUX0xfUkVHICgxKSA6IEdFVF9XX1JFRyAoMSk7CisJICAgIG9yaWdp biA9IChoODMwMGhtb2RlICYmIDAgPT0gTm9ybWFsTW9kZSkgPyBHRVRfTF9S RUcgKDIpIDogR0VUX1dfUkVHICgyKTsKIAogCSAgICAvKiBDYWxsYmFjayBs c2VlayBhbmQgcmV0dXJuIG9mZnNldC4gICovCiAJICAgIGxzZWVrX3JldHVy biA9CkBAIC0zMDUwLDcgKzMwNTMsNyBAQCBzaW1fcmVzdW1lIChTSU1fREVT QyBzZCwgaW50IHN0ZXAsIGludCBzCiAJICAgIGludCBmZDsJCS8qIEZpbGUg ZGVzY3JpcHRvciAqLwogCSAgICBpbnQgY2xvc2VfcmV0dXJuOwkvKiBSZXR1 cm4gdmFsdWUgZnJvbSBjYWxsYmFjayB0byBjbG9zZS4gICovCiAKLQkgICAg ZmQgPSBoODMwMGhtb2RlID8gR0VUX0xfUkVHICgwKSA6IEdFVF9XX1JFRyAo MCk7CisJICAgIGZkID0gKGg4MzAwaG1vZGUgJiYgMCA9PSBOb3JtYWxNb2Rl KSA/IEdFVF9MX1JFRyAoMCkgOiBHRVRfV19SRUcgKDApOwogCiAJICAgIC8q IENhbGxiYWNrIGNsb3NlIGFuZCByZXR1cm4uICAqLwogCSAgICBjbG9zZV9y ZXR1cm4gPSBzaW1fY2FsbGJhY2stPmNsb3NlIChzaW1fY2FsbGJhY2ssIGZk KTsKQEAgLTMwNjgsMTAgKzMwNzEsMTAgQEAgc2ltX3Jlc3VtZSAoU0lNX0RF U0Mgc2QsIGludCBzdGVwLCBpbnQgcwogCSAgICBpbnQgc3RhdF9wdHI7CS8q IFBvaW50ZXIgdG8gc3RhdCByZWNvcmQuICAqLwogCSAgICBjaGFyICp0ZW1w X3N0YXRfcHRyOwkvKiBUZW1wb3Jhcnkgc3RhdF9yZWMgcG9pbnRlci4gICov CiAKLQkgICAgZmQgPSBoODMwMGhtb2RlID8gR0VUX0xfUkVHICgwKSA6IEdF VF9XX1JFRyAoMCk7CisJICAgIGZkID0gKGg4MzAwaG1vZGUgJiYgMCA9PSBO b3JtYWxNb2RlKSA/IEdFVF9MX1JFRyAoMCkgOiBHRVRfV19SRUcgKDApOwog CiAJICAgIC8qIFNldHRpbmcgc3RhdF9wdHIgdG8gc2Vjb25kIGFyZ3VtZW50 IG9mIHN0YXQuICAqLwotCSAgICBzdGF0X3B0ciA9IGg4MzAwaG1vZGUgPyBH RVRfTF9SRUcgKDEpIDogR0VUX1dfUkVHICgxKTsKKwkgICAgc3RhdF9wdHIg PSAoaDgzMDBobW9kZSAmJiAwID09IE5vcm1hbE1vZGUpID8gR0VUX0xfUkVH ICgxKSA6IEdFVF9XX1JFRyAoMSk7CiAKIAkgICAgLyogQ2FsbGJhY2sgc3Rh dCBhbmQgcmV0dXJuLiAgKi8KIAkgICAgZnN0YXRfcmV0dXJuID0gc2ltX2Nh bGxiYWNrLT5mc3RhdCAoc2ltX2NhbGxiYWNrLCBmZCwgJnN0YXRfcmVjKTsK QEAgLTMxMjAsNyArMzEyMyw3IEBAIHNpbV9yZXN1bWUgKFNJTV9ERVNDIHNk LCBpbnQgc3RlcCwgaW50IHMKIAkgICAgaW50IGkgPSAwOwkJLyogTG9vcCBD b3VudGVyICovCiAKIAkgICAgLyogU2V0dGluZyBmaWxlbmFtZV9wdHIgdG8g Zmlyc3QgYXJndW1lbnQgb2Ygb3Blbi4gICovCi0JICAgIGZpbGVuYW1lX3B0 ciA9IGg4MzAwaG1vZGUgPyBHRVRfTF9SRUcgKDApIDogR0VUX1dfUkVHICgw KTsKKwkgICAgZmlsZW5hbWVfcHRyID0gKGg4MzAwaG1vZGUgJiYgMCA9PSBO b3JtYWxNb2RlKSA/IEdFVF9MX1JFRyAoMCkgOiBHRVRfV19SRUcgKDApOwog CiAJICAgIC8qIFRyeWluZyB0byBmaW5kIHRoZSBsZW5ndGggb2YgdGhlIGZp bGVuYW1lLiAgKi8KIAkgICAgdGVtcF9jaGFyID0gR0VUX01FTU9SWV9CICho OF9nZXRfcmVnIChzZCwgMCkpOwpAQCAtMzE0NCw3ICszMTQ3LDcgQEAgc2lt X3Jlc3VtZSAoU0lNX0RFU0Mgc2QsIGludCBzdGVwLCBpbnQgcwogCiAJICAg IC8qIFNldHRpbmcgc3RhdF9wdHIgdG8gc2Vjb25kIGFyZ3VtZW50IG9mIHN0 YXQuICAqLwogCSAgICAvKiBzdGF0X3B0ciA9IGg4X2dldF9yZWcgKHNkLCAx KTsgKi8KLQkgICAgc3RhdF9wdHIgPSBoODMwMGhtb2RlID8gR0VUX0xfUkVH ICgxKSA6IEdFVF9XX1JFRyAoMSk7CisJICAgIHN0YXRfcHRyID0gKGg4MzAw aG1vZGUgJiYgMCA9PSBOb3JtYWxNb2RlKSA/IEdFVF9MX1JFRyAoMSkgOiBH RVRfV19SRUcgKDEpOwogCiAJICAgIC8qIENhbGxiYWNrIHN0YXQgYW5kIHJl dHVybi4gICovCiAJICAgIHN0YXRfcmV0dXJuID0KQEAgLTM1NTIsNyArMzU1 NSw3IEBAIHNpbV9yZXN1bWUgKFNJTV9ERVNDIHNkLCBpbnQgc3RlcCwgaW50 IHMKIAljYWxsOgogCSAgdG1wID0gaDhfZ2V0X3JlZyAoc2QsIFNQX1JFR05V TSk7CiAKLQkgIGlmIChoODMwMGhtb2RlKQorCSAgaWYgKGg4MzAwaG1vZGUg JiYgMCA9PSBOb3JtYWxNb2RlKQogCSAgICB7CiAJICAgICAgdG1wIC09IDQ7 CiAJICAgICAgU0VUX01FTU9SWV9MICh0bXAsIGNvZGUtPm5leHRfcGMpOwpA QCAtMzU4NCw3ICszNTg3LDcgQEAgc2ltX3Jlc3VtZSAoU0lNX0RFU0Mgc2Qs IGludCBzdGVwLCBpbnQgcwogCSAgICAgIGg4X3NldF9leHIgKHNkLCBHRVRf TUVNT1JZX0wgKHRtcCkpOwogCSAgICAgIHRtcCArPSA0OwogCSAgICB9Ci0J ICBpZiAoaDgzMDBobW9kZSkKKwkgIGlmIChoODMwMGhtb2RlICYmIDAgPT0g Tm9ybWFsTW9kZSkKIAkgICAgewogCSAgICAgIGg4X3NldF9jY3IgKHNkLCBH RVRfTUVNT1JZX0wgKHRtcCkpOwogCSAgICAgIHRtcCArPSA0OwpAQCAtMzYw Nyw3ICszNjEwLDcgQEAgc2ltX3Jlc3VtZSAoU0lNX0RFU0Mgc2QsIGludCBz dGVwLCBpbnQgcwogCXJ0czoKIAkgIHRtcCA9IGg4X2dldF9yZWcgKHNkLCBT UF9SRUdOVU0pOwogCi0JICBpZiAoaDgzMDBobW9kZSkKKwkgIGlmIChoODMw MGhtb2RlICYmIDAgPT0gTm9ybWFsTW9kZSkKIAkgICAgewogCSAgICAgIHBj ID0gR0VUX01FTU9SWV9MICh0bXApOwogCSAgICAgIHRtcCArPSA0OwpAQCAt MzY1OCwxMCArMzY2MSwyMCBAQCBzaW1fcmVzdW1lIChTSU1fREVTQyBzZCwg aW50IHN0ZXAsIGludCBzCiAJICAgIGdvdG8gZW5kOwkJCS8qIHJlcyBpcyB2 ZWN0b3IgbnVtYmVyLiAgKi8KIAogCSAgdG1wID0gaDhfZ2V0X3JlZyAoc2Qs IFNQX1JFR05VTSk7Ci0JICB0bXAgLT0gNDsKLQkgIFNFVF9NRU1PUllfTCAo dG1wLCBjb2RlLT5uZXh0X3BjKTsKLQkgIHRtcCAtPSA0OyAKLQkgIFNFVF9N RU1PUllfTCAodG1wLCBoOF9nZXRfY2NyIChzZCkpOworIAkgIGlmKE5vcm1h bE1vZGUpCisgCSAgICB7CisgCSAgICAgIHRtcCAtPSAyOworIAkgICAgICBT RVRfTUVNT1JZX1cgKHRtcCwgY29kZS0+bmV4dF9wYyk7CisgCSAgICAgIHRt cCAtPSAyOworIAkgICAgICBTRVRfTUVNT1JZX1cgKHRtcCwgaDhfZ2V0X2Nj ciAoc2QpKTsKKyAJICAgIH0KKyAJICBlbHNlCisgCSAgICB7CisgCSAgICAg IHRtcCAtPSA0OworIAkgICAgICBTRVRfTUVNT1JZX0wgKHRtcCwgY29kZS0+ bmV4dF9wYyk7CisgCSAgICAgIHRtcCAtPSA0OworIAkgICAgICBTRVRfTUVN T1JZX0wgKHRtcCwgaDhfZ2V0X2NjciAoc2QpKTsKKyAJICAgIH0KIAkgIGlu dE1hc2tCaXQgPSAxOwogCSAgQlVJTERTUiAoc2QpOwogCkBAIC0zNjczLDgg KzM2ODYsMTAgQEAgc2ltX3Jlc3VtZSAoU0lNX0RFU0Mgc2QsIGludCBzdGVw LCBpbnQgcwogCiAJICBoOF9zZXRfcmVnIChzZCwgU1BfUkVHTlVNLCB0bXAp OwogCi0JICAvKiBGSVhNRTogIm5vcm1hbCIgbW9kZSBzaG91bGQgdXNlIDIt Ynl0ZSBwdHJzLiAgKi8KLQkgIHBjID0gR0VUX01FTU9SWV9MICgweDIwICsg cmVzICogNCk7CisJICBpZihOb3JtYWxNb2RlKQorCSAgICBwYyA9IEdFVF9N RU1PUllfTCAoMHgxMCArIHJlcyAqIDIpOyAvKiBWZWN0b3IgYWRkcmVzc2Vz IGFyZSAweDEwLDB4MTIsMHgxNCBhbmQgMHgxNiAqLworCSAgZWxzZQorCSAg ICBwYyA9IEdFVF9NRU1PUllfTCAoMHgyMCArIHJlcyAqIDQpOwogCSAgZ290 byBlbmQ7CiAKIAljYXNlIE8gKE9fQlBULCBTTik6CkBAIC00NzAzLDcgKzQ3 MTgsMTAgQEAgc2ltX3N0b3JlX3JlZ2lzdGVyIChTSU1fREVTQyBzZCwgaW50 IHJuLAogICBzd2l0Y2ggKHJuKQogICAgIHsKICAgICBjYXNlIFBDX1JFR05V TToKLSAgICAgIGg4X3NldF9wYyAoc2QsIGludHZhbCk7CisgICAgICBpZihO b3JtYWxNb2RlKQorICAgICAgICBoOF9zZXRfcGMgKHNkLCBzaG9ydHZhbCk7 IC8qIFBDIGZvciBOb3JtYWwgbW9kZSBpcyAyIGJ5dGVzICovCisgICAgICBl bHNlCisgICAgICAgIGg4X3NldF9wYyAoc2QsIGludHZhbCk7CiAgICAgICBi cmVhazsKICAgICBkZWZhdWx0OgogICAgICAgKCpzaW1fY2FsbGJhY2stPnBy aW50Zl9maWx0ZXJlZCkgKHNpbV9jYWxsYmFjaywgCkBAIC00ODE0LDcgKzQ4 MzIsOCBAQCBzaW1fZmV0Y2hfcmVnaXN0ZXIgKFNJTV9ERVNDIHNkLCBpbnQg cm4sCiAgICAgICBsb25ncmVnID0gMTsKICAgICAgIGJyZWFrOwogICAgIH0K LSAgaWYgKGg4MzAwaG1vZGUgfHwgbG9uZ3JlZykKKyAgLyogSW4gTm9ybWFs IG1vZGUgUEMgaXMgMiBieXRlLCBidXQgb3RoZXIgcmVnaXN0ZXJzIGFyZSA0 IGJ5dGUgKi8KKyAgaWYgKChoODMwMGhtb2RlIHx8IGxvbmdyZWcpICYmICEo cm4gPT0gUENfUkVHTlVNICYmIE5vcm1hbE1vZGUpKQogICAgIHsKICAgICAg IGJ1ZlswXSA9IHYgPj4gMjQ7CiAgICAgICBidWZbMV0gPSB2ID4+IDE2OwpA QCAtNDkxOSw2ICs0OTM4LDkgQEAgc2V0X2g4MzAwaCAodW5zaWduZWQgbG9u ZyBtYWNoaW5lKQogCiAgIGlmIChtYWNoaW5lID09IGJmZF9tYWNoX2g4MzAw aCB8fCBtYWNoaW5lID09IGJmZF9tYWNoX2g4MzAwaG4gfHwgaDgzMDBzbW9k ZSkKICAgICBoODMwMGhtb2RlID0gMTsKKworICBpZihtYWNoaW5lID09IGJm ZF9tYWNoX2g4MzAwaG4gfHwgbWFjaGluZSA9PSBiZmRfbWFjaF9oODMwMHNu IHx8IG1hY2hpbmUgPT0gYmZkX21hY2hfaDgzMDBzeG4pCisgICAgTm9ybWFs TW9kZSA9IDE7CiB9CiAKIC8qIENvdmVyIGZ1bmN0aW9uIG9mIHNpbV9zdGF0 ZV9mcmVlIHRvIGZyZWUgdGhlIGNwdSBidWZmZXJzIGFzIHdlbGwuICAqLwpA QCAtNTA1NCw5ICs1MDc2LDkgQEAgc2ltX2xvYWQgKFNJTV9ERVNDIHNkLCBj aGFyICpwcm9nLCBiZmQgKgogICAgICBzd2l0Y2hpbmcgYmV0d2VlbiBIOC8z MDAgYW5kIEg4LzMwMEggcHJvZ3JhbXMgd2l0aG91dCBleGl0aW5nCiAgICAg IGdkYi4gICovCiAKLSAgaWYgKGg4MzAwc21vZGUpCisgIGlmIChoODMwMHNt b2RlICYmIDAgPT0gTm9ybWFsTW9kZSkKICAgICBtZW1vcnlfc2l6ZSA9IEg4 MzAwU19NU0laRTsKLSAgZWxzZSBpZiAoaDgzMDBobW9kZSkKKyAgZWxzZSBp ZiAoaDgzMDBobW9kZSAmJiAwID09IE5vcm1hbE1vZGUpCiAgICAgbWVtb3J5 X3NpemUgPSBIODMwMEhfTVNJWkU7CiAgIGVsc2UKICAgICBtZW1vcnlfc2l6 ZSA9IEg4MzAwX01TSVpFOwo= ------_=_NextPart_001_01C37B67.17B76A10 Content-Type: application/octet-stream; name="tm-h8300.diff" Content-Transfer-Encoding: base64 Content-Description: tm-h8300.diff Content-Disposition: attachment; filename="tm-h8300.diff" Content-length: 488 LS0tIHNyYy9nZGIvY29uZmlnL2g4MzAwL3RtLWg4MzAwLmgub3JpZwlNb24g U2VwIDE1IDEwOjQ2OjIzIDIwMDMKKysrIHNyYy9nZGIvY29uZmlnL2g4MzAw L3RtLWg4MzAwLmgJTW9uIFNlcCAxNSAxMzozMjoyMyAyMDAzCkBAIC0yNiw2 ICsyNiw3IEBACiAgICBHREJfVEFSR0VUX0lTX0g4MzAwIGluIHJlbW90ZS1l NzAwMC5jICovCiBleHRlcm4gaW50IGg4MzAwaG1vZGU7CiBleHRlcm4gaW50 IGg4MzAwc21vZGU7CitleHRlcm4gaW50IE5vcm1hbE1vZGU7IC8qIDEgLSBO b3JtYWwgTW9kZSAsIDAgLSBBZHZhbmNlZCBtb2RlICovCiBleHRlcm4gaW50 IGg4MzAwc3htb2RlOwogI2RlZmluZSBHREJfVEFSR0VUX0lTX0g4MzAwCiAK ------_=_NextPart_001_01C37B67.17B76A10 Content-Type: application/octet-stream; name="coff-h8300.diff" Content-Transfer-Encoding: base64 Content-Description: coff-h8300.diff Content-Disposition: attachment; filename="coff-h8300.diff" Content-length: 2314 LS0tIHNyYy9iZmQvY29mZi1oODMwMC5jLm9yaWcJTW9uIFNlcCAxNSAxNDox NDo1OCAyMDAzCisrKyBzcmMvYmZkL2NvZmYtaDgzMDAuYwlNb24gU2VwIDE1 IDE0OjEwOjIyIDIwMDMKQEAgLTE1NCw3ICsxNTQsOSBAQCBmdW5jdmVjX2hh c2hfbmV3ZnVuYyAoc3RydWN0IGJmZF9oYXNoX2VuCiAgIC8qIEJ1bXAgdGhl IG9mZnNldCBhdCB3aGljaCB3ZSBzdG9yZSBlbnRyaWVzIGluIHRoZSBmdW5j dGlvbgogICAgICB2ZWN0b3IuICBXZSdkIGxpa2UgdG8gYnVtcCB1cCB0aGUg c2l6ZSBvZiB0aGUgdmVjdG9ycyBzZWN0aW9uLAogICAgICBidXQgaXQncyBu b3QgZWFzaWx5IGF2YWlsYWJsZSBoZXJlLiAgKi8KLSAgaWYgKGJmZF9nZXRf bWFjaCAodGFibGUtPmFiZmQpID09IGJmZF9tYWNoX2g4MzAwKQorICBpZiAo YmZkX2dldF9tYWNoICh0YWJsZS0+YWJmZCkgPT0gYmZkX21hY2hfaDgzMDAK KyAgICB8fCBiZmRfZ2V0X21hY2ggKHRhYmxlLT5hYmZkKSA9PSBiZmRfbWFj aF9oODMwMGhuCisgICAgfHwgYmZkX2dldF9tYWNoICh0YWJsZS0+YWJmZCkg PT0gYmZkX21hY2hfaDgzMDBzbikKICAgICB0YWJsZS0+b2Zmc2V0ICs9IDI7 CiAgIGVsc2UgaWYgKGJmZF9nZXRfbWFjaCAodGFibGUtPmFiZmQpID09IGJm ZF9tYWNoX2g4MzAwaAogCSAgIHx8IGJmZF9nZXRfbWFjaCAodGFibGUtPmFi ZmQpID09IGJmZF9tYWNoX2g4MzAwcykKQEAgLTExMjQsNyArMTEyNiw5IEBA IGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMgKGJmZCAqYWJmZCwgc3QKIAlz cmNfYWRkcmVzcysrOwogCiAJLyogTm93IGNyZWF0ZSBhbiBlbnRyeSBpbiB0 aGUgZnVuY3Rpb24gdmVjdG9yIGl0c2VsZi4gICovCi0JaWYgKGJmZF9nZXRf bWFjaCAoaW5wdXRfc2VjdGlvbi0+b3duZXIpID09IGJmZF9tYWNoX2g4MzAw KQorCWlmIChiZmRfZ2V0X21hY2ggKGlucHV0X3NlY3Rpb24tPm93bmVyKSA9 PSBiZmRfbWFjaF9oODMwMAorCSAgfHwgYmZkX2dldF9tYWNoIChpbnB1dF9z ZWN0aW9uLT5vd25lcikgPT0gYmZkX21hY2hfaDgzMDBobgorCSAgfHwgYmZk X2dldF9tYWNoIChpbnB1dF9zZWN0aW9uLT5vd25lcikgPT0gYmZkX21hY2hf aDgzMDBzbikKIAkgIGJmZF9wdXRfMTYgKGFiZmQsCiAJCSAgICAgIGJmZF9j b2ZmX3JlbG9jMTZfZ2V0X3ZhbHVlIChyZWxvYywKIAkJCQkJCSAgbGlua19p bmZvLApAQCAtMTMwNCw3ICsxMzA4LDkgQEAgaDgzMDBfYmZkX2xpbmtfYWRk X3N5bWJvbHMgKGJmZCAqYWJmZCwgcwogCiAJCSAgLyogQnVtcCB0aGUgc2l6 ZSBvZiB0aGUgdmVjdG9ycyBzZWN0aW9uLiAgRWFjaCB2ZWN0b3IKIAkJICAg ICB0YWtlcyAyIGJ5dGVzIG9uIHRoZSBoODMwMCBhbmQgNCBieXRlcyBvbiB0 aGUgaDgzMDBoLiAgKi8KLQkJICBpZiAoYmZkX2dldF9tYWNoIChhYmZkKSA9 PSBiZmRfbWFjaF9oODMwMCkKKwkJICBpZiAoYmZkX2dldF9tYWNoIChhYmZk KSA9PSBiZmRfbWFjaF9oODMwMAorCQkgICAgfHwgYmZkX2dldF9tYWNoIChh YmZkKSA9PSBiZmRfbWFjaF9oODMwMGhuCisJCSAgICB8fCBiZmRfZ2V0X21h Y2ggKGFiZmQpID09IGJmZF9tYWNoX2g4MzAwc24pCiAJCSAgICBodGFiLT52 ZWN0b3JzX3NlYy0+X3Jhd19zaXplICs9IDI7CiAJCSAgZWxzZSBpZiAoYmZk X2dldF9tYWNoIChhYmZkKSA9PSBiZmRfbWFjaF9oODMwMGgKIAkJCSAgIHx8 IGJmZF9nZXRfbWFjaCAoYWJmZCkgPT0gYmZkX21hY2hfaDgzMDBzKQo= ------_=_NextPart_001_01C37B67.17B76A10--