Skip to content

Commit

Permalink
Fix reference to OoB address in offsetof and remove rflags printout
Browse files Browse the repository at this point in the history
Adjust static array size to match new size.
Remove rflags from printing code and adjust offsets - fixes
printing off-by-one error.
  • Loading branch information
pmatos committed Apr 1, 2024
1 parent 2a625a4 commit 96087a6
Showing 1 changed file with 5 additions and 8 deletions.
13 changes: 5 additions & 8 deletions Source/Tools/CommonTools/HarnessHelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ namespace FEX::HarnessHelper {
}

if (BaseConfig.OptionRegDataCount > 0) {
static constexpr std::array<uint64_t, 44> OffsetArrayAVX = {{
static constexpr std::array<uint64_t, 43> OffsetArrayAVX = {{
offsetof(FEXCore::Core::CPUState, rip),
offsetof(FEXCore::Core::CPUState, gregs[FEXCore::X86State::REG_RAX]),
offsetof(FEXCore::Core::CPUState, gregs[FEXCore::X86State::REG_RBX]),
Expand Down Expand Up @@ -169,9 +169,8 @@ namespace FEX::HarnessHelper {
offsetof(FEXCore::Core::CPUState, mm[5][0]),
offsetof(FEXCore::Core::CPUState, mm[6][0]),
offsetof(FEXCore::Core::CPUState, mm[7][0]),
offsetof(FEXCore::Core::CPUState, mm[8][0]),
}};
static constexpr std::array<uint64_t, 44> OffsetArraySSE = {{
static constexpr std::array<uint64_t, 43> OffsetArraySSE = {{
offsetof(FEXCore::Core::CPUState, rip),
offsetof(FEXCore::Core::CPUState, gregs[FEXCore::X86State::REG_RAX]),
offsetof(FEXCore::Core::CPUState, gregs[FEXCore::X86State::REG_RBX]),
Expand Down Expand Up @@ -215,7 +214,6 @@ namespace FEX::HarnessHelper {
offsetof(FEXCore::Core::CPUState, mm[5][0]),
offsetof(FEXCore::Core::CPUState, mm[6][0]),
offsetof(FEXCore::Core::CPUState, mm[7][0]),
offsetof(FEXCore::Core::CPUState, mm[8][0]),
}};

uintptr_t DataOffset = BaseConfig.OptionRegDataOffset;
Expand Down Expand Up @@ -254,10 +252,9 @@ namespace FEX::HarnessHelper {
Name = "gs";
else if (NameIndex == 34)
Name ="fs";
else if (NameIndex == 35)
Name = "rflags";
else if (NameIndex >= 36 && NameIndex < 45)
Name = fextl::fmt::format("MM[{}][{}]", NameIndex - 36, j);
else if (NameIndex >= 35 && NameIndex < 43) {
Name = fextl::fmt::format("MM[{}][{}]", NameIndex - 35, j);
}

if (State1) {
CheckGPRs(fextl::fmt::format("Core1: {}: ", Name), State1Data[j], RegData->RegValues[j]);
Expand Down

0 comments on commit 96087a6

Please sign in to comment.