mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-01 16:05:07 +01:00
Merge pull request #4154 from FearlessTobi/port-1063
Port #1063 from yuzu: "common/xbyak_abi: Mark defined functions in header as inline "
This commit is contained in:
commit
270155066c
@ -9,10 +9,9 @@
|
|||||||
#include "common/assert.h"
|
#include "common/assert.h"
|
||||||
#include "common/bit_set.h"
|
#include "common/bit_set.h"
|
||||||
|
|
||||||
namespace Common {
|
namespace Common::X64 {
|
||||||
namespace X64 {
|
|
||||||
|
|
||||||
int RegToIndex(const Xbyak::Reg& reg) {
|
inline int RegToIndex(const Xbyak::Reg& reg) {
|
||||||
using Kind = Xbyak::Reg::Kind;
|
using Kind = Xbyak::Reg::Kind;
|
||||||
ASSERT_MSG((reg.getKind() & (Kind::REG | Kind::XMM)) != 0,
|
ASSERT_MSG((reg.getKind() & (Kind::REG | Kind::XMM)) != 0,
|
||||||
"RegSet only support GPRs and XMM registers.");
|
"RegSet only support GPRs and XMM registers.");
|
||||||
@ -152,8 +151,8 @@ constexpr size_t ABI_SHADOW_SPACE = 0;
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ABI_CalculateFrameSize(BitSet32 regs, size_t rsp_alignment, size_t needed_frame_size,
|
inline void ABI_CalculateFrameSize(BitSet32 regs, size_t rsp_alignment, size_t needed_frame_size,
|
||||||
s32* out_subtraction, s32* out_xmm_offset) {
|
s32* out_subtraction, s32* out_xmm_offset) {
|
||||||
int count = (regs & ABI_ALL_GPRS).Count();
|
int count = (regs & ABI_ALL_GPRS).Count();
|
||||||
rsp_alignment -= count * 8;
|
rsp_alignment -= count * 8;
|
||||||
size_t subtraction = 0;
|
size_t subtraction = 0;
|
||||||
@ -174,8 +173,8 @@ void ABI_CalculateFrameSize(BitSet32 regs, size_t rsp_alignment, size_t needed_f
|
|||||||
*out_xmm_offset = (s32)(subtraction - xmm_base_subtraction);
|
*out_xmm_offset = (s32)(subtraction - xmm_base_subtraction);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ABI_PushRegistersAndAdjustStack(Xbyak::CodeGenerator& code, BitSet32 regs,
|
inline size_t ABI_PushRegistersAndAdjustStack(Xbyak::CodeGenerator& code, BitSet32 regs,
|
||||||
size_t rsp_alignment, size_t needed_frame_size = 0) {
|
size_t rsp_alignment, size_t needed_frame_size = 0) {
|
||||||
s32 subtraction, xmm_offset;
|
s32 subtraction, xmm_offset;
|
||||||
ABI_CalculateFrameSize(regs, rsp_alignment, needed_frame_size, &subtraction, &xmm_offset);
|
ABI_CalculateFrameSize(regs, rsp_alignment, needed_frame_size, &subtraction, &xmm_offset);
|
||||||
|
|
||||||
@ -195,8 +194,8 @@ size_t ABI_PushRegistersAndAdjustStack(Xbyak::CodeGenerator& code, BitSet32 regs
|
|||||||
return ABI_SHADOW_SPACE;
|
return ABI_SHADOW_SPACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ABI_PopRegistersAndAdjustStack(Xbyak::CodeGenerator& code, BitSet32 regs, size_t rsp_alignment,
|
inline void ABI_PopRegistersAndAdjustStack(Xbyak::CodeGenerator& code, BitSet32 regs,
|
||||||
size_t needed_frame_size = 0) {
|
size_t rsp_alignment, size_t needed_frame_size = 0) {
|
||||||
s32 subtraction, xmm_offset;
|
s32 subtraction, xmm_offset;
|
||||||
ABI_CalculateFrameSize(regs, rsp_alignment, needed_frame_size, &subtraction, &xmm_offset);
|
ABI_CalculateFrameSize(regs, rsp_alignment, needed_frame_size, &subtraction, &xmm_offset);
|
||||||
|
|
||||||
@ -217,5 +216,4 @@ void ABI_PopRegistersAndAdjustStack(Xbyak::CodeGenerator& code, BitSet32 regs, s
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace X64
|
} // namespace Common::X64
|
||||||
} // namespace Common
|
|
||||||
|
@ -8,8 +8,7 @@
|
|||||||
#include <xbyak.h>
|
#include <xbyak.h>
|
||||||
#include "common/x64/xbyak_abi.h"
|
#include "common/x64/xbyak_abi.h"
|
||||||
|
|
||||||
namespace Common {
|
namespace Common::X64 {
|
||||||
namespace X64 {
|
|
||||||
|
|
||||||
// Constants for use with cmpps/cmpss
|
// Constants for use with cmpps/cmpss
|
||||||
enum {
|
enum {
|
||||||
@ -45,5 +44,4 @@ inline void CallFarFunction(Xbyak::CodeGenerator& code, const T f) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace X64
|
} // namespace Common::X64
|
||||||
} // namespace Common
|
|
||||||
|
Loading…
Reference in New Issue
Block a user