flat assembler
Message board for the users of flat assembler.
Index
> Main > Database listing in which CPU instruction first appeared? |
Author |
|
zhak 02 May 2017, 19:12
Sometimes I'm having hard time figuring out in what processor a particular instruction first appeared (talking about IA-32 / Intel 64 / AMD64). Intel Manual doesn't provide this info most of the time, so I'm just surfing Internet in search of any mentions.
For example, I discovered that MOVBE is Atom-specific instruction completely accidentally, browsing questions on StackOverflow. So, maybe there's some resource which I'm not aware of, like https://courses.engr.illinois.edu/ece390/resources/opcodes.html but a more complete one? |
|||
02 May 2017, 19:12 |
|
triplefault 02 May 2017, 22:43
While I don't know about a list as organized as the one you posted I think the GCC manuals may have some of the information you are looking for. They have a list of CPU types and the instruction subsets supported by each of them. However, they only list instruction subsets so if you want to know when a particular instruction appeared you'll have to know to which instruction subset it belongs.
https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html |
|||
02 May 2017, 22:43 |
|
rugxulo 08 May 2017, 13:42
Are you just curious? It doesn't practically matter when/where it was first supported, rather only if/whether your current target cpu supports it (e.g. check CPUID at runtime, branch accordingly).
But see NASM -- Appendix B : Instruction List. E.g. it says "MOVBE" was "NEHALEM", "CLMUL" was "WESTMERE", etc. |
|||
08 May 2017, 13:42 |
|
zhak 08 May 2017, 14:48
Well, it contradicts to what's stated on Intel site: https://software.intel.com/en-us/articles/disable-movbe-to-test-intel-atom-targeted-code-on-non-atom-platforms/
Quote:
So' I'd expect it to be bonnell, not nehalem. Apart from curiosity, I'm creating a framework for my future project based on fasmg engine. As one of the features it should allow selecting target cpu with a set of default options. But I don't want to take some list from nasm or gcc or whatever and blindly follow it. I just want to know exactly what I'm doing, so I have to gather information by crumbs and check and re-check it over and over again %) |
|||
08 May 2017, 14:48 |
|
VEG 08 May 2017, 21:28
Quote: I discovered that MOVBE is Atom-specific instruction https://en.wikipedia.org/wiki/Jaguar_%28microarchitecture%29 Quote: The Jaguar core has support for the following instruction sets and instructions: MMX, SSE, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2, AVX, F16C, CLMUL, AES, BMI1, MOVBE (Move Big-Endian instruction), XSAVE/XSAVEOPT, ABM (POPCNT/LZCNT), and AMD-V. https://arstechnica.com/gadgets/2013/05/a-look-at-haswell/ Quote: As an aside, Haswell adds a big-endian move instruction (MOVBE) that can convert to and from traditional x86 little-endian format (big-endian data stores the most significant byte first, while little endian stores the least significant byte first). This was originally introduced in Atom, and it was added to ensure full compatibility and improve performance for embedded applications. https://software.intel.com/en-us/articles/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family Quote: The 4th generation Intel® Core™ processor family (codenamed Haswell) introduces support for many new instructions that are specifically designed to provide better performance to a broad range of applications such as: media, gaming, data processing, hashing, cryptography, etc. The new instructions can be divided into the following categories: And it seems that FASMG doesn't support this instruction |
|||
08 May 2017, 21:28 |
|
Tomasz Grysztar 08 May 2017, 22:02
VEG wrote: And it seems that FASMG doesn't support this instruction |
|||
08 May 2017, 22:02 |
|
zhak 08 May 2017, 23:23
Quote:
This is some useful info. thanks, VEG |
|||
08 May 2017, 23:23 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.