Implement tail calls in the middle of functions and allow recomping libgcc math routines (#43)

This commit is contained in:
Anghelo Carvajal 2024-05-14 18:56:23 -04:00 committed by GitHub
parent 5d46de6de0
commit 26c5c2cbb8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 77 additions and 47 deletions

View file

@ -500,14 +500,7 @@ std::unordered_set<std::string> ignored_funcs {
"rmonGetRcpRegister",
"kdebugserver",
"send",
// libgcc math routines (these throw off the recompiler)
"__muldi3",
"__divdi3",
"__udivdi3",
"__umoddi3",
"div64_64",
"div64_32",
"__moddi3",
// ido math routines
"__ll_div",
"__ll_lshift",
@ -626,6 +619,15 @@ std::unordered_set<std::string> renamed_funcs{
"clear_bufs",
"fill_inbuf",
"flush_window",
// libgcc math routines
"__muldi3",
"__divdi3",
"__udivdi3",
"__umoddi3",
"div64_64",
"div64_32",
"__moddi3",
};
bool read_symbols(RecompPort::Context& context, const ELFIO::elfio& elf_file, ELFIO::section* symtab_section, uint32_t entrypoint, bool has_entrypoint, bool use_absolute_symbols) {