rec-x64: don't use vfmadd to avoid intel/amd variations

This commit is contained in:
Flyinghead 2021-01-08 21:40:13 +01:00
parent e5b3c5268b
commit 36451614d2
8 changed files with 9 additions and 20 deletions

View File

@ -616,7 +616,6 @@ target_sources(${PROJECT_NAME} PRIVATE
core/hw/sh4/dyna/decoder_opcodes.h
core/hw/sh4/dyna/driver.cpp
core/hw/sh4/dyna/ngen.h
core/hw/sh4/dyna/rec_config.h
core/hw/sh4/dyna/regalloc.h
core/hw/sh4/dyna/shil_canonical.h
core/hw/sh4/dyna/shil.cpp

View File

@ -891,7 +891,7 @@ static bool dec_generic(u32 op)
//skip the aggregated opcodes
state.cpu.rpc += 128;
blk->guest_cycles += CPU_RATIO*64;
blk->guest_cycles += 64;
}
else
{
@ -923,7 +923,7 @@ static bool dec_generic(u32 op)
//skip the aggregated opcodes
state.cpu.rpc+=128;
blk->guest_cycles += CPU_RATIO * 64;
blk->guest_cycles += 64;
}
else
{
@ -1017,10 +1017,8 @@ bool dec_DecodeBlock(RuntimeBlockInfo* rbi,u32 max_cycles)
blk->guest_opcodes++;
if (!mmu_enabled())
{
if (op>=0xF000)
blk->guest_cycles+=0;
else
blk->guest_cycles+=CPU_RATIO;
if (op < 0xF000)
blk->guest_cycles++;
}
else
{

View File

@ -41,7 +41,6 @@
*/
#pragma once
#include "rec_config.h"
#include "decoder.h"
#include "blockmanager.h"

View File

@ -1,2 +0,0 @@
#pragma once
#define CPU_RATIO (1)

View File

@ -7,7 +7,6 @@
.equ SH4_TIMESLICE, 448
.equ BM_BLOCKLIST_MASK, 65532 @FFFC
.equ CPU_RATIO, 5
#if defined(__APPLE__)
#define CSYM(n) _##n

View File

@ -248,7 +248,7 @@ static void handle_mem_exception(u32 exception_raised, u32 pc)
spc = pc - 1;
else
spc = pc;
cycle_counter += CPU_RATIO * 2; // probably more is needed but no easy way to find out
cycle_counter += 2; // probably more is needed but no easy way to find out
longjmp(jmp_env, 1);
}
}
@ -288,7 +288,7 @@ static void handle_sh4_exception(SH4ThrownException& ex, u32 pc)
pc--;
}
Do_Exception(pc, ex.expEvn, ex.callVect);
cycle_counter += CPU_RATIO * 4; // probably more is needed
cycle_counter += 4; // probably more is needed
longjmp(jmp_env, 1);
}
@ -1035,9 +1035,9 @@ public:
{
movss(rd, rs1);
}
if (cpu.has(Xbyak::util::Cpu::tFMA))
vfmadd231ss(rd, rs2, rs3);
else
//if (cpu.has(Xbyak::util::Cpu::tFMA))
// vfmadd231ss(rd, rs2, rs3);
//else
{
movss(xmm0, rs2);
mulss(xmm0, rs3);

View File

@ -526,7 +526,6 @@
9C7A3A2B18C806DF0070BB5F /* decoder_opcodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_opcodes.h; sourceTree = "<group>"; };
9C7A3A2C18C806DF0070BB5F /* driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = driver.cpp; sourceTree = "<group>"; };
9C7A3A2D18C806DF0070BB5F /* ngen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ngen.h; sourceTree = "<group>"; };
9C7A3A2E18C806DF0070BB5F /* rec_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rec_config.h; sourceTree = "<group>"; };
9C7A3A2F18C806DF0070BB5F /* regalloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regalloc.h; sourceTree = "<group>"; };
9C7A3A3018C806DF0070BB5F /* shil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shil.cpp; sourceTree = "<group>"; };
9C7A3A3118C806DF0070BB5F /* shil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shil.h; sourceTree = "<group>"; };
@ -1220,7 +1219,6 @@
9C7A3A2B18C806DF0070BB5F /* decoder_opcodes.h */,
9C7A3A2C18C806DF0070BB5F /* driver.cpp */,
9C7A3A2D18C806DF0070BB5F /* ngen.h */,
9C7A3A2E18C806DF0070BB5F /* rec_config.h */,
9C7A3A2F18C806DF0070BB5F /* regalloc.h */,
9C7A3A3018C806DF0070BB5F /* shil.cpp */,
9C7A3A3118C806DF0070BB5F /* shil.h */,

View File

@ -519,7 +519,6 @@
84B7BE131B72720100F9733F /* decoder_opcodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_opcodes.h; sourceTree = "<group>"; };
84B7BE141B72720100F9733F /* driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = driver.cpp; sourceTree = "<group>"; };
84B7BE151B72720100F9733F /* ngen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ngen.h; sourceTree = "<group>"; };
84B7BE161B72720100F9733F /* rec_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rec_config.h; sourceTree = "<group>"; };
84B7BE171B72720100F9733F /* regalloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regalloc.h; sourceTree = "<group>"; };
84B7BE181B72720100F9733F /* shil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shil.cpp; sourceTree = "<group>"; };
84B7BE191B72720100F9733F /* shil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shil.h; sourceTree = "<group>"; };
@ -1519,7 +1518,6 @@
84B7BE131B72720100F9733F /* decoder_opcodes.h */,
84B7BE141B72720100F9733F /* driver.cpp */,
84B7BE151B72720100F9733F /* ngen.h */,
84B7BE161B72720100F9733F /* rec_config.h */,
84B7BE171B72720100F9733F /* regalloc.h */,
84B7BE181B72720100F9733F /* shil.cpp */,
84B7BE191B72720100F9733F /* shil.h */,