Why 64 bit mode ( Long mode ) doesn’t use segment registers?

In a manner of speaking, when you perform array (“indexed”) type addressing with general registers, you are doing essentially the same thing as the segment registers. In the bad old days of 8-bit and 16-bit programming, many applications required much more data (and occasionally more code) than a 16-bit address could reach. So many CPUs … Read more

How to read the Intel Opcode notation

3.1.1.1 Opcode Column in the Instruction Summary Table (Instructions without VEX Prefix) The “Opcode” column in the table above shows the object code produced for each form of the instruction. When possible, codes are given as hexadecimal bytes in the same order in which they appear in memory. Definitions of entries other than hexadecimal bytes … Read more

Significant FMA performance anomaly experienced in the Intel Broadwell processor

Updated I’ve got no explanation for you, since I’m on Haswell, but I do have code to share that might help you or someone else with Broadwell or Skylake hardware isolate your problem. If you could please run it on your machine and share the results, we could gain an insight into what’s happening to … Read more

Why is floor() so slow?

A couple of things make floor slower than a cast and prevent vectorization. The most important one: floor can modify the global state. If you pass a value that is too huge to be represented as an integer in float format, the errno variable gets set to EDOM. Special handling for NaNs is done as … Read more

Running Intel® HAXM installer takes forever with Android Studio Setup Wizard on Windows 10

EDIT: As pointed out in https://stackoverflow.com/a/54053514/2279059, this driver is only needed for the Android virtual device. If you don’t need it (it is useful for debugging, etc.), just see that other answer about how to disable the virtual device in the installer. This workaround did it for me on a relatively fresh Windows 10 PC: … Read more

Why is Intel Haswell XEON CPU sporadically miscomputing FFTs and ART?

EDIT: Problem solved. I have to shout out a huge Sorry to the community and a big thank you for your hints. Sorry to user anonymous, who seems to be involved into kernel development. What happened? We spent another 2 days debugging and fiddling around with the program code. No implementation problems were found. BUT: … Read more

ASM: MASM, NASM, FASM?

MASM (Microsoft Assembler) is the popular assembler for Windows. MASM is for 16-bit and 32-bit applications(x86). ML64 is the one for 64 bit sources (AMD64/x86-64) NASM (Netwide Assembler) is the popular assembler for Linux but is available on Windows too. NASM supports 16-bit, 32 bit and 64 bit programs. FASM (Flat Assembler) is available for … Read more