mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-07 07:21:18 +12:00
PPCRec: Move X64 files into subdirectory and rename
This commit is contained in:
parent
da08eda506
commit
0622631868
14 changed files with 32 additions and 38 deletions
|
@ -83,14 +83,14 @@ add_library(CemuCafe
|
||||||
HW/Espresso/Recompiler/PPCRecompilerImlGenFPU.cpp
|
HW/Espresso/Recompiler/PPCRecompilerImlGenFPU.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerIml.h
|
HW/Espresso/Recompiler/PPCRecompilerIml.h
|
||||||
HW/Espresso/Recompiler/PPCRecompilerIntermediate.cpp
|
HW/Espresso/Recompiler/PPCRecompilerIntermediate.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64AVX.cpp
|
HW/Espresso/Recompiler/BackendX64/BackendX64AVX.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64BMI.cpp
|
HW/Espresso/Recompiler/BackendX64/BackendX64BMI.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64.cpp
|
HW/Espresso/Recompiler/BackendX64/BackendX64.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64FPU.cpp
|
HW/Espresso/Recompiler/BackendX64/BackendX64FPU.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64Gen.cpp
|
HW/Espresso/Recompiler/BackendX64/BackendX64Gen.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64GenFPU.cpp
|
HW/Espresso/Recompiler/BackendX64/BackendX64GenFPU.cpp
|
||||||
HW/Espresso/Recompiler/PPCRecompilerX64.h
|
HW/Espresso/Recompiler/BackendX64/BackendX64.h
|
||||||
HW/Espresso/Recompiler/x64Emit.hpp
|
HW/Espresso/Recompiler/BackendX64/X64Emit.hpp
|
||||||
HW/Latte/Common/RegisterSerializer.cpp
|
HW/Latte/Common/RegisterSerializer.cpp
|
||||||
HW/Latte/Common/RegisterSerializer.h
|
HW/Latte/Common/RegisterSerializer.h
|
||||||
HW/Latte/Common/ShaderSerializer.cpp
|
HW/Latte/Common/ShaderSerializer.cpp
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#include "Cafe/OS/libs/coreinit/coreinit_CodeGen.h"
|
#include "Cafe/OS/libs/coreinit/coreinit_CodeGen.h"
|
||||||
|
|
||||||
#include "../Recompiler/PPCRecompiler.h"
|
#include "../Recompiler/PPCRecompiler.h"
|
||||||
#include "../Recompiler/PPCRecompilerX64.h"
|
|
||||||
|
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
#include "Cafe/HW/Latte/Core/LatteBufferCache.h"
|
#include "Cafe/HW/Latte/Core/LatteBufferCache.h"
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#include "Cafe/HW/Espresso/PPCState.h"
|
#include "Cafe/HW/Espresso/PPCState.h"
|
||||||
#include "Cafe/HW/Espresso/Interpreter/PPCInterpreterInternal.h"
|
#include "Cafe/HW/Espresso/Interpreter/PPCInterpreterInternal.h"
|
||||||
#include "Cafe/HW/Espresso/Interpreter/PPCInterpreterHelper.h"
|
#include "Cafe/HW/Espresso/Interpreter/PPCInterpreterHelper.h"
|
||||||
#include "PPCRecompiler.h"
|
#include "../PPCRecompiler.h"
|
||||||
#include "PPCRecompilerIml.h"
|
#include "../PPCRecompilerIml.h"
|
||||||
#include "PPCRecompilerX64.h"
|
#include "BackendX64.h"
|
||||||
#include "Cafe/OS/libs/coreinit/coreinit_Time.h"
|
#include "Cafe/OS/libs/coreinit/coreinit_Time.h"
|
||||||
#include "util/MemMapper/MemMapper.h"
|
#include "util/MemMapper/MemMapper.h"
|
||||||
#include "Common/cpu_features.h"
|
#include "Common/cpu_features.h"
|
|
@ -1,4 +1,6 @@
|
||||||
|
|
||||||
|
#include "../PPCRecompiler.h" // todo - get rid of dependency
|
||||||
|
|
||||||
struct x64RelocEntry_t
|
struct x64RelocEntry_t
|
||||||
{
|
{
|
||||||
uint32 offset;
|
uint32 offset;
|
||||||
|
@ -138,7 +140,7 @@ bool IMLBackendX64_HasExtensionMOVBE();
|
||||||
bool IMLBackendX64_HasExtensionBMI2();
|
bool IMLBackendX64_HasExtensionBMI2();
|
||||||
bool IMLBackendX64_HasExtensionAVX();
|
bool IMLBackendX64_HasExtensionAVX();
|
||||||
|
|
||||||
bool PPCRecompiler_generateX64Code(PPCRecFunction_t* PPCRecFunction, ppcImlGenContext_t* ppcImlGenContext);
|
bool PPCRecompiler_generateX64Code(struct PPCRecFunction_t* PPCRecFunction, ppcImlGenContext_t* ppcImlGenContext);
|
||||||
|
|
||||||
void PPCRecompilerX64Gen_crConditionFlags_forget(PPCRecFunction_t* PPCRecFunction, ppcImlGenContext_t* ppcImlGenContext, x64GenContext_t* x64GenContext);
|
void PPCRecompilerX64Gen_crConditionFlags_forget(PPCRecFunction_t* PPCRecFunction, ppcImlGenContext_t* ppcImlGenContext, x64GenContext_t* x64GenContext);
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
#include "PPCRecompiler.h"
|
#include "BackendX64.h"
|
||||||
#include "PPCRecompilerX64.h"
|
|
||||||
|
|
||||||
void _x64Gen_writeMODRMDeprecated(x64GenContext_t* x64GenContext, sint32 dataRegister, sint32 memRegisterA64, sint32 memRegisterB64, sint32 memImmS32);
|
void _x64Gen_writeMODRMDeprecated(x64GenContext_t* x64GenContext, sint32 dataRegister, sint32 memRegisterA64, sint32 memRegisterB64, sint32 memImmS32);
|
||||||
|
|
||||||
|
@ -21,11 +20,10 @@ void _x64Gen_vex128_nds(x64GenContext_t* x64GenContext, uint8 opcodeMap, uint8 a
|
||||||
x64Gen_writeU8(x64GenContext, opcode);
|
x64Gen_writeU8(x64GenContext, opcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define VEX_PP_0F 0 // guessed
|
#define VEX_PP_0F 0
|
||||||
#define VEX_PP_66_0F 1
|
#define VEX_PP_66_0F 1
|
||||||
#define VEX_PP_F3_0F 2 // guessed
|
#define VEX_PP_F3_0F 2
|
||||||
#define VEX_PP_F2_0F 3 // guessed
|
#define VEX_PP_F2_0F 3
|
||||||
|
|
||||||
|
|
||||||
void x64Gen_avx_VPUNPCKHQDQ_xmm_xmm_xmm(x64GenContext_t* x64GenContext, sint32 dstRegister, sint32 srcRegisterA, sint32 srcRegisterB)
|
void x64Gen_avx_VPUNPCKHQDQ_xmm_xmm_xmm(x64GenContext_t* x64GenContext, sint32 dstRegister, sint32 srcRegisterA, sint32 srcRegisterB)
|
||||||
{
|
{
|
|
@ -1,5 +1,4 @@
|
||||||
#include "PPCRecompiler.h"
|
#include "BackendX64.h"
|
||||||
#include "PPCRecompilerX64.h"
|
|
||||||
|
|
||||||
void _x64Gen_writeMODRMDeprecated(x64GenContext_t* x64GenContext, sint32 dataRegister, sint32 memRegisterA64, sint32 memRegisterB64, sint32 memImmS32);
|
void _x64Gen_writeMODRMDeprecated(x64GenContext_t* x64GenContext, sint32 dataRegister, sint32 memRegisterA64, sint32 memRegisterB64, sint32 memImmS32);
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#include "PPCRecompiler.h"
|
#include "../PPCRecompiler.h"
|
||||||
#include "PPCRecompilerIml.h"
|
#include "../IML/IML.h"
|
||||||
#include "PPCRecompilerX64.h"
|
#include "BackendX64.h"
|
||||||
#include "asm/x64util.h"
|
|
||||||
#include "Common/cpu_features.h"
|
#include "asm/x64util.h" // for recompiler_fres / frsqrte
|
||||||
|
|
||||||
void PPCRecompilerX64Gen_imlInstruction_fpr_r_name(PPCRecFunction_t* PPCRecFunction, ppcImlGenContext_t* ppcImlGenContext, x64GenContext_t* x64GenContext, IMLInstruction* imlInstruction)
|
void PPCRecompilerX64Gen_imlInstruction_fpr_r_name(PPCRecFunction_t* PPCRecFunction, ppcImlGenContext_t* ppcImlGenContext, x64GenContext_t* x64GenContext, IMLInstruction* imlInstruction)
|
||||||
{
|
{
|
||||||
|
@ -710,7 +710,7 @@ void PPCRecompilerX64Gen_imlInstruction_fpr_r_r(PPCRecFunction_t* PPCRecFunction
|
||||||
// unpack top to bottom and top
|
// unpack top to bottom and top
|
||||||
x64Gen_unpckhpd_xmmReg_xmmReg(x64GenContext, imlInstruction->op_fpr_r_r.registerResult, imlInstruction->op_fpr_r_r.registerOperand);
|
x64Gen_unpckhpd_xmmReg_xmmReg(x64GenContext, imlInstruction->op_fpr_r_r.registerResult, imlInstruction->op_fpr_r_r.registerOperand);
|
||||||
}
|
}
|
||||||
//else if ( g_CPUFeatures.x86.avx )
|
//else if ( hasAVXSupport )
|
||||||
//{
|
//{
|
||||||
// // unpack top to bottom and top with non-destructive destination
|
// // unpack top to bottom and top with non-destructive destination
|
||||||
// // update: On Ivy Bridge this causes weird stalls?
|
// // update: On Ivy Bridge this causes weird stalls?
|
|
@ -1,6 +1,4 @@
|
||||||
#include "PPCRecompiler.h"
|
#include "BackendX64.h"
|
||||||
#include "PPCRecompilerIml.h"
|
|
||||||
#include "PPCRecompilerX64.h"
|
|
||||||
|
|
||||||
// x86/x64 extension opcodes that could be useful:
|
// x86/x64 extension opcodes that could be useful:
|
||||||
// ANDN
|
// ANDN
|
|
@ -1,6 +1,4 @@
|
||||||
#include "PPCRecompiler.h"
|
#include "BackendX64.h"
|
||||||
#include "PPCRecompilerIml.h"
|
|
||||||
#include "PPCRecompilerX64.h"
|
|
||||||
|
|
||||||
void x64Gen_genSSEVEXPrefix2(x64GenContext_t* x64GenContext, sint32 xmmRegister1, sint32 xmmRegister2, bool use64BitMode)
|
void x64Gen_genSSEVEXPrefix2(x64GenContext_t* x64GenContext, sint32 xmmRegister1, sint32 xmmRegister2, bool use64BitMode)
|
||||||
{
|
{
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
#include "../PPCRecompiler.h"
|
#include "../PPCRecompiler.h"
|
||||||
#include "../PPCRecompilerIml.h"
|
#include "../PPCRecompilerIml.h"
|
||||||
#include "../PPCRecompilerX64.h"
|
#include "../BackendX64/BackendX64.h"
|
||||||
|
|
||||||
struct replacedRegisterTracker_t
|
struct replacedRegisterTracker_t
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
#include "../PPCRecompiler.h"
|
#include "../PPCRecompiler.h"
|
||||||
#include "../PPCRecompilerIml.h"
|
#include "../PPCRecompilerIml.h"
|
||||||
#include "../PPCRecompilerX64.h"
|
|
||||||
#include "IMLRegisterAllocatorRanges.h"
|
#include "IMLRegisterAllocatorRanges.h"
|
||||||
|
|
||||||
|
#include "../BackendX64/BackendX64.h"
|
||||||
|
|
||||||
uint32 recRACurrentIterationIndex = 0;
|
uint32 recRACurrentIterationIndex = 0;
|
||||||
|
|
||||||
uint32 PPCRecRA_getNextIterationIndex()
|
uint32 PPCRecRA_getNextIterationIndex()
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#include "../PPCRecompiler.h"
|
#include "../PPCRecompiler.h"
|
||||||
#include "../PPCRecompilerIml.h"
|
#include "../PPCRecompilerIml.h"
|
||||||
#include "../PPCRecompilerX64.h"
|
|
||||||
#include "IMLRegisterAllocatorRanges.h"
|
#include "IMLRegisterAllocatorRanges.h"
|
||||||
#include "util/helpers/MemoryPool.h"
|
#include "util/helpers/MemoryPool.h"
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#include "PPCFunctionBoundaryTracker.h"
|
#include "PPCFunctionBoundaryTracker.h"
|
||||||
#include "PPCRecompiler.h"
|
#include "PPCRecompiler.h"
|
||||||
#include "PPCRecompilerIml.h"
|
#include "PPCRecompilerIml.h"
|
||||||
#include "PPCRecompilerX64.h"
|
|
||||||
#include "Cafe/OS/RPL/rpl.h"
|
#include "Cafe/OS/RPL/rpl.h"
|
||||||
#include "util/containers/RangeStore.h"
|
#include "util/containers/RangeStore.h"
|
||||||
#include "Cafe/OS/libs/coreinit/coreinit_CodeGen.h"
|
#include "Cafe/OS/libs/coreinit/coreinit_CodeGen.h"
|
||||||
|
@ -14,7 +13,8 @@
|
||||||
#include "util/helpers/helpers.h"
|
#include "util/helpers/helpers.h"
|
||||||
#include "util/MemMapper/MemMapper.h"
|
#include "util/MemMapper/MemMapper.h"
|
||||||
|
|
||||||
#include "Cafe/HW/Espresso/Recompiler/IML/IML.h"
|
#include "IML/IML.h"
|
||||||
|
#include "BackendX64/BackendX64.h"
|
||||||
|
|
||||||
struct PPCInvalidationRange
|
struct PPCInvalidationRange
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue