these are not PCs that will run Windows 10, Windows 11, or any modern apps particularly well.
It's certainly possible they made a decision to start using that instruction but of course it is much more likely that they simply stared using either a new compiler or a new set of compiler switches during the OS compile. Likely to get some other benefit and what we see here is just a side-effect.It's unclear why POPCNT has become the load-bearing CPU instruction for a whole bunch of Windows components
New Windows version appears to CPU features that became common in the late 00s
The actual quote is "it counts the number of set bits in a machine word".Short for "population count," it's used for "counting the number of bits in a machine word,"...
Oh hi. So, how are you holding up? Because I'm a Potato! Oh, good. My slow clap processor made it into this thing. So we have that.Windows 11 on a tuber. Good for views, but if you want any serious work done that's what the PotatOS distro was designed for.
I recently picked up a mid-range Asus laptop for a really good price from a big-box office supply store that is closing. I was planning to replace Windows 11 Home with Linux, but the software for my wife’s new computerized embroidery machine only runs on Windows. So I dug in and made Windows 11 as good as Windows 11 can be. The result isn’t bad. It’s not great, but not bad either.I will continue my journey of avoiding Windows 11 for as long as I possibly can, which is hopefully forever.
2. I can't imagine why I'd run Windows 10 or 11 on a system this old having discovered Linux Mint with Cinnamon (and while I'm mostly a Windows user, I've found Mint with Cinnamon to be a great alternative) unless you're gaming, in which case it's probably retro-gaming and should run a different OS than Win10 or Win11 as well.
Am I the only one irked by the fact that POPCNT does not actually pop anything from the stack?
Couldn't they have called it CNTPOP instead?
Try Linux. After 25 years on Windows I put that behind me last year. Linux does everything my Windows machine did, even using many of the same Windows-only programs. My gaming is pretty tame, but it installed and runs all the games I played.I will continue my journey of avoiding Windows 11 for as long as I possibly can, which is hopefully forever.
Kernels and drivers are generally still written in assembly, so targeting specific instructions is almost always on purpose.
In the case of POPCNT, it can provide significant performance gains, because a single numeric value (e.g. word, dword, or quadword) can behave like an array. A normal array is made up of words, dwords, or quadwords, and is significantly larger, thus leading to larger code that may exceed CPU caches.
It could be an artifact of newer toolchains that target newer CPUs, or it could be a deliberate choice to improve performance.
No no no.Kernels and drivers are generally still written in assembly, so targeting specific instructions is almost always on purpose.
In the case of POPCNT, it can provide significant performance gains, because a single numeric value (e.g. word, dword, or quadword) can behave like an array. A normal array is made up of words, dwords, or quadwords, and is significantly larger, thus leading to larger code that may exceed CPU caches.
It could be an artifact of newer toolchains that target newer CPUs, or it could be a deliberate choice to improve performance.
I believe the issue is that MSFT doesn't want to offer long-term enterprise support to people wandering in off the internet. Windows 10 LTSC is for corporate customers, so it's the kind of thing you'd only purchase if you had a relationship with Microsoft's vendors.Windows 10 LTSC is very lightweight, and typically runs at about the same speed as Windows 7 on the same hardware, although you'll probably be happier with 8 gigs than 4. And the IoT edition will get security patches through 2032.
It's buying a legit copy that's the difficult part. It's super easy to pirate, but wow, Microsoft really doesn't want to sell it to you.
Oh, Lord and Lady. Writing a kernel mode driver in Visual Basic sounds like designing a stage one rocket to run on Mentos and Diet Coke. Technically possible, but what sins in a life deserve that?The kernel and some drivers typically use small bits of assembly. They're predominantly in C.
Fun fact: You can write drivers entirely in VB6 (yes, kernel mode drivers).
Try Linux. After 25 years on Windows I put that behind me last year. Linux does everything my Windows machine did, even using many of the same Windows-only programs. My gaming is pretty tame, but it installed and runs all the games I played.
If you're not intimidated by a CLI, can do online research, and aren't married to any Microsoft programs (though I believe most Office programs can be coaxed to run on Linux, though I haven't had a need to try), then it may be what you need.
popcnt gets used a lot in modern cryptography, which often is implemented in low-level assembly for both speed and correctness - sometimes you can't rely on the C compiler to make the correct optimization decision. In fact I think Intel added popcnt specifically at the NSA's request because security on x86 was slow and therefore often ignored. Other processors have had popcnt for decades.No no no.
Kernel and drivers are mostly written in high level languages (most probably C for Windows, with bits of C++ in some drivers).
I concur with others here: this is very likely an upgrade in the tooling.
But Im not sure you'll see any benefit from this: counting bits is not a frequent operation, meaning that the gain is very limited.
Speaking of which, Good God, have you ever tried to buy Windows Server? Even that mainstream product is almost impossible to buy as not-OEM license (you can't use OEM yourself you have to sell the server to someone).Windows 10 LTSC is an for corporate customers, so it's the kind of thing you'd only purchase if you had a relationship with Microsoft's vendors.
But Im not sure you'll see any benefit from this: counting bits is not a frequent operation, meaning that the gain is very limited.
popcnt gets used a lot in modern cryptography, which often is implemented in low-level assembly for both speed and correctness - sometimes you can't rely on the C compiler to make the correct optimization decision. In fact I think Intel added popcnt specifically at the NSA's request because security on x86 was slow and therefore often ignored. Other processors have had popcnt for decades.
But it also gets used in low-level linear algebra: the popcnt of a byte and the dot product of two 8-bit vectors are basically the same thing.
Linux has no issues with cutting off hardware as it's not a "thing" to start with. And instruction issues on older devices happens regularly, funny enough the ones with the issues are POPCNT and PCMPESTRI, both are SSE 4.2/4a commands, PCMPESTRI is a string comparison optimization. Both show up when things got compiled with -mnative on newer processors since especially POPCNT is super useful.And Linux continues to run on virtually anything and doesn't play these stupid Microsoft games
My old iMac runs Win11 pretty fantastically for normal computing. No complaints here. And it looks like it will continue to work as the CPU is listed as having the instruction set. That being said, I'll just move it over to Linux when the time comes. I suspect this is why Microsoft put up all the fake barriers. To not be committed to supporting the old hardware when the time came when they actually had a good reason to not support it.1. This seems like a nothingburger story that every tech news site has rushed to embrace lest someone else "scoop" them. SSE 4.2 is available on almost anything you'd want to run Windows 11 on.
2. I can't imagine why I'd run Windows 10 or 11 on a system this old having discovered Linux Mint with Cinnamon (and while I'm mostly a Windows user, I've found Mint with Cinnamon to be a great alternative) unless you're gaming, in which case it's probably retro-gaming and should run a different OS than Win10 or Win11 as well.
Oh, Lord and Lady. Writing a kernel mode driver in Visual Basic sounds like designing a stage one rocket to run on Mentos and Diet Coke. Technically possible, but what sins in a life deserve that?
Let’s see if they ever switch the minimum to Haswell or Broadwell…Most likely, they just changed the compiler target. The compiler tries to use the most efficient instruction available.
Before POPCNT, the compiler probably used a combination of less efficient instructions.