3 ms·
I did a double take when I saw the generated assembly reference %r8d. Apparently this is a register that was added with AMD64. I guess that's what I get for no
by wtracy 14y ago
I did a double take when I saw the generated assembly reference %r8d.
Apparently this is a register that was added with AMD64. I guess that's what I get for not keeping up with x86 assembly over the last five years.
- 0x0 14y agoThat's not valid in standard 32bit x86 assembly, is it? So in fact this is actually x86_64 / amd64 assembly, almost a different architecture. Edit: It is not valid according to http://www.codeproject.com/Articles/45788/The-Real-Protected-Long-mode-assembly-tutorial-for http://www.codeproject.com/Articles/45788/The-Real-Protected... - so headlining with "x86" is misleading at best.
- technogeek00 14y agoCorrect the %r8 - %r15 registers were added by the x86_64 architecture and are 64-bit in length just as the others are now. They are commonly used for passing arguments to functions.
- mjb 14y agoThe memory semantics are standard x86, but you are right that the registers are from x86_64 (and 64 bit mode at that). I'll update the article to clarify that point.
- wolf550e 14y agoAt what point do we just call x86_64 "x86"? Do you for example have any x86 hardware that doesn't support x86_64? If so, what is it and what is it used for? from http://en.wikipedia.org/wiki/X86-64 http://en.wikipedia.org/wiki/X86-64 >> The first AMD64-based processor, the Opteron, was released in April 2003. >> The first processor to implement Intel 64 was the multi-socket processor Xeon code-named Nocona in June 2004. >> Intel's official launch of Intel 64 (under the name EM64T at that time) in mainstream desktop processors was the N0 Stepping Prescott-2M. All 9xx, 8xx, 6xx, 5x9, 5x6, 5x1, 3x6, and 3x1 series CPUs have Intel 64 enabled, as do the Core 2 CPUs, as will future Intel CPUs for workstations or servers. Intel 64 is also present in the last members of the Celeron D line. >> The first Intel mobile processor implementing Intel 64 is the Merom version of the Core 2 processor, which was released on 27 July 2006.