Map and projects (the most frequently updated page of this blog)

2010/01/02

when CPUs have too many opcodes...

Back from my last post, to real machines, I decided to release as-is a YASM source that contains most x86 32bits opcodes, including SSE, AVX, FPU,...

My conclusion is that there are way too many!

You can use it just for curiosity or testing your favorite disassembler.

Source Code (Yasm)

the longest opcode (as a word) is
vaeskeygenassist xmm0, xmm0, 0
even though the recent
vbroadcastf128 ymm0, [0]
is not far behind.

and
vpermil2pd ymm0, ymm0, ymm0, ymm0, 0
is commented out (removed from the specs), which is a shame, it would be so great to have 5 operands!

*Update* Thanks to Sebastian Biallas for the correction - btw his HT Editor disassemble everything!

[...]

Quand les processeurs ont trop d'instructions...

Retour aux vraies machines après mon billet précèdent, j'ai décidé de rendre public tel quel un fichier source en YASM, qui contient la plupart des instructions x86 32bits, y compris SSE, AVX, FPU...

Pour résumer, il y en a beaucoup trop!

Vous pouvez jeter un oeil par curiosité, ou pour tester votre désassembleur favori.

Code Source (Yasm)

l'instruction la plus longue (en tant que mot) est
vaeskeygenassist xmm0, xmm0, 0
même si le récent
vbroadcastf128 ymm0, [0]
n'est pas loin derrière.

et
vpermil2pd ymm0, ymm0, ymm0, ymm0, 0
est mis en commentaire (supprimé de l'implémentation officielle), ce qui est dommage, ça serait si génial d'avoir 5 arguments!

*MAJ* Merci à Sebastian Biallas pour la correction - au fait, son HT Editor désassemble tous les opcodes !

1 comment:

  1. Very interesting, didn't know about this new AVX set. Thanks!

    ReplyDelete