Skip to content

Instantly share code, notes, and snippets.

@dawud
Created December 12, 2018 09:50
Show Gist options
  • Select an option

  • Save dawud/96211600b3d5c554dc076197300ac061 to your computer and use it in GitHub Desktop.

Select an option

Save dawud/96211600b3d5c554dc076197300ac061 to your computer and use it in GitHub Desktop.
# Seen on https://unix.stackexchange.com/a/19048/39456
# https://pastebin.com/raw/EU23iAvL
## preserve tabulation, or you shall die!!111 ##
objdump -d -Mintel -j .text "$@" >111.tmp
(
echo -n 'cpuid: '; grep -cwF ' cpuid' 111.tmp
echo -n 'nop: '; grep -cwF ' nop' 111.tmp
echo -n 'call: '; grep -cwF ' call' 111.tmp
echo -n 'i486: '
grep -cwF ' bswap
cmpxchg
invd
invlpg
wbinvd
xadd' 111.tmp
echo -n 'i586: '
grep -cwF ' cmpxchg8b
rdmsr
rdtsc
wrmsr' 111.tmp
echo -n 'i686: '
grep -cwF ' cmova
cmovae
cmovb
cmovbe
cmovc
cmove
cmovg
cmovge
cmovl
cmovle
cmovna
cmovnae
cmovnb
cmovnbe
cmovnc
cmovne
cmovng
cmovnge
cmovnl
cmovnle
cmovno
cmovnp
cmovns
cmovnz
cmovo
cmovp
cmovs
cmovz
fcmova
fcmovae
fcmovb
fcmovbe
fcmove
fcmovna
fcmovnae
fcmovnb
fcmovnbe
fcmovne
fcmovnu
fcmovu
fcomi
fcomip
fcompi
fucomi
fucomip
fucompi
fxrstor
fxsave
rdpmc
sysenter
sysexit
ud2
ud2a
ud2b' 111.tmp
echo -n 'mmx: '
grep -cwF ' emms
movd
movq
packssdw
packsswb
packuswb
paddb
paddd
paddsb
paddsw
paddusb
paddusw
paddw
pand
pandn
pcmpeqb
pcmpeqd
pcmpeqw
pcmpgtb
pcmpgtd
pcmpgtw
pmaddwd
pmulhw
pmullw
por
pslld
psllq
psllw
psrad
psraw
psrld
psrlq
psrlw
psubb
psubd
psubsb
psubsw
psubusb
psubusw
psubw
punpckhbw
punpckhdq
punpckhwd
punpcklbw
punpckldq
punpcklwd
pxor' 111.tmp
echo -n 'sse: '
grep -cwF ' addps
addss
andnps
andps
cmpeqps
cmpeqss
cmpleps
cmpless
cmpltps
cmpltss
cmpneqps
cmpneqss
cmpnleps
cmpnless
cmpnltps
cmpnltss
cmpordps
cmpordss
cmpps
cmpss
cmpunordps
cmpunordss
comiss
cvtpi2ps
cvtps2pi
cvtsi2ss
cvtss2si
cvttps2pi
cvttss2si
divps
divss
ldmxcsr
maskmovq
maxps
maxss
minps
minss
movaps
movhlps
movhps
movlhps
movlps
movmskps
movntps
movntq
movss
movups
mulps
mulss
orps
pavgb
pavgw
pextrw
pinsrw
pmaxsw
pmaxub
pminsw
pminub
pmovmskb
pmulhuw
prefetchnta
prefetcht0
prefetcht1
prefetcht2
psadbw
pshufw
rcpps
rcpss
rsqrtps
rsqrtss
sfence
shufps
sqrtps
sqrtss
stmxcsr
subps
subss
ucomiss
unpckhps
unpcklps
xorps' 111.tmp
echo -n 'sse2: '
grep -cwF ' addpd
addsd
andnpd
andpd
clflush
cmpeqpd
cmpeqsd
cmplepd
cmplesd
cmpltpd
cmpltsd
cmpneqpd
cmpneqsd
cmpnlepd
cmpnlesd
cmpnltpd
cmpnltsd
cmpordpd
cmpordsd
cmppd
cmpsd
cmpunordpd
cmpunordsd
comisd
cvtdq2pd
cvtdq2ps
cvtpd2dq
cvtpd2pi
cvtpd2ps
cvtpi2pd
cvtps2dq
cvtps2pd
cvtsd2si
cvtsd2ss
cvtsi2sd
cvtss2sd
cvttpd2dq
cvttpd2pi
cvttps2dq
cvttsd2si
divpd
divsd
lfence
maskmovdqu
maxpd
maxsd
mfence
minpd
minsd
movapd
movd
movdq2q
movdqa
movdqu
movhpd
movlpd
movmskpd
movntdq
movnti
movntpd
movq
movq2dq
movsd
movupd
mulpd
mulsd
orpd
packssdw
packsswb
packuswb
paddb
paddd
paddq
paddsb
paddsw
paddusb
paddusw
paddw
pand
pandn
pause
pavgb
pavgw
pcmpeqb
pcmpeqd
pcmpeqw
pcmpgtb
pcmpgtd
pcmpgtw
pextrw
pinsrw
pmaddwd
pmaxsw
pmaxub
pminsw
pminub
pmovmskb
pmulhuw
pmulhw
pmullw
pmuludq
por
psadbw
pshufd
pshufhw
pshuflw
pslld
pslldq
psllq
psllw
psrad
psraw
psrld
psrldq
psrlq
psrlw
psubb
psubd
psubq
psubsb
psubsw
psubusb
psubusw
psubw
punpckhbw
punpckhdq
punpckhqdq
punpckhwd
punpcklbw
punpckldq' 111.tmp
echo -n 'sse3: '
grep -cwF ' addsubpd
addsubps
fisttp
fisttpl
fisttpll
haddpd
haddps
hsubpd
hsubps
lddqu
monitor
movddup
movshdup
movsldup
mwait' 111.tmp
echo -n 'ssse3: '
grep -cwF ' psignb
psignw
psignd
pabsb
pabsw
pabsw
palignr
pshufb
pmulhrsw
pmaddubsw
phsubw
phsubd
phsubsw
phaddw
phaddd
phaddsw' 111.tmp
echo -n 'sse4.1: '
grep -cwF ' mpsadbw
phminposuw
pmuldq
pmulld
dpps
dppd
blendps
blendpd
blendvps
blendvpd
pblendvb
pblendw
pminsb
pmaxsb
pminuw
pmaxuw
pminud
pmaxud
pminsd
pmaxsd
roundps
roundss
roundpd
roundsd
insertps
pinsrb
pinsrd
pinsrq
extractps
pextrb
pextrw
pextrd
pextrq
pmovsxbw
pmovzxbw
pmovsxbd
pmovzxbd
pmovsxbq
pmovzxbq
pmovsxwd
pmovzxwd
pmovsxwq
pmovzxwq
pmovsxdq
pmovzxdq
movntdqa
packusdw
pcmpeqq
ptest' 111.tmp
echo -n 'sse4.2: '
grep -cwF ' crc32
pcmpestri
pcmpestrm
pcmpistri
pcmpistrm
pcmpgtq
popcnt' 111.tmp
echo -n 'sse4a: '
grep -cwF ' lzcnt
popcnt
extrq
insertq
movntsd
movntss' 111.tmp
echo -n '3dnow!: '
grep -cwF ' pavgusb
pfadd
pfsub
pfsubr
pfacc
pfcmpge
pfcmpgt
pfcmpeq
pfmin
pfmax
pi2fw
pi2fd
pf2iw
pf2id
pfrcp
pfrsqrt
pfmul
pfrcpit1
pfrsqit1
pfrcpit2
pmulhrw
pswapw
femms
prefetch' 111.tmp
echo -n '3dnowext: '
grep -cwF ' pf2iw
pfnacc
pfpnacc
pi2fw
pswapd
maskmovq
movntq
pavgb
pavgw
pextrw
pinsrw
pmaxsw
pmaxub
pminsw
pminub
pmovmskb
pmulhuw
prefetchnta
prefetcht0
prefetcht1
prefetcht2
psadbw
pshufw
sfence' 111.tmp
echo -n 'avx: '
grep -cwF ' vaddpd
vaddps
vaddsd
vaddss
vaddsubpd
vaddsubps
vandnpd
vandnps
vandpd
vandps
vblendpd
vblendps
vblendvpd
vblendvps
vbroadcastf128
vbroadcastsd
vbroadcastss
vcmpeq_ospd
vcmpeq_osps
vcmpeq_ossd
vcmpeq_osss
vcmpeqpd
vcmpeqps
vcmpeqsd
vcmpeqss
vcmpeq_uqpd
vcmpeq_uqps
vcmpeq_uqsd
vcmpeq_uqss
vcmpeq_uspd
vcmpeq_usps
vcmpeq_ussd
vcmpeq_usss
vcmpfalse_oqpd
vcmpfalse_oqps
vcmpfalse_oqsd
vcmpfalse_oqss
vcmpfalse_ospd
vcmpfalse_osps
vcmpfalse_ossd
vcmpfalse_osss
vcmpfalsepd
vcmpfalseps
vcmpfalsesd
vcmpfalsess
vcmpge_oqpd
vcmpge_oqps
vcmpge_oqsd
vcmpge_oqss
vcmpge_ospd
vcmpge_osps
vcmpge_ossd
vcmpge_osss
vcmpgepd
vcmpgeps
vcmpgesd
vcmpgess
vcmpgt_oqpd
vcmpgt_oqps
vcmpgt_oqsd
vcmpgt_oqss
vcmpgt_ospd
vcmpgt_osps
vcmpgt_ossd
vcmpgt_osss
vcmpgtpd
vcmpgtps
vcmpgtsd
vcmpgtss
vcmple_oqpd
vcmple_oqps
vcmple_oqsd
vcmple_oqss
vcmple_ospd
vcmple_osps
vcmple_ossd
vcmple_osss
vcmplepd
vcmpleps
vcmplesd
vcmpless
vcmplt_oqpd
vcmplt_oqps
vcmplt_oqsd
vcmplt_oqss
vcmplt_ospd
vcmplt_osps
vcmplt_ossd
vcmplt_osss
vcmpltpd
vcmpltps
vcmpltsd
vcmpltss
vcmpneq_oqpd
vcmpneq_oqps
vcmpneq_oqsd
vcmpneq_oqss
vcmpneq_ospd
vcmpneq_osps
vcmpneq_ossd
vcmpneq_osss
vcmpneqpd
vcmpneqps
vcmpneqsd
vcmpneqss
vcmpneq_uqpd
vcmpneq_uqps
vcmpneq_uqsd
vcmpneq_uqss
vcmpneq_uspd
vcmpneq_usps
vcmpneq_ussd
vcmpneq_usss
vcmpngepd
vcmpngeps
vcmpngesd
vcmpngess
vcmpnge_uqpd
vcmpnge_uqps
vcmpnge_uqsd
vcmpnge_uqss
vcmpnge_uspd
vcmpnge_usps
vcmpnge_ussd
vcmpnge_usss
vcmpngtpd
vcmpngtps
vcmpngtsd
vcmpngtss
vcmpngt_uqpd
vcmpngt_uqps
vcmpngt_uqsd
vcmpngt_uqss
vcmpngt_uspd
vcmpngt_usps
vcmpngt_ussd
vcmpngt_usss
vcmpnlepd
vcmpnleps
vcmpnlesd
vcmpnless
vcmpnle_uqpd
vcmpnle_uqps
vcmpnle_uqsd
vcmpnle_uqss
vcmpnle_uspd
vcmpnle_usps
vcmpnle_ussd
vcmpnle_usss
vcmpnltpd
vcmpnltps
vcmpnltsd
vcmpnltss
vcmpnlt_uqpd
vcmpnlt_uqps
vcmpnlt_uqsd
vcmpnlt_uqss
vcmpnlt_uspd
vcmpnlt_usps
vcmpnlt_ussd
vcmpnlt_usss
vcmpordpd
vcmpordps
vcmpord_qpd
vcmpord_qps
vcmpord_qsd
vcmpord_qss
vcmpordsd
vcmpord_spd
vcmpord_sps
vcmpordss
vcmpord_ssd
vcmpord_sss
vcmppd
vcmpps
vcmpsd
vcmpss
vcmptruepd
vcmptrueps
vcmptruesd
vcmptruess
vcmptrue_uqpd
vcmptrue_uqps
vcmptrue_uqsd
vcmptrue_uqss
vcmptrue_uspd
vcmptrue_usps
vcmptrue_ussd
vcmptrue_usss
vcmpunordpd
vcmpunordps
vcmpunord_qpd
vcmpunord_qps
vcmpunord_qsd
vcmpunord_qss
vcmpunordsd
vcmpunord_spd
vcmpunord_sps
vcmpunordss
vcmpunord_ssd
vcmpunord_sss
vcomisd
vcomiss
vcvtdq2pd
vcvtdq2ps
vcvtpd2dq
vcvtpd2ps
vcvtps2dq
vcvtps2pd
vcvtsd2si
vcvtsd2ss
vcvtsi2sd
vcvtsi2ss
vcvtss2sd
vcvtss2si
vcvttpd2dq
vcvttps2dq
vcvttsd2si
vcvttss2si
vdivpd
vdivps
vdivsd
vdivss
vdppd
vdpps
vextractf128
vextractps
vhaddpd
vhaddps
vhsubpd
vhsubps
vinsertf128
vinsertps
vlddqu
vldmxcsr
vldqqu
vmaskmovdqu
vmaskmovpd
vmaskmovps
vmaxpd
vmaxps
vmaxsd
vmaxss
vminpd
vminps
vminsd
vminss
vmovapd
vmovaps
vmovd
vmovddup
vmovdqa
vmovdqu
vmovhlps
vmovhpd
vmovhps
vmovlhps
vmovlpd
vmovlps
vmovmskpd
vmovmskps
vmovntdq
vmovntdqa
vmovntpd
vmovntps
vmovntqq
vmovq
vmovqqa
vmovqqu
vmovsd
vmovshdup
vmovsldup
vmovss
vmovupd
vmovups
vmpsadbw
vmulpd
vmulps
vmulsd
vmulss
vorpd
vorps
vpabsb
vpabsd
vpabsw
vpackssdw
vpacksswb
vpackusdw
vpackuswb
vpaddb
vpaddd
vpaddq
vpaddsb
vpaddsw
vpaddusb
vpaddusw
vpaddw
vpalignr
vpand
vpandn
vpavgb
vpavgw
vpblendvb
vpblendw
vpcmpeqb
vpcmpeqd
vpcmpeqq
vpcmpeqw
vpcmpestri
vpcmpestrm
vpcmpgtb
vpcmpgtd
vpcmpgtq
vpcmpgtw
vpcmpistri
vpcmpistrm
vperm2f128
vpermilpd
vpermilps
vpextrb
vpextrd
vpextrq
vpextrw
vphaddd
vphaddsw
vphaddw
vphminposuw
vphsubd
vphsubsw
vphsubw
vpinsrb
vpinsrd
vpinsrq
vpinsrw
vpmaddubsw
vpmaddwd
vpmaxsb
vpmaxsd
vpmaxsw
vpmaxub
vpmaxud
vpmaxuw
vpminsb
vpminsd
vpminsw
vpminub
vpminud
vpminuw
vpmovmskb
vpmovsxbd
vpmovsxbq
vpmovsxbw
vpmovsxdq
vpmovsxwd
vpmovsxwq
vpmovzxbd
vpmovzxbq
vpmovzxbw
vpmovzxdq
vpmovzxwd
vpmovzxwq
vpmuldq
vpmulhrsw
vpmulhuw
vpmulhw
vpmulld
vpmullw
vpmuludq
vpor
vpsadbw
vpshufb
vpshufd
vpshufhw
vpshuflw
vpsignb
vpsignd
vpsignw
vpslld
vpslldq
vpsllq
vpsllw
vpsrad
vpsraw
vpsrld
vpsrldq
vpsrlq
vpsrlw
vpsubb
vpsubd
vpsubq
vpsubsb
vpsubsw
vpsubusb
vpsubusw
vpsubw
vptest
vpunpckhbw
vpunpckhdq
vpunpckhqdq
vpunpckhwd
vpunpcklbw
vpunpckldq
vpunpcklqdq
vpunpcklwd
vpxor
vrcpps
vrcpss
vroundpd
vroundps
vroundsd
vroundss
vrsqrtps
vrsqrtss
vshufpd
vshufps
vsqrtpd
vsqrtps
vsqrtsd
vsqrtss
vstmxcsr
vsubpd
vsubps
vsubsd
vsubss
vtestpd
vtestps
vucomisd
vucomiss
vunpckhpd
vunpckhps
vunpcklpd
vunpcklps
vxorpd
vxorps
vzeroall
vzeroupper
vpclmullqlqdq
vpclmulhqlqdq
vpclmullqhqdq
vpclmulhqhqdq
vpclmulqdq' 111.tmp
echo -n 'fma3: '
grep -cwF ' vfmadd132pdx
vfmadd132pdy
vfmadd213dx
vfmadd213pdy
vfmadd231pdx
vfma231pdy
vfmadd132psx
vfmadd132psy
vfmadd213psx
vfmadd213psy
vfmadd132sd
vfmadd213sd
vfmadd231sd
vfmadd132ss
vfmadd213ss
vfmadd231ss' 111.tmp
echo -n 'fma4: '
grep -cwF ' vfmaddpdx
vfmaddpdy
vfmaddpsx
vdmaddpsy
vfmaddsd
vfmaddss' 111.tmp
echo -n 'aes: '
grep -cwF ' aesenc
aesdec
aesenclast
aesdeclast
aeskeygenassist
aesimc' 111.tmp
echo -n 'Intel VT-x: '
grep -cwF ' vmptrld
vmptrst
vmclear
vmread
vmwrite
vmcall
vmlaunch
vmresume
vmxoff
vmxon' 111.tmp
echo -n 'AMD SVM: '
grep -cwF ' clgi
skinit
stgi
vmload
vmmcall
vmrun
vmsave' 111.tmp
echo -n 'movbe: '; grep -cwF ' movbe' 111.tmp
echo -n 'clmul: '; grep -cwF ' pclmulqdq' 111.tmp
echo -n 'Nehalem XSAVE/XRSTOR: '; grep -cwF ' xsave
xrstor' 111.tmp
) |grep -vF ': 0'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment