+#endif
+
+/* TAGS: sim_core_read_misaligned_3 sim_core_read_misaligned_5 */
+/* TAGS: sim_core_read_misaligned_6 sim_core_read_misaligned_7 */
+
+#if (M != N)
+INLINE_SIM_CORE(unsigned_M)
+sim_core_read_misaligned_N(sim_cpu *cpu,
+ sim_cia cia,
+ unsigned map,
+ address_word addr)
+{
+ unsigned_M val = 0;
+ if (sim_core_xor_read_buffer (CPU_STATE (cpu), cpu, map, &val, addr, N) != N)
+ SIM_CORE_SIGNAL (CPU_STATE (cpu), cpu, cia, map, N, addr,
+ read_transfer, sim_core_unaligned_signal);
+ if (HOST_BYTE_ORDER != CURRENT_TARGET_BYTE_ORDER)
+ val = SWAP_M (val);
+ if (CURRENT_TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
+ val >>= (M - N) * 8;
+ PROFILE_COUNT_CORE (cpu, addr, N, map);
+ if (TRACE_P (cpu, TRACE_CORE_IDX))
+ sim_core_trace_M (cpu, cia, __LINE__, read_transfer, map, addr, val, N);
+ return val;
+}
+#endif