summaryrefslogtreecommitdiff
path: root/libphobos/libdruntime
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2023-12-07 11:55:12 +0100
committerIain Buclaw <ibuclaw@gdcproject.org>2023-12-11 11:06:23 +0100
commitf9b4dbb8ac75f96c4897ba9aafcaf0bbad4fbe44 (patch)
tree0cbb768778c3ece2ccdae2f1e34aceb483917c1d /libphobos/libdruntime
parent63194a0e8ede9e15dfa01c6ec7aeea8f7702d3b7 (diff)
d: Merge upstream dmd, druntime 2bbf64907c, phobos b64bfbf91
D front-end changes: - Import dmd v2.106.0. D runtime changes: - Import druntime v2.106.0. Phobos changes: - Import phobos v2.106.0. gcc/d/ChangeLog: * Make-lang.in (D_FRONTEND_OBJS): Rename d/common-string.o to d/common-smallbuffer.o. * dmd/MERGE: Merge upstream dmd 2bbf64907c. * dmd/VERSION: Bump version to v2.106.0. * modules.cc (layout_moduleinfo_fields): Update for new front-end interface. (layout_moduleinfo): Likewise. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime 2bbf64907c. * src/MERGE: Merge upstream phobos b64bfbf91.
Diffstat (limited to 'libphobos/libdruntime')
-rw-r--r--libphobos/libdruntime/MERGE2
-rw-r--r--libphobos/libdruntime/core/cpuid.d7
2 files changed, 5 insertions, 4 deletions
diff --git a/libphobos/libdruntime/MERGE b/libphobos/libdruntime/MERGE
index aa0062c10eb..5edcee1c84d 100644
--- a/libphobos/libdruntime/MERGE
+++ b/libphobos/libdruntime/MERGE
@@ -1,4 +1,4 @@
-ff57fec51558013b25cadb7e83da9f4675915d56
+2bbf64907cbbb483d003e0a8fcf8b502e4883799
The first line of this file holds the git revision number of the last
merge done from the dlang/dmd repository.
diff --git a/libphobos/libdruntime/core/cpuid.d b/libphobos/libdruntime/core/cpuid.d
index 9c5735728b5..62edbac34f3 100644
--- a/libphobos/libdruntime/core/cpuid.d
+++ b/libphobos/libdruntime/core/cpuid.d
@@ -628,16 +628,17 @@ void getAMDcacheinfo()
if (max_extended_cpuid >= 0x8000_0006) {
// AMD K6-III or K6-2+ or later.
- ubyte numcores = 1;
+ uint numcores = 1;
if (max_extended_cpuid >= 0x8000_0008) {
+ // read the number of physical cores (minus 1) from the 8 lowest ECX bits
version (GNU_OR_LDC) asm pure nothrow @nogc {
"cpuid" : "=a" (dummy), "=c" (numcores) : "a" (0x8000_0008) : "ebx", "edx";
} else asm pure nothrow @nogc {
mov EAX, 0x8000_0008;
cpuid;
- mov numcores, CL;
+ mov numcores, ECX;
}
- ++numcores;
+ numcores = (numcores & 0xFF) + 1;
if (numcores>cpuFeatures.maxCores) cpuFeatures.maxCores = numcores;
}