diff --git a/mips/mips_emit.h b/mips/mips_emit.h index e585269..647aa51 100644 --- a/mips/mips_emit.h +++ b/mips/mips_emit.h @@ -224,9 +224,18 @@ u32 arm_to_mips_reg[] = mips_emit_addiu(reg_cycles, reg_cycles, -cycle_count); \ cycle_count = 0 \ +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + +#define generate_branch_patch_conditional(dest, offset) \ + *(((u16 *)(dest)) + 1) = mips_relative_offset(dest, offset) \ + +#else + #define generate_branch_patch_conditional(dest, offset) \ *((u16 *)(dest)) = mips_relative_offset(dest, offset) \ +#endif + #define generate_branch_patch_unconditional(dest, offset) \ *((u32 *)(dest)) = (mips_opcode_j << 26) | \ ((mips_absolute_offset(offset)) & 0x3FFFFFF) \