Skip to content

Commit 97e57e9

Browse files
author
Valentina Giusti
committed
Use 'enum class' instead of 'enum' in NativeRegisterContextLinux_x86_x64.
Reviewers: labath, clayborg, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D24578 llvm-svn: 281528
1 parent 0535fec commit 97e57e9

File tree

2 files changed

+36
-36
lines changed

2 files changed

+36
-36
lines changed

lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ NativeRegisterContextLinux_x86_64::NativeRegisterContextLinux_x86_64(
268268
uint32_t concrete_frame_idx)
269269
: NativeRegisterContextLinux(native_thread, concrete_frame_idx,
270270
CreateRegisterInfoInterface(target_arch)),
271-
m_xstate_type(eXStateTypeNotValid), m_fpr(), m_iovec(), m_ymm_set(),
271+
m_xstate_type(XStateType::Invalid), m_fpr(), m_iovec(), m_ymm_set(),
272272
m_mpx_set(), m_reg_info(), m_gpr_x86_64() {
273273
// Set up data about ranges of valid registers.
274274
switch (target_arch.GetMachine()) {
@@ -664,12 +664,12 @@ Error NativeRegisterContextLinux_x86_64::ReadAllRegisterValues(
664664

665665
::memcpy(dst, &m_gpr_x86_64, GetRegisterInfoInterface().GetGPRSize());
666666
dst += GetRegisterInfoInterface().GetGPRSize();
667-
if (GetXStateType() == eXStateTypeFXSAVE)
667+
if (GetXStateType() == XStateType::FXSAVE)
668668
::memcpy(dst, &m_fpr.xstate.fxsave, sizeof(m_fpr.xstate.fxsave));
669-
else if (GetXStateType() == eXStateTypeXSAVE) {
669+
else if (GetXStateType() == XStateType::XSAVE) {
670670
lldb::ByteOrder byte_order = GetByteOrder();
671671

672-
if (IsCPUFeatureAvailable(avx)) {
672+
if (IsCPUFeatureAvailable(RegSet::avx)) {
673673
// Assemble the YMM register content from the register halves.
674674
for (uint32_t reg = m_reg_info.first_ymm; reg <= m_reg_info.last_ymm;
675675
++reg) {
@@ -684,7 +684,7 @@ Error NativeRegisterContextLinux_x86_64::ReadAllRegisterValues(
684684
}
685685
}
686686

687-
if (IsCPUFeatureAvailable(mpx)) {
687+
if (IsCPUFeatureAvailable(RegSet::mpx)) {
688688
for (uint32_t reg = m_reg_info.first_mpxr; reg <= m_reg_info.last_mpxc;
689689
++reg) {
690690
if (!CopyXSTATEtoMPX(reg)) {
@@ -756,19 +756,19 @@ Error NativeRegisterContextLinux_x86_64::WriteAllRegisterValues(
756756
return error;
757757

758758
src += GetRegisterInfoInterface().GetGPRSize();
759-
if (GetXStateType() == eXStateTypeFXSAVE)
759+
if (GetXStateType() == XStateType::FXSAVE)
760760
::memcpy(&m_fpr.xstate.fxsave, src, sizeof(m_fpr.xstate.fxsave));
761-
else if (GetXStateType() == eXStateTypeXSAVE)
761+
else if (GetXStateType() == XStateType::XSAVE)
762762
::memcpy(&m_fpr.xstate.xsave, src, sizeof(m_fpr.xstate.xsave));
763763

764764
error = WriteFPR();
765765
if (error.Fail())
766766
return error;
767767

768-
if (GetXStateType() == eXStateTypeXSAVE) {
768+
if (GetXStateType() == XStateType::XSAVE) {
769769
lldb::ByteOrder byte_order = GetByteOrder();
770770

771-
if (IsCPUFeatureAvailable(avx)) {
771+
if (IsCPUFeatureAvailable(RegSet::avx)) {
772772
// Parse the YMM register content from the register halves.
773773
for (uint32_t reg = m_reg_info.first_ymm; reg <= m_reg_info.last_ymm;
774774
++reg) {
@@ -783,7 +783,7 @@ Error NativeRegisterContextLinux_x86_64::WriteAllRegisterValues(
783783
}
784784
}
785785

786-
if (IsCPUFeatureAvailable(mpx)) {
786+
if (IsCPUFeatureAvailable(RegSet::mpx)) {
787787
for (uint32_t reg = m_reg_info.first_mpxr; reg <= m_reg_info.last_mpxc;
788788
++reg) {
789789
if (!CopyMPXtoXSTATE(reg)) {
@@ -808,7 +808,7 @@ bool NativeRegisterContextLinux_x86_64::HasFXSAVE() const {
808808
if (!__get_cpuid(1, &rax, &rbx, &rcx, &rdx))
809809
return false;
810810
if ((rdx & bit_FXSAVE) == bit_FXSAVE) {
811-
m_xstate_type = eXStateTypeFXSAVE;
811+
m_xstate_type = XStateType::FXSAVE;
812812
if (const_cast<NativeRegisterContextLinux_x86_64 *>(this)->ReadFPR().Fail())
813813
return false;
814814
return true;
@@ -823,7 +823,7 @@ bool NativeRegisterContextLinux_x86_64::HasXSAVE() const {
823823
if (!__get_cpuid(1, &rax, &rbx, &rcx, &rdx))
824824
return false;
825825
if ((rcx & bit_OSXSAVE) == bit_OSXSAVE) {
826-
m_xstate_type = eXStateTypeXSAVE;
826+
m_xstate_type = XStateType::XSAVE;
827827
if (const_cast<NativeRegisterContextLinux_x86_64 *>(this)->ReadFPR().Fail())
828828
return false;
829829
return true;
@@ -841,10 +841,10 @@ bool NativeRegisterContextLinux_x86_64::IsCPUFeatureAvailable(
841841

842842
__get_cpuid(1, &rax, &rbx, &rcx, &rdx);
843843
switch (feature_code) {
844-
case avx: // Check if CPU has AVX and if there is kernel support, by reading in the XCR0 area of XSAVE.
844+
case RegSet::avx: // Check if CPU has AVX and if there is kernel support, by reading in the XCR0 area of XSAVE.
845845
if (((rcx & bit_AVX) != 0) && ((m_fpr.xstate.xsave.i387.xcr0 & mask_XSTATE_AVX) == mask_XSTATE_AVX))
846846
return true;
847-
case mpx: // Check if CPU has MPX and if there is kernel support, by reading in the XCR0 area of XSAVE.
847+
case RegSet::mpx: // Check if CPU has MPX and if there is kernel support, by reading in the XCR0 area of XSAVE.
848848
if (__get_cpuid_max(0, NULL) > 7) {
849849
__cpuid_count(7, 0, rax, rbx, rcx, rdx);
850850
if (((rbx & bit_MPX) != 0) && ((m_fpr.xstate.xsave.i387.xcr0 & mask_XSTATE_MPX) == mask_XSTATE_MPX))
@@ -859,14 +859,14 @@ bool NativeRegisterContextLinux_x86_64::IsRegisterSetAvailable(
859859
uint32_t set_index) const {
860860
uint32_t num_sets = k_num_register_sets - k_num_extended_register_sets;
861861

862-
switch (set_index) {
863-
case gpr:
864-
case fpu:
862+
switch (static_cast<RegSet>(set_index)) {
863+
case RegSet::gpr:
864+
case RegSet::fpu:
865865
return (set_index < num_sets);
866-
case avx:
867-
return IsCPUFeatureAvailable(avx);
868-
case mpx:
869-
return IsCPUFeatureAvailable(mpx);
866+
case RegSet::avx:
867+
return IsCPUFeatureAvailable(RegSet::avx);
868+
case RegSet::mpx:
869+
return IsCPUFeatureAvailable(RegSet::mpx);
870870
default:
871871
return false;
872872
}
@@ -879,11 +879,11 @@ bool NativeRegisterContextLinux_x86_64::IsGPR(uint32_t reg_index) const {
879879

880880
NativeRegisterContextLinux_x86_64::XStateType
881881
NativeRegisterContextLinux_x86_64::GetXStateType() const {
882-
if (m_xstate_type == eXStateTypeNotValid) {
882+
if (m_xstate_type == XStateType::Invalid) {
883883
if (HasXSAVE())
884-
m_xstate_type = eXStateTypeXSAVE;
884+
m_xstate_type = XStateType::XSAVE;
885885
else if (HasFXSAVE())
886-
m_xstate_type = eXStateTypeFXSAVE;
886+
m_xstate_type = XStateType::FXSAVE;
887887
}
888888
return m_xstate_type;
889889
}
@@ -898,7 +898,7 @@ Error NativeRegisterContextLinux_x86_64::WriteFPR() {
898898
const lldb_private::ArchSpec &target_arch =
899899
GetRegisterInfoInterface().GetTargetArchitecture();
900900
switch (fpr_type) {
901-
case XStateType::eXStateTypeFXSAVE:
901+
case XStateType::FXSAVE:
902902
// For 32-bit inferiors on x86_32/x86_64 architectures,
903903
// FXSAVE area can be written using PTRACE_SETREGSET ptrace api
904904
// For 64-bit inferiors on x86_64 architectures,
@@ -913,7 +913,7 @@ Error NativeRegisterContextLinux_x86_64::WriteFPR() {
913913
assert(false && "Unhandled target architecture.");
914914
break;
915915
}
916-
case XStateType::eXStateTypeXSAVE:
916+
case XStateType::XSAVE:
917917
return WriteRegisterSet(&m_iovec, sizeof(m_fpr.xstate.xsave),
918918
NT_X86_XSTATE);
919919
default:
@@ -922,7 +922,7 @@ Error NativeRegisterContextLinux_x86_64::WriteFPR() {
922922
}
923923

924924
bool NativeRegisterContextLinux_x86_64::IsAVX(uint32_t reg_index) const {
925-
if (!IsCPUFeatureAvailable(avx))
925+
if (!IsCPUFeatureAvailable(RegSet::avx))
926926
return false;
927927
return (m_reg_info.first_ymm <= reg_index &&
928928
reg_index <= m_reg_info.last_ymm);
@@ -985,9 +985,9 @@ bool NativeRegisterContextLinux_x86_64::CopyYMMtoXSTATE(
985985
void *NativeRegisterContextLinux_x86_64::GetFPRBuffer() {
986986
const XStateType xstate_type = GetXStateType();
987987
switch (xstate_type) {
988-
case XStateType::eXStateTypeFXSAVE:
988+
case XStateType::FXSAVE:
989989
return &m_fpr.xstate.fxsave;
990-
case XStateType::eXStateTypeXSAVE:
990+
case XStateType::XSAVE:
991991
return &m_iovec;
992992
default:
993993
return nullptr;
@@ -997,9 +997,9 @@ void *NativeRegisterContextLinux_x86_64::GetFPRBuffer() {
997997
size_t NativeRegisterContextLinux_x86_64::GetFPRSize() {
998998
const XStateType xstate_type = GetXStateType();
999999
switch (xstate_type) {
1000-
case XStateType::eXStateTypeFXSAVE:
1000+
case XStateType::FXSAVE:
10011001
return sizeof(m_fpr.xstate.fxsave);
1002-
case XStateType::eXStateTypeXSAVE:
1002+
case XStateType::XSAVE:
10031003
return sizeof(m_iovec);
10041004
default:
10051005
return 0;
@@ -1011,7 +1011,7 @@ Error NativeRegisterContextLinux_x86_64::ReadFPR() {
10111011
const lldb_private::ArchSpec &target_arch =
10121012
GetRegisterInfoInterface().GetTargetArchitecture();
10131013
switch (xstate_type) {
1014-
case XStateType::eXStateTypeFXSAVE:
1014+
case XStateType::FXSAVE:
10151015
// For 32-bit inferiors on x86_32/x86_64 architectures,
10161016
// FXSAVE area can be read using PTRACE_GETREGSET ptrace api
10171017
// For 64-bit inferiors on x86_64 architectures,
@@ -1025,15 +1025,15 @@ Error NativeRegisterContextLinux_x86_64::ReadFPR() {
10251025
assert(false && "Unhandled target architecture.");
10261026
break;
10271027
}
1028-
case XStateType::eXStateTypeXSAVE:
1028+
case XStateType::XSAVE:
10291029
return ReadRegisterSet(&m_iovec, sizeof(m_fpr.xstate.xsave), NT_X86_XSTATE);
10301030
default:
10311031
return Error("Unrecognized FPR type");
10321032
}
10331033
}
10341034

10351035
bool NativeRegisterContextLinux_x86_64::IsMPX(uint32_t reg_index) const {
1036-
if (!IsCPUFeatureAvailable(mpx))
1036+
if (!IsCPUFeatureAvailable(RegSet::mpx))
10371037
return false;
10381038
return (m_reg_info.first_mpxr <= reg_index &&
10391039
reg_index <= m_reg_info.last_mpxc);

lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ class NativeRegisterContextLinux_x86_64 : public NativeRegisterContextLinux {
7777

7878
private:
7979
// Private member types.
80-
enum XStateType { eXStateTypeNotValid = 0, eXStateTypeFXSAVE, eXStateTypeXSAVE };
81-
enum RegSet { gpr, fpu, avx, mpx };
80+
enum class XStateType { Invalid, FXSAVE, XSAVE };
81+
enum class RegSet { gpr, fpu, avx, mpx };
8282

8383
// Info about register ranges.
8484
struct RegInfo {

0 commit comments

Comments
 (0)