Index: source/Target/Target.cpp =================================================================== --- source/Target/Target.cpp +++ source/Target/Target.cpp @@ -2269,10 +2269,12 @@ uint32_t loop_count = 0; Address resolved_addr; uint32_t arch_flags = m_arch.GetFlags (); - bool IsMips16 = arch_flags & ArchSpec::eMIPSAse_mips16; - bool IsMicromips = arch_flags & ArchSpec::eMIPSAse_micromips; SectionLoadList §ion_load_list = GetSectionLoadList(); + // Get opcode address + addr = GetOpcodeLoadAddress (addr, eAddressClassCode); + breakable_addr = addr; + if (section_load_list.IsEmpty()) // No sections are loaded, so we must assume we are not running yet // and need to operate only on file address. @@ -2310,7 +2312,7 @@ if (loop_count > 3) { // Scan previous 6 bytes - if (IsMips16 | IsMicromips) + if (resolved_addr.GetAddressClass() == eAddressClassCodeAlternateISA) loop_count = 3; // For mips-only, instructions are always 4 bytes, so scan previous 4 bytes only. else