Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 0 additions & 111 deletions runtime/compiler/x/env/J9CPU.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ J9::X86::CPU::supportsFeature(uint32_t feature)
static bool disableCPUDetectionTest = feGetEnv("TR_DisableCPUDetectionTest");
if (!disableCPUDetectionTest)
{
TR_ASSERT_FATAL(self()->supports_feature_test(feature), "Old API and new API did not match: processor feature %d\n", feature);
TR_ASSERT_FATAL(TRUE == omrsysinfo_processor_has_feature(&_supportedFeatureMasks, feature), "New processor feature usage detected, please add feature %d to _supportedFeatureMasks via TR::CPU::enableFeatureMasks()\n", feature);
}

Expand Down Expand Up @@ -259,113 +258,3 @@ J9::X86::CPU::is_test(OMRProcessorArchitecture p)
}
return false;
}

bool
J9::X86::CPU::supports_feature_test(uint32_t feature)
{
#if defined(J9VM_OPT_JITSERVER)
if (TR::CompilationInfo::getStream())
return true;
#endif /* defined(J9VM_OPT_JITSERVER) */
if (TR::comp()->compileRelocatableCode() || TR::comp()->compilePortableCode())
return true;

OMRPORT_ACCESS_FROM_OMRPORT(TR::Compiler->omrPortLib);
bool ans = (TRUE == omrsysinfo_processor_has_feature(&_processorDescription, feature));

switch(feature)
{
case OMR_FEATURE_X86_OSXSAVE:
return TR::CodeGenerator::getX86ProcessorInfo().enabledXSAVE() == ans;
case OMR_FEATURE_X86_FPU:
return TR::CodeGenerator::getX86ProcessorInfo().hasBuiltInFPU() == ans;
case OMR_FEATURE_X86_VME:
return TR::CodeGenerator::getX86ProcessorInfo().supportsVirtualModeExtension() == ans;
case OMR_FEATURE_X86_DE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsDebuggingExtension() == ans;
case OMR_FEATURE_X86_PSE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsPageSizeExtension() == ans;
case OMR_FEATURE_X86_TSC:
return TR::CodeGenerator::getX86ProcessorInfo().supportsRDTSCInstruction() == ans;
case OMR_FEATURE_X86_MSR:
return TR::CodeGenerator::getX86ProcessorInfo().hasModelSpecificRegisters() == ans;
case OMR_FEATURE_X86_PAE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsPhysicalAddressExtension() == ans;
case OMR_FEATURE_X86_MCE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsMachineCheckException() == ans;
case OMR_FEATURE_X86_CX8:
return TR::CodeGenerator::getX86ProcessorInfo().supportsCMPXCHG8BInstruction() == ans;
case OMR_FEATURE_X86_CMPXCHG16B:
return TR::CodeGenerator::getX86ProcessorInfo().supportsCMPXCHG16BInstruction() == ans;
case OMR_FEATURE_X86_APIC:
return TR::CodeGenerator::getX86ProcessorInfo().hasAPICHardware() == ans;
case OMR_FEATURE_X86_MTRR:
return TR::CodeGenerator::getX86ProcessorInfo().hasMemoryTypeRangeRegisters() == ans;
case OMR_FEATURE_X86_PGE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsPageGlobalFlag() == ans;
case OMR_FEATURE_X86_MCA:
return TR::CodeGenerator::getX86ProcessorInfo().hasMachineCheckArchitecture() == ans;
case OMR_FEATURE_X86_CMOV:
return TR::CodeGenerator::getX86ProcessorInfo().supportsCMOVInstructions() == ans;
case OMR_FEATURE_X86_PAT:
return TR::CodeGenerator::getX86ProcessorInfo().hasPageAttributeTable() == ans;
case OMR_FEATURE_X86_PSE_36:
return TR::CodeGenerator::getX86ProcessorInfo().has36BitPageSizeExtension() == ans;
case OMR_FEATURE_X86_PSN:
return TR::CodeGenerator::getX86ProcessorInfo().hasProcessorSerialNumber() == ans;
case OMR_FEATURE_X86_CLFSH:
return TR::CodeGenerator::getX86ProcessorInfo().supportsCLFLUSHInstruction() == ans;
case OMR_FEATURE_X86_DS:
return TR::CodeGenerator::getX86ProcessorInfo().supportsDebugTraceStore() == ans;
case OMR_FEATURE_X86_ACPI:
return TR::CodeGenerator::getX86ProcessorInfo().hasACPIRegisters() == ans;
case OMR_FEATURE_X86_MMX:
return TR::CodeGenerator::getX86ProcessorInfo().supportsMMXInstructions() == ans;
case OMR_FEATURE_X86_FXSR:
return TR::CodeGenerator::getX86ProcessorInfo().supportsFastFPSavesRestores() == ans;
case OMR_FEATURE_X86_SSE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSSE() == ans;
case OMR_FEATURE_X86_SSE2:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSSE2() == ans;
case OMR_FEATURE_X86_SSE3:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSSE3() == ans;
case OMR_FEATURE_X86_SSSE3:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSSSE3() == ans;
case OMR_FEATURE_X86_SSE4_1:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSSE4_1() == ans;
case OMR_FEATURE_X86_SSE4_2:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSSE4_2() == ans;
case OMR_FEATURE_X86_PCLMULQDQ:
return TR::CodeGenerator::getX86ProcessorInfo().supportsCLMUL() == ans;
case OMR_FEATURE_X86_AESNI:
return TR::CodeGenerator::getX86ProcessorInfo().supportsAESNI() == ans;
case OMR_FEATURE_X86_POPCNT:
return TR::CodeGenerator::getX86ProcessorInfo().supportsPOPCNT() == ans;
case OMR_FEATURE_X86_SS:
return TR::CodeGenerator::getX86ProcessorInfo().supportsSelfSnoop() == ans;
case OMR_FEATURE_X86_RTM:
return TR::CodeGenerator::getX86ProcessorInfo().supportsTM() == ans;
case OMR_FEATURE_X86_HTT:
return TR::CodeGenerator::getX86ProcessorInfo().supportsHyperThreading() == ans;
case OMR_FEATURE_X86_HLE:
return TR::CodeGenerator::getX86ProcessorInfo().supportsHLE() == ans;
case OMR_FEATURE_X86_TM:
return TR::CodeGenerator::getX86ProcessorInfo().hasThermalMonitor() == ans;
case OMR_FEATURE_X86_BMI2:
return TR::CodeGenerator::getX86ProcessorInfo().supportsBMI2() == ans;
case OMR_FEATURE_X86_AVX:
case OMR_FEATURE_X86_AVX_VNNI:
case OMR_FEATURE_X86_AVX2:
case OMR_FEATURE_X86_AVX512F:
case OMR_FEATURE_X86_AVX512VL:
case OMR_FEATURE_X86_AVX512BW:
case OMR_FEATURE_X86_AVX512DQ:
case OMR_FEATURE_X86_AVX512CD:
case OMR_FEATURE_X86_FMA:
return true;
default:
return false;
}
return false;
}

1 change: 0 additions & 1 deletion runtime/compiler/x/env/J9CPU.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ class OMR_EXTENSIBLE CPU : public J9::CPU
uint32_t getX86ProcessorFeatureFlags8();

bool is_test(OMRProcessorArchitecture p);
bool supports_feature_test(uint32_t feature);
};

}
Expand Down