a64_jitstate: Have 128-bit wide spills
This commit is contained in:
parent
b513b2ef05
commit
d497464c9f
2 changed files with 3 additions and 3 deletions
|
@ -42,10 +42,10 @@ struct A64JitState {
|
||||||
alignas(16) std::array<u64, 64> vec{}; // Extension registers.
|
alignas(16) std::array<u64, 64> vec{}; // Extension registers.
|
||||||
|
|
||||||
static constexpr size_t SpillCount = 64;
|
static constexpr size_t SpillCount = 64;
|
||||||
std::array<u64, SpillCount> spill{}; // Spill.
|
alignas(16) std::array<std::array<u64, 2>, SpillCount> spill{}; // Spill.
|
||||||
static Xbyak::Address GetSpillLocationFromIndex(size_t i) {
|
static Xbyak::Address GetSpillLocationFromIndex(size_t i) {
|
||||||
using namespace Xbyak::util;
|
using namespace Xbyak::util;
|
||||||
return qword[r15 + offsetof(A64JitState, spill) + i * sizeof(u64)];
|
return xword[r15 + offsetof(A64JitState, spill) + i * sizeof(u64) * 2];
|
||||||
}
|
}
|
||||||
|
|
||||||
// For internal use (See: BlockOfCode::RunCode)
|
// For internal use (See: BlockOfCode::RunCode)
|
||||||
|
|
|
@ -53,7 +53,7 @@ inline size_t HostLocBitWidth(HostLoc loc) {
|
||||||
if (HostLocIsXMM(loc))
|
if (HostLocIsXMM(loc))
|
||||||
return 128;
|
return 128;
|
||||||
if (HostLocIsSpill(loc))
|
if (HostLocIsSpill(loc))
|
||||||
return 64;
|
return 128;
|
||||||
if (HostLocIsFlag(loc))
|
if (HostLocIsFlag(loc))
|
||||||
return 1;
|
return 1;
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
|
|
Loading…
Reference in a new issue