mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-05-23 02:12:06 +00:00
Prevent optimization for recompiled functions.
This commit is contained in:
parent
589104a0ef
commit
572dc2a67f
@ -63,7 +63,7 @@ int main()
|
|||||||
name = std::format("sub_{:X}", base);
|
name = std::format("sub_{:X}", base);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::println(f, "void {}(PPCContext& __restrict callerCtx, uint8_t* base) {{", name);
|
std::println(f, "PPC_FUNC void {}(PPCContext& __restrict callerCtx, uint8_t* base) {{", name);
|
||||||
std::println(f, "\tPPCContext ctx = callerCtx;");
|
std::println(f, "\tPPCContext ctx = callerCtx;");
|
||||||
std::println(f, "\tuint32_t ea;\n");
|
std::println(f, "\tuint32_t ea;\n");
|
||||||
|
|
||||||
@ -176,7 +176,9 @@ int main()
|
|||||||
targetName = std::format("sub_{:X}", insn.operands[0]);
|
targetName = std::format("sub_{:X}", insn.operands[0]);
|
||||||
}
|
}
|
||||||
std::println(f, "\tctx.lr = 0x{:X};", base);
|
std::println(f, "\tctx.lr = 0x{:X};", base);
|
||||||
std::println(f, "\t{}(ctx, base);", targetName);
|
std::println(f, "\tcallerCtx = ctx;");
|
||||||
|
std::println(f, "\t{}(callerCtx, base);", targetName);
|
||||||
|
std::println(f, "\ctx = callerCtx;");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,9 @@
|
|||||||
#define _byteswap_ushort __builtin_bswap16
|
#define _byteswap_ushort __builtin_bswap16
|
||||||
#define _byteswap_ulong __builtin_bswap32
|
#define _byteswap_ulong __builtin_bswap32
|
||||||
#define _byteswap_uint64 __builtin_bswap64
|
#define _byteswap_uint64 __builtin_bswap64
|
||||||
|
#define PPC_FUNC extern inline __attribute__((weak,noinline))
|
||||||
|
#else
|
||||||
|
#define PPC_FUNC __declspec(noinline)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PPC_LOAD_U8(x) *(uint8_t*)(base + (x))
|
#define PPC_LOAD_U8(x) *(uint8_t*)(base + (x))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user