aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/kmp_affinity.cpp
diff options
context:
space:
mode:
authorAndrey Churbanov <Andrey.Churbanov@intel.com>2016-08-05 15:59:11 +0000
committerAndrey Churbanov <Andrey.Churbanov@intel.com>2016-08-05 15:59:11 +0000
commit6c90de7aaf1ca81224734c1b3bdd6ae2a4bccd75 (patch)
tree849b03b8d3818822725f0a4c38b41232010c54a9 /runtime/src/kmp_affinity.cpp
parent03a057fa63e6f59cab6180bdf530558516c9da8d (diff)
Fixed x2APIC discovery for 256-processor architectures.
Mask for value read from ebx register returned by CPUID expanded to 0xFFFF. Differential Revision: https://reviews.llvm.org/D23203 git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@277825 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'runtime/src/kmp_affinity.cpp')
-rw-r--r--runtime/src/kmp_affinity.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/runtime/src/kmp_affinity.cpp b/runtime/src/kmp_affinity.cpp
index 5745f1e..594d8e4 100644
--- a/runtime/src/kmp_affinity.cpp
+++ b/runtime/src/kmp_affinity.cpp
@@ -1429,7 +1429,7 @@ __kmp_affinity_create_x2apicid_map(AddrUnsPair **address2os,
threadLevel = level;
coreLevel = -1;
pkgLevel = -1;
- __kmp_nThreadsPerCore = buf.ebx & 0xff;
+ __kmp_nThreadsPerCore = buf.ebx & 0xffff;
if (__kmp_nThreadsPerCore == 0) {
*msg_id = kmp_i18n_str_InvalidCpuidInfo;
return -1;
@@ -1441,7 +1441,7 @@ __kmp_affinity_create_x2apicid_map(AddrUnsPair **address2os,
//
coreLevel = level;
pkgLevel = -1;
- nCoresPerPkg = buf.ebx & 0xff;
+ nCoresPerPkg = buf.ebx & 0xffff;
if (nCoresPerPkg == 0) {
*msg_id = kmp_i18n_str_InvalidCpuidInfo;
return -1;
@@ -1456,7 +1456,7 @@ __kmp_affinity_create_x2apicid_map(AddrUnsPair **address2os,
continue;
}
pkgLevel = level;
- nPackages = buf.ebx & 0xff;
+ nPackages = buf.ebx & 0xffff;
if (nPackages == 0) {
*msg_id = kmp_i18n_str_InvalidCpuidInfo;
return -1;