Skip to content
Permalink
Browse files

[lldb] [Process/NetBSD] Remove unnecessary FPU presence checks for x8…

…6_64

Remove the checks for FPU presence, FXSAVE support and usage from
the code for x86_64.  Those are always true for this architecture,
and in fact are hardcoded to true inside NetBSD kernel.

Differential Revision: https://reviews.llvm.org/D63554

llvm-svn: 363823
  • Loading branch information...
mgorny committed Jun 19, 2019
1 parent 64b60df commit a644b04b8cd80e5a7aa4185610fe01570b9827de
Showing with 1 addition and 53 deletions.
  1. +1 −53 lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
@@ -90,58 +90,6 @@ static const RegisterSet g_reg_sets_x86_64[k_num_register_sets] = {
};

#define REG_CONTEXT_SIZE (GetRegisterInfoInterface().GetGPRSize())

const int fpu_present = []() -> int {
int mib[2];
int error;
size_t len;
int val;

len = sizeof(val);
mib[0] = CTL_MACHDEP;
mib[1] = CPU_FPU_PRESENT;

error = sysctl(mib, __arraycount(mib), &val, &len, NULL, 0);
if (error)
errx(EXIT_FAILURE, "sysctl");

return val;
}();

const int osfxsr = []() -> int {
int mib[2];
int error;
size_t len;
int val;

len = sizeof(val);
mib[0] = CTL_MACHDEP;
mib[1] = CPU_OSFXSR;

error = sysctl(mib, __arraycount(mib), &val, &len, NULL, 0);
if (error)
errx(EXIT_FAILURE, "sysctl");

return val;
}();

const int fpu_save = []() -> int {
int mib[2];
int error;
size_t len;
int val;

len = sizeof(val);
mib[0] = CTL_MACHDEP;
mib[1] = CPU_FPU_SAVE;

error = sysctl(mib, __arraycount(mib), &val, &len, NULL, 0);
if (error)
errx(EXIT_FAILURE, "sysctl");

return val;
}();

} // namespace

NativeRegisterContextNetBSD *
@@ -197,7 +145,7 @@ int NativeRegisterContextNetBSD_x86_64::GetSetForNativeRegNum(
if (reg_num <= k_last_gpr_x86_64)
return GPRegSet;
else if (reg_num <= k_last_fpr_x86_64)
return (fpu_present == 1 && osfxsr == 1 && fpu_save >= 1) ? FPRegSet : -1;
return FPRegSet;
else if (reg_num <= k_last_avx_x86_64)
return -1; // AVX
else if (reg_num <= k_last_mpxr_x86_64)

0 comments on commit a644b04

Please sign in to comment.
You can’t perform that action at this time.