Skip to content

Commit 3084762

Browse files
committed
x86 asm: reorg README to match manual more closely a bit
1 parent 0d4ad3e commit 3084762

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

README.adoc

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -12478,7 +12478,7 @@ Vs <<x86-jcc-instructions,Jcc>>: https://stackoverflow.com/questions/6805692/x86
1247812478

1247912479
=== x86 miscellaneous instructions
1248012480

12481-
<<intel-manual-1>> 7.3.16 "Miscellaneous Instructions"
12481+
<<intel-manual-1>> 5.1.13 "Miscellaneous Instructions"
1248212482

1248312483
==== x86 NOP instruction
1248412484

@@ -12506,6 +12506,41 @@ Generated some polemic when kernel devs wanted to use it as part of `/dev/random
1250612506

1250712507
RDRAND sets the carry flag when data is ready so we must loop if the carry flag isn't set.
1250812508

12509+
=== x86 x87 FPU instructions
12510+
12511+
<<intel-manual-1>> 5.2 "X87 FPU INSTRUCTIONS"
12512+
12513+
Old floating point unit that you should likely not use anymore, prefer instead the newer <<x86-simd>> instructions.
12514+
12515+
=== x86 SIMD
12516+
12517+
History:
12518+
12519+
* link:https://en.wikipedia.org/wiki/MMX_(instruction_set)[MMX]: MultiMedia eXtension (unofficial name). 1997. MM0-MM7 64-bit registers.
12520+
* link:https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions[SSE]: Streaming SIMD Extensions. 1999. XMM0-XMM7 128-bit registers, XMM0-XMM15 for AMD in 64-bit mode.
12521+
* link:https://en.wikipedia.org/wiki/SSE2[SSE2]: 2004
12522+
* link:https://en.wikipedia.org/wiki/SSE3[SSE3]: 2006
12523+
* link:https://en.wikipedia.org/wiki/SSE4[SSE4]: 2006
12524+
* link:https://en.wikipedia.org/wiki/Advanced_Vector_Extensions[AVX]: Advanced Vector Extensions. 2011. YMM0–YMM15 256-bit registers in 64-bit mode. Extension of XMM.
12525+
* AVX2:2013
12526+
* AVX-512: 2016. 512-bit ZMM registers. Extension of YMM.
12527+
12528+
==== x86 SSE2 instructions
12529+
12530+
<<intel-manual-1>> 5.6 "SSE2 INSTRUCTIONS"
12531+
12532+
===== x86 ADDPD instruction
12533+
12534+
link:userland/arch/x86_64/addpd.S[]: ADDPS, ADDPD
12535+
12536+
Good first instruction to learn SIMD: <<simd-assembly>>
12537+
12538+
===== x86 PADDQ instruction
12539+
12540+
link:userland/arch/x86_64/paddq.S[]: PADDQ, PADDL, PADDW, PADDB
12541+
12542+
Good first instruction to learn SIMD: <<simd-assembly>>
12543+
1250912544
=== x86 system instructions
1251012545

1251112546
<<intel-manual-1>> 5.20 "SYSTEM INSTRUCTIONS"
@@ -12585,33 +12620,6 @@ TODO We didn't manage to find a working ARM analogue to <<x86-rdtsc-instruction>
1258512620
* https://stackoverflow.com/questions/31620375/arm-cortex-a7-returning-pmccntr-0-in-kernel-mode-and-illegal-instruction-in-u/31649809#31649809
1258612621
* https://blog.regehr.org/archives/794
1258712622

12588-
=== x86 SIMD
12589-
12590-
History:
12591-
12592-
* link:https://en.wikipedia.org/wiki/MMX_(instruction_set)[MMX]: MultiMedia eXtension (unofficial name). 1997. MM0-MM7 64-bit registers.
12593-
* link:https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions[SSE]: Streaming SIMD Extensions. 1999. XMM0-XMM7 128-bit registers, XMM0-XMM15 for AMD in 64-bit mode.
12594-
* link:https://en.wikipedia.org/wiki/SSE2[SSE2]: 2004
12595-
* link:https://en.wikipedia.org/wiki/SSE3[SSE3]: 2006
12596-
* link:https://en.wikipedia.org/wiki/SSE4[SSE4]: 2006
12597-
* link:https://en.wikipedia.org/wiki/Advanced_Vector_Extensions[AVX]: Advanced Vector Extensions. 2011. YMM0–YMM15 256-bit registers in 64-bit mode. Extension of XMM.
12598-
* AVX2:2013
12599-
* AVX-512: 2016. 512-bit ZMM registers. Extension of YMM.
12600-
12601-
==== x86 SSE2
12602-
12603-
===== x86 ADDPD instruction
12604-
12605-
link:userland/arch/x86_64/addpd.S[]: ADDPS, ADDPD
12606-
12607-
Good first instruction to learn SIMD: <<simd-assembly>>
12608-
12609-
===== x86 PADDQ instruction
12610-
12611-
link:userland/arch/x86_64/paddq.S[]: PADDQ, PADDL, PADDW, PADDB
12612-
12613-
Good first instruction to learn SIMD: <<simd-assembly>>
12614-
1261512623
=== x86 assembly bibliography
1261612624

1261712625
==== x86 official bibliography

0 commit comments

Comments
 (0)