mirror of
				https://github.com/hedge-dev/XenonRecomp.git
				synced 2025-11-04 06:47:09 +00:00 
			
		
		
		
	Recompiler: Use implementation aliases
This commit is contained in:
		@@ -1972,15 +1972,18 @@ bool Recompiler::Recompile(const Function& fn)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    auto symbol = image.symbols.find(fn.base);
 | 
			
		||||
    std::string name;
 | 
			
		||||
    if (symbol != image.symbols.end())
 | 
			
		||||
    {
 | 
			
		||||
        println("PPC_WEAK_FUNC({}) {{", symbol->name);
 | 
			
		||||
        name = symbol->name;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        println("PPC_WEAK_FUNC(sub_{}) {{", fn.base);
 | 
			
		||||
        name = std::format("sub_{}", fn.base);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    println("__attribute__((alias(\"__imp__{}\"))) PPC_WEAK_FUNC({});", name, name);
 | 
			
		||||
    println("PPC_FUNC_IMPL(__imp__{}) {{", name);
 | 
			
		||||
    println("\tPPC_FUNC_PROLOGUE();");
 | 
			
		||||
 | 
			
		||||
    auto switchTable = switchTables.end();
 | 
			
		||||
 
 | 
			
		||||
@@ -14,8 +14,12 @@
 | 
			
		||||
#include <intrin.h>
 | 
			
		||||
#include <x86intrin.h>
 | 
			
		||||
 | 
			
		||||
#define PPC_JOIN(x, y) x##y
 | 
			
		||||
#define PPC_XSTRINGIFY(x) #x
 | 
			
		||||
#define PPC_STRINGIFY(x) PPC_XSTRINGIFY(x)
 | 
			
		||||
#define PPC_FUNC(x) void x(PPCContext& __restrict ctx, uint8_t* base)
 | 
			
		||||
#define PPC_EXTERN_FUNC(x) extern PPC_FUNC(x)
 | 
			
		||||
#define PPC_FUNC_IMPL(x) extern "C" PPC_FUNC(x)
 | 
			
		||||
#define PPC_EXTERN_FUNC(x) extern "C" PPC_FUNC(x)
 | 
			
		||||
#define PPC_WEAK_FUNC(x) __attribute__((weak,noinline)) PPC_FUNC(x)
 | 
			
		||||
 | 
			
		||||
#define PPC_FUNC_PROLOGUE() __builtin_assume(((size_t)base & 0xFFFFFFFF) == 0)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user