Class: Fisk

Inherits:
Object
  • Object
show all
Includes:
Instructions::DSLMethods
Defined in:
lib/fisk.rb,
lib/fisk/errors.rb,
lib/fisk/helpers.rb,
lib/fisk/version.rb,
lib/fisk/encoding.rb,
lib/fisk/basic_block.rb,
lib/fisk/instructions.rb,
lib/fisk/instructions/bt.rb,
lib/fisk/instructions/ja.rb,
lib/fisk/instructions/jb.rb,
lib/fisk/instructions/jc.rb,
lib/fisk/instructions/je.rb,
lib/fisk/instructions/jg.rb,
lib/fisk/instructions/jl.rb,
lib/fisk/instructions/jo.rb,
lib/fisk/instructions/jp.rb,
lib/fisk/instructions/js.rb,
lib/fisk/instructions/jz.rb,
lib/fisk/instructions/or.rb,
lib/fisk/instructions/adc.rb,
lib/fisk/instructions/add.rb,
lib/fisk/instructions/and.rb,
lib/fisk/instructions/bsf.rb,
lib/fisk/instructions/bsr.rb,
lib/fisk/instructions/btc.rb,
lib/fisk/instructions/btr.rb,
lib/fisk/instructions/bts.rb,
lib/fisk/instructions/cbw.rb,
lib/fisk/instructions/cdq.rb,
lib/fisk/instructions/clc.rb,
lib/fisk/instructions/cld.rb,
lib/fisk/instructions/cmc.rb,
lib/fisk/instructions/cmp.rb,
lib/fisk/instructions/cqo.rb,
lib/fisk/instructions/cwd.rb,
lib/fisk/instructions/dec.rb,
lib/fisk/instructions/div.rb,
lib/fisk/instructions/inc.rb,
lib/fisk/instructions/int.rb,
lib/fisk/instructions/jae.rb,
lib/fisk/instructions/jbe.rb,
lib/fisk/instructions/jge.rb,
lib/fisk/instructions/jle.rb,
lib/fisk/instructions/jmp.rb,
lib/fisk/instructions/jna.rb,
lib/fisk/instructions/jnb.rb,
lib/fisk/instructions/jnc.rb,
lib/fisk/instructions/jne.rb,
lib/fisk/instructions/jng.rb,
lib/fisk/instructions/jnl.rb,
lib/fisk/instructions/jno.rb,
lib/fisk/instructions/jnp.rb,
lib/fisk/instructions/jns.rb,
lib/fisk/instructions/jnz.rb,
lib/fisk/instructions/jpe.rb,
lib/fisk/instructions/jpo.rb,
lib/fisk/instructions/lea.rb,
lib/fisk/instructions/mov.rb,
lib/fisk/instructions/mul.rb,
lib/fisk/instructions/neg.rb,
lib/fisk/instructions/nop.rb,
lib/fisk/instructions/not.rb,
lib/fisk/instructions/pop.rb,
lib/fisk/instructions/por.rb,
lib/fisk/instructions/rcl.rb,
lib/fisk/instructions/rcr.rb,
lib/fisk/instructions/ret.rb,
lib/fisk/instructions/rol.rb,
lib/fisk/instructions/ror.rb,
lib/fisk/instructions/sal.rb,
lib/fisk/instructions/sar.rb,
lib/fisk/instructions/sbb.rb,
lib/fisk/instructions/shl.rb,
lib/fisk/instructions/shr.rb,
lib/fisk/instructions/stc.rb,
lib/fisk/instructions/std.rb,
lib/fisk/instructions/sub.rb,
lib/fisk/instructions/ud2.rb,
lib/fisk/instructions/xor.rb,
lib/fisk/instructions/adcx.rb,
lib/fisk/instructions/adox.rb,
lib/fisk/instructions/andn.rb,
lib/fisk/instructions/blci.rb,
lib/fisk/instructions/blcs.rb,
lib/fisk/instructions/blsi.rb,
lib/fisk/instructions/blsr.rb,
lib/fisk/instructions/bzhi.rb,
lib/fisk/instructions/call.rb,
lib/fisk/instructions/cdqe.rb,
lib/fisk/instructions/clwb.rb,
lib/fisk/instructions/cwde.rb,
lib/fisk/instructions/dppd.rb,
lib/fisk/instructions/dpps.rb,
lib/fisk/instructions/emms.rb,
lib/fisk/instructions/idiv.rb,
lib/fisk/instructions/imul.rb,
lib/fisk/instructions/jnae.rb,
lib/fisk/instructions/jnbe.rb,
lib/fisk/instructions/jnge.rb,
lib/fisk/instructions/jnle.rb,
lib/fisk/instructions/korb.rb,
lib/fisk/instructions/kord.rb,
lib/fisk/instructions/korq.rb,
lib/fisk/instructions/korw.rb,
lib/fisk/instructions/movd.rb,
lib/fisk/instructions/movq.rb,
lib/fisk/instructions/mulx.rb,
lib/fisk/instructions/orpd.rb,
lib/fisk/instructions/orps.rb,
lib/fisk/instructions/pand.rb,
lib/fisk/instructions/pdep.rb,
lib/fisk/instructions/pext.rb,
lib/fisk/instructions/push.rb,
lib/fisk/instructions/pxor.rb,
lib/fisk/instructions/rorx.rb,
lib/fisk/instructions/sarx.rb,
lib/fisk/instructions/seta.rb,
lib/fisk/instructions/setb.rb,
lib/fisk/instructions/setc.rb,
lib/fisk/instructions/sete.rb,
lib/fisk/instructions/setg.rb,
lib/fisk/instructions/setl.rb,
lib/fisk/instructions/seto.rb,
lib/fisk/instructions/setp.rb,
lib/fisk/instructions/sets.rb,
lib/fisk/instructions/setz.rb,
lib/fisk/instructions/shld.rb,
lib/fisk/instructions/shlx.rb,
lib/fisk/instructions/shrd.rb,
lib/fisk/instructions/shrx.rb,
lib/fisk/instructions/test.rb,
lib/fisk/instructions/vpor.rb,
lib/fisk/instructions/xadd.rb,
lib/fisk/instructions/xchg.rb,
lib/fisk/instructions/addpd.rb,
lib/fisk/instructions/addps.rb,
lib/fisk/instructions/addsd.rb,
lib/fisk/instructions/addss.rb,
lib/fisk/instructions/andpd.rb,
lib/fisk/instructions/andps.rb,
lib/fisk/instructions/bextr.rb,
lib/fisk/instructions/blcic.rb,
lib/fisk/instructions/blsic.rb,
lib/fisk/instructions/bswap.rb,
lib/fisk/instructions/cmova.rb,
lib/fisk/instructions/cmovb.rb,
lib/fisk/instructions/cmovc.rb,
lib/fisk/instructions/cmove.rb,
lib/fisk/instructions/cmovg.rb,
lib/fisk/instructions/cmovl.rb,
lib/fisk/instructions/cmovo.rb,
lib/fisk/instructions/cmovp.rb,
lib/fisk/instructions/cmovs.rb,
lib/fisk/instructions/cmovz.rb,
lib/fisk/instructions/cmppd.rb,
lib/fisk/instructions/cmpps.rb,
lib/fisk/instructions/cmpsd.rb,
lib/fisk/instructions/cmpss.rb,
lib/fisk/instructions/cpuid.rb,
lib/fisk/instructions/crc32.rb,
lib/fisk/instructions/divpd.rb,
lib/fisk/instructions/divps.rb,
lib/fisk/instructions/divsd.rb,
lib/fisk/instructions/divss.rb,
lib/fisk/instructions/extrq.rb,
lib/fisk/instructions/femms.rb,
lib/fisk/instructions/jecxz.rb,
lib/fisk/instructions/jrcxz.rb,
lib/fisk/instructions/kaddb.rb,
lib/fisk/instructions/kaddd.rb,
lib/fisk/instructions/kaddq.rb,
lib/fisk/instructions/kaddw.rb,
lib/fisk/instructions/kandb.rb,
lib/fisk/instructions/kandd.rb,
lib/fisk/instructions/kandq.rb,
lib/fisk/instructions/kandw.rb,
lib/fisk/instructions/kmovb.rb,
lib/fisk/instructions/kmovd.rb,
lib/fisk/instructions/kmovq.rb,
lib/fisk/instructions/kmovw.rb,
lib/fisk/instructions/knotb.rb,
lib/fisk/instructions/knotd.rb,
lib/fisk/instructions/knotq.rb,
lib/fisk/instructions/knotw.rb,
lib/fisk/instructions/kxorb.rb,
lib/fisk/instructions/kxord.rb,
lib/fisk/instructions/kxorq.rb,
lib/fisk/instructions/kxorw.rb,
lib/fisk/instructions/lddqu.rb,
lib/fisk/instructions/lzcnt.rb,
lib/fisk/instructions/maxpd.rb,
lib/fisk/instructions/maxps.rb,
lib/fisk/instructions/maxsd.rb,
lib/fisk/instructions/maxss.rb,
lib/fisk/instructions/minpd.rb,
lib/fisk/instructions/minps.rb,
lib/fisk/instructions/minsd.rb,
lib/fisk/instructions/minss.rb,
lib/fisk/instructions/movbe.rb,
lib/fisk/instructions/movsd.rb,
lib/fisk/instructions/movss.rb,
lib/fisk/instructions/movsx.rb,
lib/fisk/instructions/movzx.rb,
lib/fisk/instructions/mulpd.rb,
lib/fisk/instructions/mulps.rb,
lib/fisk/instructions/mulsd.rb,
lib/fisk/instructions/mulss.rb,
lib/fisk/instructions/mwait.rb,
lib/fisk/instructions/pabsb.rb,
lib/fisk/instructions/pabsd.rb,
lib/fisk/instructions/pabsw.rb,
lib/fisk/instructions/paddb.rb,
lib/fisk/instructions/paddd.rb,
lib/fisk/instructions/paddq.rb,
lib/fisk/instructions/paddw.rb,
lib/fisk/instructions/pandn.rb,
lib/fisk/instructions/pause.rb,
lib/fisk/instructions/pavgb.rb,
lib/fisk/instructions/pavgw.rb,
lib/fisk/instructions/pf2id.rb,
lib/fisk/instructions/pf2iw.rb,
lib/fisk/instructions/pfacc.rb,
lib/fisk/instructions/pfadd.rb,
lib/fisk/instructions/pfmax.rb,
lib/fisk/instructions/pfmin.rb,
lib/fisk/instructions/pfmul.rb,
lib/fisk/instructions/pfrcp.rb,
lib/fisk/instructions/pfsub.rb,
lib/fisk/instructions/pi2fd.rb,
lib/fisk/instructions/pi2fw.rb,
lib/fisk/instructions/pslld.rb,
lib/fisk/instructions/psllq.rb,
lib/fisk/instructions/psllw.rb,
lib/fisk/instructions/psrad.rb,
lib/fisk/instructions/psraw.rb,
lib/fisk/instructions/psrld.rb,
lib/fisk/instructions/psrlq.rb,
lib/fisk/instructions/psrlw.rb,
lib/fisk/instructions/psubb.rb,
lib/fisk/instructions/psubd.rb,
lib/fisk/instructions/psubq.rb,
lib/fisk/instructions/psubw.rb,
lib/fisk/instructions/ptest.rb,
lib/fisk/instructions/rcpps.rb,
lib/fisk/instructions/rcpss.rb,
lib/fisk/instructions/rdtsc.rb,
lib/fisk/instructions/setae.rb,
lib/fisk/instructions/setbe.rb,
lib/fisk/instructions/setge.rb,
lib/fisk/instructions/setle.rb,
lib/fisk/instructions/setna.rb,
lib/fisk/instructions/setnb.rb,
lib/fisk/instructions/setnc.rb,
lib/fisk/instructions/setne.rb,
lib/fisk/instructions/setng.rb,
lib/fisk/instructions/setnl.rb,
lib/fisk/instructions/setno.rb,
lib/fisk/instructions/setnp.rb,
lib/fisk/instructions/setns.rb,
lib/fisk/instructions/setnz.rb,
lib/fisk/instructions/setpe.rb,
lib/fisk/instructions/setpo.rb,
lib/fisk/instructions/subpd.rb,
lib/fisk/instructions/subps.rb,
lib/fisk/instructions/subsd.rb,
lib/fisk/instructions/subss.rb,
lib/fisk/instructions/tzcnt.rb,
lib/fisk/instructions/tzmsk.rb,
lib/fisk/instructions/vdppd.rb,
lib/fisk/instructions/vdpps.rb,
lib/fisk/instructions/vmovd.rb,
lib/fisk/instructions/vmovq.rb,
lib/fisk/instructions/vorpd.rb,
lib/fisk/instructions/vorps.rb,
lib/fisk/instructions/vpand.rb,
lib/fisk/instructions/vpord.rb,
lib/fisk/instructions/vporq.rb,
lib/fisk/instructions/vpxor.rb,
lib/fisk/instructions/xlatb.rb,
lib/fisk/instructions/xorpd.rb,
lib/fisk/instructions/xorps.rb,
lib/fisk/instructions/aesdec.rb,
lib/fisk/instructions/aesenc.rb,
lib/fisk/instructions/aesimc.rb,
lib/fisk/instructions/andnpd.rb,
lib/fisk/instructions/andnps.rb,
lib/fisk/instructions/blcmsk.rb,
lib/fisk/instructions/blsmsk.rb,
lib/fisk/instructions/clzero.rb,
lib/fisk/instructions/cmovae.rb,
lib/fisk/instructions/cmovbe.rb,
lib/fisk/instructions/cmovge.rb,
lib/fisk/instructions/cmovle.rb,
lib/fisk/instructions/cmovna.rb,
lib/fisk/instructions/cmovnb.rb,
lib/fisk/instructions/cmovnc.rb,
lib/fisk/instructions/cmovne.rb,
lib/fisk/instructions/cmovng.rb,
lib/fisk/instructions/cmovnl.rb,
lib/fisk/instructions/cmovno.rb,
lib/fisk/instructions/cmovnp.rb,
lib/fisk/instructions/cmovns.rb,
lib/fisk/instructions/cmovnz.rb,
lib/fisk/instructions/cmovpe.rb,
lib/fisk/instructions/cmovpo.rb,
lib/fisk/instructions/comisd.rb,
lib/fisk/instructions/comiss.rb,
lib/fisk/instructions/haddpd.rb,
lib/fisk/instructions/haddps.rb,
lib/fisk/instructions/hsubpd.rb,
lib/fisk/instructions/hsubps.rb,
lib/fisk/instructions/kandnb.rb,
lib/fisk/instructions/kandnd.rb,
lib/fisk/instructions/kandnq.rb,
lib/fisk/instructions/kandnw.rb,
lib/fisk/instructions/ktestb.rb,
lib/fisk/instructions/ktestd.rb,
lib/fisk/instructions/ktestq.rb,
lib/fisk/instructions/ktestw.rb,
lib/fisk/instructions/kxnorb.rb,
lib/fisk/instructions/kxnord.rb,
lib/fisk/instructions/kxnorq.rb,
lib/fisk/instructions/kxnorw.rb,
lib/fisk/instructions/lfence.rb,
lib/fisk/instructions/mfence.rb,
lib/fisk/instructions/movapd.rb,
lib/fisk/instructions/movaps.rb,
lib/fisk/instructions/movdqa.rb,
lib/fisk/instructions/movdqu.rb,
lib/fisk/instructions/movhpd.rb,
lib/fisk/instructions/movhps.rb,
lib/fisk/instructions/movlpd.rb,
lib/fisk/instructions/movlps.rb,
lib/fisk/instructions/movnti.rb,
lib/fisk/instructions/movntq.rb,
lib/fisk/instructions/movsxd.rb,
lib/fisk/instructions/movupd.rb,
lib/fisk/instructions/movups.rb,
lib/fisk/instructions/mwaitx.rb,
lib/fisk/instructions/paddsb.rb,
lib/fisk/instructions/paddsw.rb,
lib/fisk/instructions/pextrb.rb,
lib/fisk/instructions/pextrd.rb,
lib/fisk/instructions/pextrq.rb,
lib/fisk/instructions/pextrw.rb,
lib/fisk/instructions/pfnacc.rb,
lib/fisk/instructions/pfsubr.rb,
lib/fisk/instructions/phaddd.rb,
lib/fisk/instructions/phaddw.rb,
lib/fisk/instructions/phsubd.rb,
lib/fisk/instructions/phsubw.rb,
lib/fisk/instructions/pinsrb.rb,
lib/fisk/instructions/pinsrd.rb,
lib/fisk/instructions/pinsrq.rb,
lib/fisk/instructions/pinsrw.rb,
lib/fisk/instructions/pmaxsb.rb,
lib/fisk/instructions/pmaxsd.rb,
lib/fisk/instructions/pmaxsw.rb,
lib/fisk/instructions/pmaxub.rb,
lib/fisk/instructions/pmaxud.rb,
lib/fisk/instructions/pmaxuw.rb,
lib/fisk/instructions/pminsb.rb,
lib/fisk/instructions/pminsd.rb,
lib/fisk/instructions/pminsw.rb,
lib/fisk/instructions/pminub.rb,
lib/fisk/instructions/pminud.rb,
lib/fisk/instructions/pminuw.rb,
lib/fisk/instructions/pmuldq.rb,
lib/fisk/instructions/pmulhw.rb,
lib/fisk/instructions/pmulld.rb,
lib/fisk/instructions/pmullw.rb,
lib/fisk/instructions/popcnt.rb,
lib/fisk/instructions/psadbw.rb,
lib/fisk/instructions/pshufb.rb,
lib/fisk/instructions/pshufd.rb,
lib/fisk/instructions/pshufw.rb,
lib/fisk/instructions/psignb.rb,
lib/fisk/instructions/psignd.rb,
lib/fisk/instructions/psignw.rb,
lib/fisk/instructions/pslldq.rb,
lib/fisk/instructions/psrldq.rb,
lib/fisk/instructions/psubsb.rb,
lib/fisk/instructions/psubsw.rb,
lib/fisk/instructions/pswapd.rb,
lib/fisk/instructions/rdrand.rb,
lib/fisk/instructions/rdseed.rb,
lib/fisk/instructions/rdtscp.rb,
lib/fisk/instructions/setnae.rb,
lib/fisk/instructions/setnbe.rb,
lib/fisk/instructions/setnge.rb,
lib/fisk/instructions/setnle.rb,
lib/fisk/instructions/sfence.rb,
lib/fisk/instructions/shufpd.rb,
lib/fisk/instructions/shufps.rb,
lib/fisk/instructions/sqrtpd.rb,
lib/fisk/instructions/sqrtps.rb,
lib/fisk/instructions/sqrtsd.rb,
lib/fisk/instructions/sqrtss.rb,
lib/fisk/instructions/t1mskc.rb,
lib/fisk/instructions/vaddpd.rb,
lib/fisk/instructions/vaddps.rb,
lib/fisk/instructions/vaddsd.rb,
lib/fisk/instructions/vaddss.rb,
lib/fisk/instructions/vandpd.rb,
lib/fisk/instructions/vandps.rb,
lib/fisk/instructions/vcmppd.rb,
lib/fisk/instructions/vcmpps.rb,
lib/fisk/instructions/vcmpsd.rb,
lib/fisk/instructions/vcmpss.rb,
lib/fisk/instructions/vdivpd.rb,
lib/fisk/instructions/vdivps.rb,
lib/fisk/instructions/vdivsd.rb,
lib/fisk/instructions/vdivss.rb,
lib/fisk/instructions/vlddqu.rb,
lib/fisk/instructions/vmaxpd.rb,
lib/fisk/instructions/vmaxps.rb,
lib/fisk/instructions/vmaxsd.rb,
lib/fisk/instructions/vmaxss.rb,
lib/fisk/instructions/vminpd.rb,
lib/fisk/instructions/vminps.rb,
lib/fisk/instructions/vminsd.rb,
lib/fisk/instructions/vminss.rb,
lib/fisk/instructions/vmovsd.rb,
lib/fisk/instructions/vmovss.rb,
lib/fisk/instructions/vmulpd.rb,
lib/fisk/instructions/vmulps.rb,
lib/fisk/instructions/vmulsd.rb,
lib/fisk/instructions/vmulss.rb,
lib/fisk/instructions/vpabsb.rb,
lib/fisk/instructions/vpabsd.rb,
lib/fisk/instructions/vpabsq.rb,
lib/fisk/instructions/vpabsw.rb,
lib/fisk/instructions/vpaddb.rb,
lib/fisk/instructions/vpaddd.rb,
lib/fisk/instructions/vpaddq.rb,
lib/fisk/instructions/vpaddw.rb,
lib/fisk/instructions/vpandd.rb,
lib/fisk/instructions/vpandn.rb,
lib/fisk/instructions/vpandq.rb,
lib/fisk/instructions/vpavgb.rb,
lib/fisk/instructions/vpavgw.rb,
lib/fisk/instructions/vpcmov.rb,
lib/fisk/instructions/vpcmpb.rb,
lib/fisk/instructions/vpcmpd.rb,
lib/fisk/instructions/vpcmpq.rb,
lib/fisk/instructions/vpcmpw.rb,
lib/fisk/instructions/vpcomb.rb,
lib/fisk/instructions/vpcomd.rb,
lib/fisk/instructions/vpcomq.rb,
lib/fisk/instructions/vpcomw.rb,
lib/fisk/instructions/vpermb.rb,
lib/fisk/instructions/vpermd.rb,
lib/fisk/instructions/vpermq.rb,
lib/fisk/instructions/vpermw.rb,
lib/fisk/instructions/vpperm.rb,
lib/fisk/instructions/vprold.rb,
lib/fisk/instructions/vprolq.rb,
lib/fisk/instructions/vprord.rb,
lib/fisk/instructions/vprorq.rb,
lib/fisk/instructions/vprotb.rb,
lib/fisk/instructions/vprotd.rb,
lib/fisk/instructions/vprotq.rb,
lib/fisk/instructions/vprotw.rb,
lib/fisk/instructions/vpshab.rb,
lib/fisk/instructions/vpshad.rb,
lib/fisk/instructions/vpshaq.rb,
lib/fisk/instructions/vpshaw.rb,
lib/fisk/instructions/vpshlb.rb,
lib/fisk/instructions/vpshld.rb,
lib/fisk/instructions/vpshlq.rb,
lib/fisk/instructions/vpshlw.rb,
lib/fisk/instructions/vpslld.rb,
lib/fisk/instructions/vpsllq.rb,
lib/fisk/instructions/vpsllw.rb,
lib/fisk/instructions/vpsrad.rb,
lib/fisk/instructions/vpsraq.rb,
lib/fisk/instructions/vpsraw.rb,
lib/fisk/instructions/vpsrld.rb,
lib/fisk/instructions/vpsrlq.rb,
lib/fisk/instructions/vpsrlw.rb,
lib/fisk/instructions/vpsubb.rb,
lib/fisk/instructions/vpsubd.rb,
lib/fisk/instructions/vpsubq.rb,
lib/fisk/instructions/vpsubw.rb,
lib/fisk/instructions/vptest.rb,
lib/fisk/instructions/vpxord.rb,
lib/fisk/instructions/vpxorq.rb,
lib/fisk/instructions/vrcpps.rb,
lib/fisk/instructions/vrcpss.rb,
lib/fisk/instructions/vsubpd.rb,
lib/fisk/instructions/vsubps.rb,
lib/fisk/instructions/vsubsd.rb,
lib/fisk/instructions/vsubss.rb,
lib/fisk/instructions/vxorpd.rb,
lib/fisk/instructions/vxorps.rb,
lib/fisk/instructions/xgetbv.rb,
lib/fisk/instructions/blcfill.rb,
lib/fisk/instructions/blendpd.rb,
lib/fisk/instructions/blendps.rb,
lib/fisk/instructions/blsfill.rb,
lib/fisk/instructions/clflush.rb,
lib/fisk/instructions/cmovnae.rb,
lib/fisk/instructions/cmovnbe.rb,
lib/fisk/instructions/cmovnge.rb,
lib/fisk/instructions/cmovnle.rb,
lib/fisk/instructions/cmpxchg.rb,
lib/fisk/instructions/insertq.rb,
lib/fisk/instructions/ldmxcsr.rb,
lib/fisk/instructions/monitor.rb,
lib/fisk/instructions/movddup.rb,
lib/fisk/instructions/movdq2q.rb,
lib/fisk/instructions/movhlps.rb,
lib/fisk/instructions/movlhps.rb,
lib/fisk/instructions/movntdq.rb,
lib/fisk/instructions/movntpd.rb,
lib/fisk/instructions/movntps.rb,
lib/fisk/instructions/movntsd.rb,
lib/fisk/instructions/movntss.rb,
lib/fisk/instructions/movq2dq.rb,
lib/fisk/instructions/mpsadbw.rb,
lib/fisk/instructions/paddusb.rb,
lib/fisk/instructions/paddusw.rb,
lib/fisk/instructions/palignr.rb,
lib/fisk/instructions/pavgusb.rb,
lib/fisk/instructions/pblendw.rb,
lib/fisk/instructions/pcmpeqb.rb,
lib/fisk/instructions/pcmpeqd.rb,
lib/fisk/instructions/pcmpeqq.rb,
lib/fisk/instructions/pcmpeqw.rb,
lib/fisk/instructions/pcmpgtb.rb,
lib/fisk/instructions/pcmpgtd.rb,
lib/fisk/instructions/pcmpgtq.rb,
lib/fisk/instructions/pcmpgtw.rb,
lib/fisk/instructions/pfcmpeq.rb,
lib/fisk/instructions/pfcmpge.rb,
lib/fisk/instructions/pfcmpgt.rb,
lib/fisk/instructions/pfpnacc.rb,
lib/fisk/instructions/pfrsqrt.rb,
lib/fisk/instructions/phaddsw.rb,
lib/fisk/instructions/phsubsw.rb,
lib/fisk/instructions/pmaddwd.rb,
lib/fisk/instructions/pmulhrw.rb,
lib/fisk/instructions/pmulhuw.rb,
lib/fisk/instructions/pmuludq.rb,
lib/fisk/instructions/pshufhw.rb,
lib/fisk/instructions/pshuflw.rb,
lib/fisk/instructions/psubusb.rb,
lib/fisk/instructions/psubusw.rb,
lib/fisk/instructions/roundpd.rb,
lib/fisk/instructions/roundps.rb,
lib/fisk/instructions/roundsd.rb,
lib/fisk/instructions/roundss.rb,
lib/fisk/instructions/rsqrtps.rb,
lib/fisk/instructions/rsqrtss.rb,
lib/fisk/instructions/stmxcsr.rb,
lib/fisk/instructions/syscall.rb,
lib/fisk/instructions/ucomisd.rb,
lib/fisk/instructions/ucomiss.rb,
lib/fisk/instructions/vaesdec.rb,
lib/fisk/instructions/vaesenc.rb,
lib/fisk/instructions/vaesimc.rb,
lib/fisk/instructions/valignd.rb,
lib/fisk/instructions/valignq.rb,
lib/fisk/instructions/vandnpd.rb,
lib/fisk/instructions/vandnps.rb,
lib/fisk/instructions/vcomisd.rb,
lib/fisk/instructions/vcomiss.rb,
lib/fisk/instructions/vexp2pd.rb,
lib/fisk/instructions/vexp2ps.rb,
lib/fisk/instructions/vfrczpd.rb,
lib/fisk/instructions/vfrczps.rb,
lib/fisk/instructions/vfrczsd.rb,
lib/fisk/instructions/vfrczss.rb,
lib/fisk/instructions/vhaddpd.rb,
lib/fisk/instructions/vhaddps.rb,
lib/fisk/instructions/vhsubpd.rb,
lib/fisk/instructions/vhsubps.rb,
lib/fisk/instructions/vmovapd.rb,
lib/fisk/instructions/vmovaps.rb,
lib/fisk/instructions/vmovdqa.rb,
lib/fisk/instructions/vmovdqu.rb,
lib/fisk/instructions/vmovhpd.rb,
lib/fisk/instructions/vmovhps.rb,
lib/fisk/instructions/vmovlpd.rb,
lib/fisk/instructions/vmovlps.rb,
lib/fisk/instructions/vmovupd.rb,
lib/fisk/instructions/vmovups.rb,
lib/fisk/instructions/vpaddsb.rb,
lib/fisk/instructions/vpaddsw.rb,
lib/fisk/instructions/vpandnd.rb,
lib/fisk/instructions/vpandnq.rb,
lib/fisk/instructions/vpcmpub.rb,
lib/fisk/instructions/vpcmpud.rb,
lib/fisk/instructions/vpcmpuq.rb,
lib/fisk/instructions/vpcmpuw.rb,
lib/fisk/instructions/vpcomub.rb,
lib/fisk/instructions/vpcomud.rb,
lib/fisk/instructions/vpcomuq.rb,
lib/fisk/instructions/vpcomuw.rb,
lib/fisk/instructions/vpermpd.rb,
lib/fisk/instructions/vpermps.rb,
lib/fisk/instructions/vpextrb.rb,
lib/fisk/instructions/vpextrd.rb,
lib/fisk/instructions/vpextrq.rb,
lib/fisk/instructions/vpextrw.rb,
lib/fisk/instructions/vphaddd.rb,
lib/fisk/instructions/vphaddw.rb,
lib/fisk/instructions/vphsubd.rb,
lib/fisk/instructions/vphsubw.rb,
lib/fisk/instructions/vpinsrb.rb,
lib/fisk/instructions/vpinsrd.rb,
lib/fisk/instructions/vpinsrq.rb,
lib/fisk/instructions/vpinsrw.rb,
lib/fisk/instructions/vpmaxsb.rb,
lib/fisk/instructions/vpmaxsd.rb,
lib/fisk/instructions/vpmaxsq.rb,
lib/fisk/instructions/vpmaxsw.rb,
lib/fisk/instructions/vpmaxub.rb,
lib/fisk/instructions/vpmaxud.rb,
lib/fisk/instructions/vpmaxuq.rb,
lib/fisk/instructions/vpmaxuw.rb,
lib/fisk/instructions/vpminsb.rb,
lib/fisk/instructions/vpminsd.rb,
lib/fisk/instructions/vpminsq.rb,
lib/fisk/instructions/vpminsw.rb,
lib/fisk/instructions/vpminub.rb,
lib/fisk/instructions/vpminud.rb,
lib/fisk/instructions/vpminuq.rb,
lib/fisk/instructions/vpminuw.rb,
lib/fisk/instructions/vpmovdb.rb,
lib/fisk/instructions/vpmovdw.rb,
lib/fisk/instructions/vpmovqb.rb,
lib/fisk/instructions/vpmovqd.rb,
lib/fisk/instructions/vpmovqw.rb,
lib/fisk/instructions/vpmovwb.rb,
lib/fisk/instructions/vpmuldq.rb,
lib/fisk/instructions/vpmulhw.rb,
lib/fisk/instructions/vpmulld.rb,
lib/fisk/instructions/vpmullq.rb,
lib/fisk/instructions/vpmullw.rb,
lib/fisk/instructions/vprolvd.rb,
lib/fisk/instructions/vprolvq.rb,
lib/fisk/instructions/vprorvd.rb,
lib/fisk/instructions/vprorvq.rb,
lib/fisk/instructions/vpsadbw.rb,
lib/fisk/instructions/vpshufb.rb,
lib/fisk/instructions/vpshufd.rb,
lib/fisk/instructions/vpsignb.rb,
lib/fisk/instructions/vpsignd.rb,
lib/fisk/instructions/vpsignw.rb,
lib/fisk/instructions/vpslldq.rb,
lib/fisk/instructions/vpsllvd.rb,
lib/fisk/instructions/vpsllvq.rb,
lib/fisk/instructions/vpsllvw.rb,
lib/fisk/instructions/vpsravd.rb,
lib/fisk/instructions/vpsravq.rb,
lib/fisk/instructions/vpsravw.rb,
lib/fisk/instructions/vpsrldq.rb,
lib/fisk/instructions/vpsrlvd.rb,
lib/fisk/instructions/vpsrlvq.rb,
lib/fisk/instructions/vpsrlvw.rb,
lib/fisk/instructions/vpsubsb.rb,
lib/fisk/instructions/vpsubsw.rb,
lib/fisk/instructions/vshufpd.rb,
lib/fisk/instructions/vshufps.rb,
lib/fisk/instructions/vsqrtpd.rb,
lib/fisk/instructions/vsqrtps.rb,
lib/fisk/instructions/vsqrtsd.rb,
lib/fisk/instructions/vsqrtss.rb,
lib/fisk/instructions/vtestpd.rb,
lib/fisk/instructions/vtestps.rb,
lib/fisk/instructions/addsubpd.rb,
lib/fisk/instructions/addsubps.rb,
lib/fisk/instructions/blendvpd.rb,
lib/fisk/instructions/blendvps.rb,
lib/fisk/instructions/cvtdq2pd.rb,
lib/fisk/instructions/cvtdq2ps.rb,
lib/fisk/instructions/cvtpd2dq.rb,
lib/fisk/instructions/cvtpd2pi.rb,
lib/fisk/instructions/cvtpd2ps.rb,
lib/fisk/instructions/cvtpi2pd.rb,
lib/fisk/instructions/cvtpi2ps.rb,
lib/fisk/instructions/cvtps2dq.rb,
lib/fisk/instructions/cvtps2pd.rb,
lib/fisk/instructions/cvtps2pi.rb,
lib/fisk/instructions/cvtsd2si.rb,
lib/fisk/instructions/cvtsd2ss.rb,
lib/fisk/instructions/cvtsi2sd.rb,
lib/fisk/instructions/cvtsi2ss.rb,
lib/fisk/instructions/cvtss2sd.rb,
lib/fisk/instructions/cvtss2si.rb,
lib/fisk/instructions/insertps.rb,
lib/fisk/instructions/kortestb.rb,
lib/fisk/instructions/kortestd.rb,
lib/fisk/instructions/kortestq.rb,
lib/fisk/instructions/kortestw.rb,
lib/fisk/instructions/kshiftlb.rb,
lib/fisk/instructions/kshiftld.rb,
lib/fisk/instructions/kshiftlq.rb,
lib/fisk/instructions/kshiftlw.rb,
lib/fisk/instructions/kshiftrb.rb,
lib/fisk/instructions/kshiftrd.rb,
lib/fisk/instructions/kshiftrq.rb,
lib/fisk/instructions/kshiftrw.rb,
lib/fisk/instructions/kunpckbw.rb,
lib/fisk/instructions/kunpckdq.rb,
lib/fisk/instructions/kunpckwd.rb,
lib/fisk/instructions/maskmovq.rb,
lib/fisk/instructions/monitorx.rb,
lib/fisk/instructions/movmskpd.rb,
lib/fisk/instructions/movmskps.rb,
lib/fisk/instructions/movntdqa.rb,
lib/fisk/instructions/movshdup.rb,
lib/fisk/instructions/movsldup.rb,
lib/fisk/instructions/packssdw.rb,
lib/fisk/instructions/packsswb.rb,
lib/fisk/instructions/packusdw.rb,
lib/fisk/instructions/packuswb.rb,
lib/fisk/instructions/pblendvb.rb,
lib/fisk/instructions/pfrcpit1.rb,
lib/fisk/instructions/pfrcpit2.rb,
lib/fisk/instructions/pfrsqit1.rb,
lib/fisk/instructions/pmovmskb.rb,
lib/fisk/instructions/pmovsxbd.rb,
lib/fisk/instructions/pmovsxbq.rb,
lib/fisk/instructions/pmovsxbw.rb,
lib/fisk/instructions/pmovsxdq.rb,
lib/fisk/instructions/pmovsxwd.rb,
lib/fisk/instructions/pmovsxwq.rb,
lib/fisk/instructions/pmovzxbd.rb,
lib/fisk/instructions/pmovzxbq.rb,
lib/fisk/instructions/pmovzxbw.rb,
lib/fisk/instructions/pmovzxdq.rb,
lib/fisk/instructions/pmovzxwd.rb,
lib/fisk/instructions/pmovzxwq.rb,
lib/fisk/instructions/pmulhrsw.rb,
lib/fisk/instructions/prefetch.rb,
lib/fisk/instructions/sha1msg1.rb,
lib/fisk/instructions/sha1msg2.rb,
lib/fisk/instructions/unpckhpd.rb,
lib/fisk/instructions/unpckhps.rb,
lib/fisk/instructions/unpcklpd.rb,
lib/fisk/instructions/unpcklps.rb,
lib/fisk/instructions/vblendpd.rb,
lib/fisk/instructions/vblendps.rb,
lib/fisk/instructions/vfmaddpd.rb,
lib/fisk/instructions/vfmaddps.rb,
lib/fisk/instructions/vfmaddsd.rb,
lib/fisk/instructions/vfmaddss.rb,
lib/fisk/instructions/vfmsubpd.rb,
lib/fisk/instructions/vfmsubps.rb,
lib/fisk/instructions/vfmsubsd.rb,
lib/fisk/instructions/vfmsubss.rb,
lib/fisk/instructions/vldmxcsr.rb,
lib/fisk/instructions/vmovddup.rb,
lib/fisk/instructions/vmovdqu8.rb,
lib/fisk/instructions/vmovhlps.rb,
lib/fisk/instructions/vmovlhps.rb,
lib/fisk/instructions/vmovntdq.rb,
lib/fisk/instructions/vmovntpd.rb,
lib/fisk/instructions/vmovntps.rb,
lib/fisk/instructions/vmpsadbw.rb,
lib/fisk/instructions/vpaddusb.rb,
lib/fisk/instructions/vpaddusw.rb,
lib/fisk/instructions/vpalignr.rb,
lib/fisk/instructions/vpblendd.rb,
lib/fisk/instructions/vpblendw.rb,
lib/fisk/instructions/vpcmpeqb.rb,
lib/fisk/instructions/vpcmpeqd.rb,
lib/fisk/instructions/vpcmpeqq.rb,
lib/fisk/instructions/vpcmpeqw.rb,
lib/fisk/instructions/vpcmpgtb.rb,
lib/fisk/instructions/vpcmpgtd.rb,
lib/fisk/instructions/vpcmpgtq.rb,
lib/fisk/instructions/vpcmpgtw.rb,
lib/fisk/instructions/vpermi2b.rb,
lib/fisk/instructions/vpermi2d.rb,
lib/fisk/instructions/vpermi2q.rb,
lib/fisk/instructions/vpermi2w.rb,
lib/fisk/instructions/vpermt2b.rb,
lib/fisk/instructions/vpermt2d.rb,
lib/fisk/instructions/vpermt2q.rb,
lib/fisk/instructions/vpermt2w.rb,
lib/fisk/instructions/vphaddbd.rb,
lib/fisk/instructions/vphaddbq.rb,
lib/fisk/instructions/vphaddbw.rb,
lib/fisk/instructions/vphadddq.rb,
lib/fisk/instructions/vphaddsw.rb,
lib/fisk/instructions/vphaddwd.rb,
lib/fisk/instructions/vphaddwq.rb,
lib/fisk/instructions/vphsubbw.rb,
lib/fisk/instructions/vphsubdq.rb,
lib/fisk/instructions/vphsubsw.rb,
lib/fisk/instructions/vphsubwd.rb,
lib/fisk/instructions/vplzcntd.rb,
lib/fisk/instructions/vplzcntq.rb,
lib/fisk/instructions/vpmacsdd.rb,
lib/fisk/instructions/vpmacswd.rb,
lib/fisk/instructions/vpmacsww.rb,
lib/fisk/instructions/vpmaddwd.rb,
lib/fisk/instructions/vpmovb2m.rb,
lib/fisk/instructions/vpmovd2m.rb,
lib/fisk/instructions/vpmovm2b.rb,
lib/fisk/instructions/vpmovm2d.rb,
lib/fisk/instructions/vpmovm2q.rb,
lib/fisk/instructions/vpmovm2w.rb,
lib/fisk/instructions/vpmovq2m.rb,
lib/fisk/instructions/vpmovsdb.rb,
lib/fisk/instructions/vpmovsdw.rb,
lib/fisk/instructions/vpmovsqb.rb,
lib/fisk/instructions/vpmovsqd.rb,
lib/fisk/instructions/vpmovsqw.rb,
lib/fisk/instructions/vpmovswb.rb,
lib/fisk/instructions/vpmovw2m.rb,
lib/fisk/instructions/vpmulhuw.rb,
lib/fisk/instructions/vpmuludq.rb,
lib/fisk/instructions/vpopcntd.rb,
lib/fisk/instructions/vpopcntq.rb,
lib/fisk/instructions/vpshufhw.rb,
lib/fisk/instructions/vpshuflw.rb,
lib/fisk/instructions/vpsubusb.rb,
lib/fisk/instructions/vpsubusw.rb,
lib/fisk/instructions/vptestmb.rb,
lib/fisk/instructions/vptestmd.rb,
lib/fisk/instructions/vptestmq.rb,
lib/fisk/instructions/vptestmw.rb,
lib/fisk/instructions/vrangepd.rb,
lib/fisk/instructions/vrangeps.rb,
lib/fisk/instructions/vrangesd.rb,
lib/fisk/instructions/vrangess.rb,
lib/fisk/instructions/vrcp14pd.rb,
lib/fisk/instructions/vrcp14ps.rb,
lib/fisk/instructions/vrcp14sd.rb,
lib/fisk/instructions/vrcp14ss.rb,
lib/fisk/instructions/vrcp28pd.rb,
lib/fisk/instructions/vrcp28ps.rb,
lib/fisk/instructions/vrcp28sd.rb,
lib/fisk/instructions/vrcp28ss.rb,
lib/fisk/instructions/vroundpd.rb,
lib/fisk/instructions/vroundps.rb,
lib/fisk/instructions/vroundsd.rb,
lib/fisk/instructions/vroundss.rb,
lib/fisk/instructions/vrsqrtps.rb,
lib/fisk/instructions/vrsqrtss.rb,
lib/fisk/instructions/vstmxcsr.rb,
lib/fisk/instructions/vucomisd.rb,
lib/fisk/instructions/vucomiss.rb,
lib/fisk/instructions/vzeroall.rb,
lib/fisk/instructions/cmpxchg8b.rb,
lib/fisk/instructions/cvttpd2dq.rb,
lib/fisk/instructions/cvttpd2pi.rb,
lib/fisk/instructions/cvttps2dq.rb,
lib/fisk/instructions/cvttps2pi.rb,
lib/fisk/instructions/cvttsd2si.rb,
lib/fisk/instructions/cvttss2si.rb,
lib/fisk/instructions/extractps.rb,
lib/fisk/instructions/pclmulqdq.rb,
lib/fisk/instructions/pcmpestri.rb,
lib/fisk/instructions/pcmpestrm.rb,
lib/fisk/instructions/pcmpistri.rb,
lib/fisk/instructions/pcmpistrm.rb,
lib/fisk/instructions/pmaddubsw.rb,
lib/fisk/instructions/prefetchw.rb,
lib/fisk/instructions/punpckhbw.rb,
lib/fisk/instructions/punpckhdq.rb,
lib/fisk/instructions/punpckhwd.rb,
lib/fisk/instructions/punpcklbw.rb,
lib/fisk/instructions/punpckldq.rb,
lib/fisk/instructions/punpcklwd.rb,
lib/fisk/instructions/sha1nexte.rb,
lib/fisk/instructions/sha1rnds4.rb,
lib/fisk/instructions/vaddsubpd.rb,
lib/fisk/instructions/vaddsubps.rb,
lib/fisk/instructions/vblendmpd.rb,
lib/fisk/instructions/vblendmps.rb,
lib/fisk/instructions/vblendvpd.rb,
lib/fisk/instructions/vblendvps.rb,
lib/fisk/instructions/vcvtdq2pd.rb,
lib/fisk/instructions/vcvtdq2ps.rb,
lib/fisk/instructions/vcvtpd2dq.rb,
lib/fisk/instructions/vcvtpd2ps.rb,
lib/fisk/instructions/vcvtpd2qq.rb,
lib/fisk/instructions/vcvtph2ps.rb,
lib/fisk/instructions/vcvtps2dq.rb,
lib/fisk/instructions/vcvtps2pd.rb,
lib/fisk/instructions/vcvtps2ph.rb,
lib/fisk/instructions/vcvtps2qq.rb,
lib/fisk/instructions/vcvtqq2pd.rb,
lib/fisk/instructions/vcvtqq2ps.rb,
lib/fisk/instructions/vcvtsd2si.rb,
lib/fisk/instructions/vcvtsd2ss.rb,
lib/fisk/instructions/vcvtsi2sd.rb,
lib/fisk/instructions/vcvtsi2ss.rb,
lib/fisk/instructions/vcvtss2sd.rb,
lib/fisk/instructions/vcvtss2si.rb,
lib/fisk/instructions/vdbpsadbw.rb,
lib/fisk/instructions/vexpandpd.rb,
lib/fisk/instructions/vexpandps.rb,
lib/fisk/instructions/vfnmaddpd.rb,
lib/fisk/instructions/vfnmaddps.rb,
lib/fisk/instructions/vfnmaddsd.rb,
lib/fisk/instructions/vfnmaddss.rb,
lib/fisk/instructions/vfnmsubpd.rb,
lib/fisk/instructions/vfnmsubps.rb,
lib/fisk/instructions/vfnmsubsd.rb,
lib/fisk/instructions/vfnmsubss.rb,
lib/fisk/instructions/vgetexppd.rb,
lib/fisk/instructions/vgetexpps.rb,
lib/fisk/instructions/vgetexpsd.rb,
lib/fisk/instructions/vgetexpss.rb,
lib/fisk/instructions/vinsertps.rb,
lib/fisk/instructions/vmovdqa32.rb,
lib/fisk/instructions/vmovdqa64.rb,
lib/fisk/instructions/vmovdqu16.rb,
lib/fisk/instructions/vmovdqu32.rb,
lib/fisk/instructions/vmovdqu64.rb,
lib/fisk/instructions/vmovmskpd.rb,
lib/fisk/instructions/vmovmskps.rb,
lib/fisk/instructions/vmovntdqa.rb,
lib/fisk/instructions/vmovshdup.rb,
lib/fisk/instructions/vmovsldup.rb,
lib/fisk/instructions/vpackssdw.rb,
lib/fisk/instructions/vpacksswb.rb,
lib/fisk/instructions/vpackusdw.rb,
lib/fisk/instructions/vpackuswb.rb,
lib/fisk/instructions/vpblendmb.rb,
lib/fisk/instructions/vpblendmd.rb,
lib/fisk/instructions/vpblendmq.rb,
lib/fisk/instructions/vpblendmw.rb,
lib/fisk/instructions/vpblendvb.rb,
lib/fisk/instructions/vpermi2pd.rb,
lib/fisk/instructions/vpermi2ps.rb,
lib/fisk/instructions/vpermilpd.rb,
lib/fisk/instructions/vpermilps.rb,
lib/fisk/instructions/vpermt2pd.rb,
lib/fisk/instructions/vpermt2ps.rb,
lib/fisk/instructions/vpexpandd.rb,
lib/fisk/instructions/vpexpandq.rb,
lib/fisk/instructions/vphaddubd.rb,
lib/fisk/instructions/vphaddubq.rb,
lib/fisk/instructions/vphaddubw.rb,
lib/fisk/instructions/vphaddudq.rb,
lib/fisk/instructions/vphadduwd.rb,
lib/fisk/instructions/vphadduwq.rb,
lib/fisk/instructions/vpmacsdqh.rb,
lib/fisk/instructions/vpmacsdql.rb,
lib/fisk/instructions/vpmacssdd.rb,
lib/fisk/instructions/vpmacsswd.rb,
lib/fisk/instructions/vpmacssww.rb,
lib/fisk/instructions/vpmadcswd.rb,
lib/fisk/instructions/vpmovmskb.rb,
lib/fisk/instructions/vpmovsxbd.rb,
lib/fisk/instructions/vpmovsxbq.rb,
lib/fisk/instructions/vpmovsxbw.rb,
lib/fisk/instructions/vpmovsxdq.rb,
lib/fisk/instructions/vpmovsxwd.rb,
lib/fisk/instructions/vpmovsxwq.rb,
lib/fisk/instructions/vpmovusdb.rb,
lib/fisk/instructions/vpmovusdw.rb,
lib/fisk/instructions/vpmovusqb.rb,
lib/fisk/instructions/vpmovusqd.rb,
lib/fisk/instructions/vpmovusqw.rb,
lib/fisk/instructions/vpmovuswb.rb,
lib/fisk/instructions/vpmovzxbd.rb,
lib/fisk/instructions/vpmovzxbq.rb,
lib/fisk/instructions/vpmovzxbw.rb,
lib/fisk/instructions/vpmovzxdq.rb,
lib/fisk/instructions/vpmovzxwd.rb,
lib/fisk/instructions/vpmovzxwq.rb,
lib/fisk/instructions/vpmulhrsw.rb,
lib/fisk/instructions/vptestnmb.rb,
lib/fisk/instructions/vptestnmd.rb,
lib/fisk/instructions/vptestnmq.rb,
lib/fisk/instructions/vptestnmw.rb,
lib/fisk/instructions/vreducepd.rb,
lib/fisk/instructions/vreduceps.rb,
lib/fisk/instructions/vreducesd.rb,
lib/fisk/instructions/vreducess.rb,
lib/fisk/instructions/vscalefpd.rb,
lib/fisk/instructions/vscalefps.rb,
lib/fisk/instructions/vscalefsd.rb,
lib/fisk/instructions/vscalefss.rb,
lib/fisk/instructions/vunpckhpd.rb,
lib/fisk/instructions/vunpckhps.rb,
lib/fisk/instructions/vunpcklpd.rb,
lib/fisk/instructions/vunpcklps.rb,
lib/fisk/instructions/aesdeclast.rb,
lib/fisk/instructions/aesenclast.rb,
lib/fisk/instructions/clflushopt.rb,
lib/fisk/instructions/cmpxchg16b.rb,
lib/fisk/instructions/maskmovdqu.rb,
lib/fisk/instructions/phminposuw.rb,
lib/fisk/instructions/prefetcht0.rb,
lib/fisk/instructions/prefetcht1.rb,
lib/fisk/instructions/prefetcht2.rb,
lib/fisk/instructions/punpckhqdq.rb,
lib/fisk/instructions/punpcklqdq.rb,
lib/fisk/instructions/sha256msg1.rb,
lib/fisk/instructions/sha256msg2.rb,
lib/fisk/instructions/vcvtpd2udq.rb,
lib/fisk/instructions/vcvtpd2uqq.rb,
lib/fisk/instructions/vcvtps2udq.rb,
lib/fisk/instructions/vcvtps2uqq.rb,
lib/fisk/instructions/vcvtsd2usi.rb,
lib/fisk/instructions/vcvtss2usi.rb,
lib/fisk/instructions/vcvttpd2dq.rb,
lib/fisk/instructions/vcvttpd2qq.rb,
lib/fisk/instructions/vcvttps2dq.rb,
lib/fisk/instructions/vcvttps2qq.rb,
lib/fisk/instructions/vcvttsd2si.rb,
lib/fisk/instructions/vcvttss2si.rb,
lib/fisk/instructions/vcvtudq2pd.rb,
lib/fisk/instructions/vcvtudq2ps.rb,
lib/fisk/instructions/vcvtuqq2pd.rb,
lib/fisk/instructions/vcvtuqq2ps.rb,
lib/fisk/instructions/vcvtusi2sd.rb,
lib/fisk/instructions/vcvtusi2ss.rb,
lib/fisk/instructions/vextractps.rb,
lib/fisk/instructions/vfpclasspd.rb,
lib/fisk/instructions/vfpclassps.rb,
lib/fisk/instructions/vfpclasssd.rb,
lib/fisk/instructions/vfpclassss.rb,
lib/fisk/instructions/vgatherdpd.rb,
lib/fisk/instructions/vgatherdps.rb,
lib/fisk/instructions/vgatherqpd.rb,
lib/fisk/instructions/vgatherqps.rb,
lib/fisk/instructions/vgetmantpd.rb,
lib/fisk/instructions/vgetmantps.rb,
lib/fisk/instructions/vgetmantsd.rb,
lib/fisk/instructions/vgetmantss.rb,
lib/fisk/instructions/vmaskmovpd.rb,
lib/fisk/instructions/vmaskmovps.rb,
lib/fisk/instructions/vpclmulqdq.rb,
lib/fisk/instructions/vpcmpestri.rb,
lib/fisk/instructions/vpcmpestrm.rb,
lib/fisk/instructions/vpcmpistri.rb,
lib/fisk/instructions/vpcmpistrm.rb,
lib/fisk/instructions/vperm2f128.rb,
lib/fisk/instructions/vperm2i128.rb,
lib/fisk/instructions/vpermil2pd.rb,
lib/fisk/instructions/vpermil2ps.rb,
lib/fisk/instructions/vpgatherdd.rb,
lib/fisk/instructions/vpgatherdq.rb,
lib/fisk/instructions/vpgatherqd.rb,
lib/fisk/instructions/vpgatherqq.rb,
lib/fisk/instructions/vpmacssdqh.rb,
lib/fisk/instructions/vpmacssdql.rb,
lib/fisk/instructions/vpmadcsswd.rb,
lib/fisk/instructions/vpmaddubsw.rb,
lib/fisk/instructions/vpmaskmovd.rb,
lib/fisk/instructions/vpmaskmovq.rb,
lib/fisk/instructions/vpternlogd.rb,
lib/fisk/instructions/vpternlogq.rb,
lib/fisk/instructions/vpunpckhbw.rb,
lib/fisk/instructions/vpunpckhdq.rb,
lib/fisk/instructions/vpunpckhwd.rb,
lib/fisk/instructions/vpunpcklbw.rb,
lib/fisk/instructions/vpunpckldq.rb,
lib/fisk/instructions/vpunpcklwd.rb,
lib/fisk/instructions/vrsqrt14pd.rb,
lib/fisk/instructions/vrsqrt14ps.rb,
lib/fisk/instructions/vrsqrt14sd.rb,
lib/fisk/instructions/vrsqrt14ss.rb,
lib/fisk/instructions/vrsqrt28pd.rb,
lib/fisk/instructions/vrsqrt28ps.rb,
lib/fisk/instructions/vrsqrt28sd.rb,
lib/fisk/instructions/vrsqrt28ss.rb,
lib/fisk/instructions/vshuff32x4.rb,
lib/fisk/instructions/vshuff64x2.rb,
lib/fisk/instructions/vshufi32x4.rb,
lib/fisk/instructions/vshufi64x2.rb,
lib/fisk/instructions/vzeroupper.rb,
lib/fisk/instructions/prefetchnta.rb,
lib/fisk/instructions/prefetchwt1.rb,
lib/fisk/instructions/sha256rnds2.rb,
lib/fisk/instructions/vaesdeclast.rb,
lib/fisk/instructions/vaesenclast.rb,
lib/fisk/instructions/vcompresspd.rb,
lib/fisk/instructions/vcompressps.rb,
lib/fisk/instructions/vcvttpd2udq.rb,
lib/fisk/instructions/vcvttpd2uqq.rb,
lib/fisk/instructions/vcvttps2udq.rb,
lib/fisk/instructions/vcvttps2uqq.rb,
lib/fisk/instructions/vcvttsd2usi.rb,
lib/fisk/instructions/vcvttss2usi.rb,
lib/fisk/instructions/vfixupimmpd.rb,
lib/fisk/instructions/vfixupimmps.rb,
lib/fisk/instructions/vfixupimmsd.rb,
lib/fisk/instructions/vfixupimmss.rb,
lib/fisk/instructions/vfmadd132pd.rb,
lib/fisk/instructions/vfmadd132ps.rb,
lib/fisk/instructions/vfmadd132sd.rb,
lib/fisk/instructions/vfmadd132ss.rb,
lib/fisk/instructions/vfmadd213pd.rb,
lib/fisk/instructions/vfmadd213ps.rb,
lib/fisk/instructions/vfmadd213sd.rb,
lib/fisk/instructions/vfmadd213ss.rb,
lib/fisk/instructions/vfmadd231pd.rb,
lib/fisk/instructions/vfmadd231ps.rb,
lib/fisk/instructions/vfmadd231sd.rb,
lib/fisk/instructions/vfmadd231ss.rb,
lib/fisk/instructions/vfmaddsubpd.rb,
lib/fisk/instructions/vfmaddsubps.rb,
lib/fisk/instructions/vfmsub132pd.rb,
lib/fisk/instructions/vfmsub132ps.rb,
lib/fisk/instructions/vfmsub132sd.rb,
lib/fisk/instructions/vfmsub132ss.rb,
lib/fisk/instructions/vfmsub213pd.rb,
lib/fisk/instructions/vfmsub213ps.rb,
lib/fisk/instructions/vfmsub213sd.rb,
lib/fisk/instructions/vfmsub213ss.rb,
lib/fisk/instructions/vfmsub231pd.rb,
lib/fisk/instructions/vfmsub231ps.rb,
lib/fisk/instructions/vfmsub231sd.rb,
lib/fisk/instructions/vfmsub231ss.rb,
lib/fisk/instructions/vfmsubaddpd.rb,
lib/fisk/instructions/vfmsubaddps.rb,
lib/fisk/instructions/vinsertf128.rb,
lib/fisk/instructions/vinserti128.rb,
lib/fisk/instructions/vmaskmovdqu.rb,
lib/fisk/instructions/vpcompressd.rb,
lib/fisk/instructions/vpcompressq.rb,
lib/fisk/instructions/vpconflictd.rb,
lib/fisk/instructions/vpconflictq.rb,
lib/fisk/instructions/vphminposuw.rb,
lib/fisk/instructions/vpmadd52huq.rb,
lib/fisk/instructions/vpmadd52luq.rb,
lib/fisk/instructions/vpscatterdd.rb,
lib/fisk/instructions/vpscatterdq.rb,
lib/fisk/instructions/vpscatterqd.rb,
lib/fisk/instructions/vpscatterqq.rb,
lib/fisk/instructions/vpunpckhqdq.rb,
lib/fisk/instructions/vpunpcklqdq.rb,
lib/fisk/instructions/vrndscalepd.rb,
lib/fisk/instructions/vrndscaleps.rb,
lib/fisk/instructions/vrndscalesd.rb,
lib/fisk/instructions/vrndscaless.rb,
lib/fisk/instructions/vscatterdpd.rb,
lib/fisk/instructions/vscatterdps.rb,
lib/fisk/instructions/vscatterqpd.rb,
lib/fisk/instructions/vscatterqps.rb,
lib/fisk/instructions/vbroadcastsd.rb,
lib/fisk/instructions/vbroadcastss.rb,
lib/fisk/instructions/vextractf128.rb,
lib/fisk/instructions/vextracti128.rb,
lib/fisk/instructions/vfnmadd132pd.rb,
lib/fisk/instructions/vfnmadd132ps.rb,
lib/fisk/instructions/vfnmadd132sd.rb,
lib/fisk/instructions/vfnmadd132ss.rb,
lib/fisk/instructions/vfnmadd213pd.rb,
lib/fisk/instructions/vfnmadd213ps.rb,
lib/fisk/instructions/vfnmadd213sd.rb,
lib/fisk/instructions/vfnmadd213ss.rb,
lib/fisk/instructions/vfnmadd231pd.rb,
lib/fisk/instructions/vfnmadd231ps.rb,
lib/fisk/instructions/vfnmadd231sd.rb,
lib/fisk/instructions/vfnmadd231ss.rb,
lib/fisk/instructions/vfnmsub132pd.rb,
lib/fisk/instructions/vfnmsub132ps.rb,
lib/fisk/instructions/vfnmsub132sd.rb,
lib/fisk/instructions/vfnmsub132ss.rb,
lib/fisk/instructions/vfnmsub213pd.rb,
lib/fisk/instructions/vfnmsub213ps.rb,
lib/fisk/instructions/vfnmsub213sd.rb,
lib/fisk/instructions/vfnmsub213ss.rb,
lib/fisk/instructions/vfnmsub231pd.rb,
lib/fisk/instructions/vfnmsub231ps.rb,
lib/fisk/instructions/vfnmsub231sd.rb,
lib/fisk/instructions/vfnmsub231ss.rb,
lib/fisk/instructions/vinsertf32x4.rb,
lib/fisk/instructions/vinsertf32x8.rb,
lib/fisk/instructions/vinsertf64x2.rb,
lib/fisk/instructions/vinsertf64x4.rb,
lib/fisk/instructions/vinserti32x4.rb,
lib/fisk/instructions/vinserti32x8.rb,
lib/fisk/instructions/vinserti64x2.rb,
lib/fisk/instructions/vinserti64x4.rb,
lib/fisk/instructions/vpbroadcastb.rb,
lib/fisk/instructions/vpbroadcastd.rb,
lib/fisk/instructions/vpbroadcastq.rb,
lib/fisk/instructions/vpbroadcastw.rb,
lib/fisk/instructions/vextractf32x4.rb,
lib/fisk/instructions/vextractf32x8.rb,
lib/fisk/instructions/vextractf64x2.rb,
lib/fisk/instructions/vextractf64x4.rb,
lib/fisk/instructions/vextracti32x4.rb,
lib/fisk/instructions/vextracti32x8.rb,
lib/fisk/instructions/vextracti64x2.rb,
lib/fisk/instructions/vextracti64x4.rb,
lib/fisk/instructions/vgatherpf0dpd.rb,
lib/fisk/instructions/vgatherpf0dps.rb,
lib/fisk/instructions/vgatherpf0qpd.rb,
lib/fisk/instructions/vgatherpf0qps.rb,
lib/fisk/instructions/vgatherpf1dpd.rb,
lib/fisk/instructions/vgatherpf1dps.rb,
lib/fisk/instructions/vgatherpf1qpd.rb,
lib/fisk/instructions/vgatherpf1qps.rb,
lib/fisk/instructions/vbroadcastf128.rb,
lib/fisk/instructions/vbroadcasti128.rb,
lib/fisk/instructions/vfmaddsub132pd.rb,
lib/fisk/instructions/vfmaddsub132ps.rb,
lib/fisk/instructions/vfmaddsub213pd.rb,
lib/fisk/instructions/vfmaddsub213ps.rb,
lib/fisk/instructions/vfmaddsub231pd.rb,
lib/fisk/instructions/vfmaddsub231ps.rb,
lib/fisk/instructions/vfmsubadd132pd.rb,
lib/fisk/instructions/vfmsubadd132ps.rb,
lib/fisk/instructions/vfmsubadd213pd.rb,
lib/fisk/instructions/vfmsubadd213ps.rb,
lib/fisk/instructions/vfmsubadd231pd.rb,
lib/fisk/instructions/vfmsubadd231ps.rb,
lib/fisk/instructions/vpmultishiftqb.rb,
lib/fisk/instructions/vscatterpf0dpd.rb,
lib/fisk/instructions/vscatterpf0dps.rb,
lib/fisk/instructions/vscatterpf0qpd.rb,
lib/fisk/instructions/vscatterpf0qps.rb,
lib/fisk/instructions/vscatterpf1dpd.rb,
lib/fisk/instructions/vscatterpf1dps.rb,
lib/fisk/instructions/vscatterpf1qpd.rb,
lib/fisk/instructions/vscatterpf1qps.rb,
lib/fisk/instructions/aeskeygenassist.rb,
lib/fisk/instructions/vbroadcastf32x2.rb,
lib/fisk/instructions/vbroadcastf32x4.rb,
lib/fisk/instructions/vbroadcastf32x8.rb,
lib/fisk/instructions/vbroadcastf64x2.rb,
lib/fisk/instructions/vbroadcastf64x4.rb,
lib/fisk/instructions/vbroadcasti32x2.rb,
lib/fisk/instructions/vbroadcasti32x4.rb,
lib/fisk/instructions/vbroadcasti32x8.rb,
lib/fisk/instructions/vbroadcasti64x2.rb,
lib/fisk/instructions/vbroadcasti64x4.rb,
lib/fisk/instructions/vpbroadcastmb2q.rb,
lib/fisk/instructions/vpbroadcastmw2d.rb,
lib/fisk/instructions/vaeskeygenassist.rb

Defined Under Namespace

Modules: Errors, Helpers, InstructionPredicates, Instructions, OperandPredicates, OperandSize, Registers Classes: AbsoluteJumpInstruction, AbsoluteLocation, CFG, Comment, Encoding, ImmediateOperand, Instruction, Label, Lazy, Lit, M, MOffs64, Memory, Operand, Rel32, Rel8, Relative, RetryRequest, UnknownLabel, UnresolvedJumpInstruction, UnresolvedRIPInstruction, ValueOperand

Constant Summary collapse

VERSION =
"2.3.1"

Instance Method Summary collapse

Methods included from Instructions::DSLMethods

#adc, #adcx, #add, #addpd, #addps, #addsd, #addss, #addsubpd, #addsubps, #adox, #aesdec, #aesdeclast, #aesenc, #aesenclast, #aesimc, #aeskeygenassist, #and, #andn, #andnpd, #andnps, #andpd, #andps, #bextr, #blcfill, #blci, #blcic, #blcmsk, #blcs, #blendpd, #blendps, #blendvpd, #blendvps, #blsfill, #blsi, #blsic, #blsmsk, #blsr, #bsf, #bsr, #bswap, #bt, #btc, #btr, #bts, #bzhi, #call, #cbw, #cdq, #cdqe, #clc, #cld, #clflush, #clflushopt, #clwb, #clzero, #cmc, #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, #cmovpe, #cmovpo, #cmovs, #cmovz, #cmp, #cmppd, #cmpps, #cmpsd, #cmpss, #cmpxchg, #cmpxchg16b, #cmpxchg8b, #comisd, #comiss, #cpuid, #cqo, #crc32, #cvtdq2pd, #cvtdq2ps, #cvtpd2dq, #cvtpd2pi, #cvtpd2ps, #cvtpi2pd, #cvtpi2ps, #cvtps2dq, #cvtps2pd, #cvtps2pi, #cvtsd2si, #cvtsd2ss, #cvtsi2sd, #cvtsi2ss, #cvtss2sd, #cvtss2si, #cvttpd2dq, #cvttpd2pi, #cvttps2dq, #cvttps2pi, #cvttsd2si, #cvttss2si, #cwd, #cwde, #dec, #div, #divpd, #divps, #divsd, #divss, #dppd, #dpps, #emms, #extractps, #extrq, #femms, #haddpd, #haddps, #hsubpd, #hsubps, #idiv, #imul, #inc, #insertps, #insertq, #int, #ja, #jae, #jb, #jbe, #jc, #je, #jecxz, #jg, #jge, #jl, #jle, #jmp, #jna, #jnae, #jnb, #jnbe, #jnc, #jne, #jng, #jnge, #jnl, #jnle, #jno, #jnp, #jns, #jnz, #jo, #jp, #jpe, #jpo, #jrcxz, #js, #jz, #kaddb, #kaddd, #kaddq, #kaddw, #kandb, #kandd, #kandnb, #kandnd, #kandnq, #kandnw, #kandq, #kandw, #kmovb, #kmovd, #kmovq, #kmovw, #knotb, #knotd, #knotq, #knotw, #korb, #kord, #korq, #kortestb, #kortestd, #kortestq, #kortestw, #korw, #kshiftlb, #kshiftld, #kshiftlq, #kshiftlw, #kshiftrb, #kshiftrd, #kshiftrq, #kshiftrw, #ktestb, #ktestd, #ktestq, #ktestw, #kunpckbw, #kunpckdq, #kunpckwd, #kxnorb, #kxnord, #kxnorq, #kxnorw, #kxorb, #kxord, #kxorq, #kxorw, #lddqu, #ldmxcsr, #lea, #lfence, #lzcnt, #maskmovdqu, #maskmovq, #maxpd, #maxps, #maxsd, #maxss, #mfence, #minpd, #minps, #minsd, #minss, #monitor, #monitorx, #mov, #movapd, #movaps, #movbe, #movd, #movddup, #movdq2q, #movdqa, #movdqu, #movhlps, #movhpd, #movhps, #movlhps, #movlpd, #movlps, #movmskpd, #movmskps, #movntdq, #movntdqa, #movnti, #movntpd, #movntps, #movntq, #movntsd, #movntss, #movq, #movq2dq, #movsd, #movshdup, #movsldup, #movss, #movsx, #movsxd, #movupd, #movups, #movzx, #mpsadbw, #mul, #mulpd, #mulps, #mulsd, #mulss, #mulx, #mwait, #mwaitx, #neg, #nop, #not, #or, #orpd, #orps, #pabsb, #pabsd, #pabsw, #packssdw, #packsswb, #packusdw, #packuswb, #paddb, #paddd, #paddq, #paddsb, #paddsw, #paddusb, #paddusw, #paddw, #palignr, #pand, #pandn, #pause, #pavgb, #pavgusb, #pavgw, #pblendvb, #pblendw, #pclmulqdq, #pcmpeqb, #pcmpeqd, #pcmpeqq, #pcmpeqw, #pcmpestri, #pcmpestrm, #pcmpgtb, #pcmpgtd, #pcmpgtq, #pcmpgtw, #pcmpistri, #pcmpistrm, #pdep, #pext, #pextrb, #pextrd, #pextrq, #pextrw, #pf2id, #pf2iw, #pfacc, #pfadd, #pfcmpeq, #pfcmpge, #pfcmpgt, #pfmax, #pfmin, #pfmul, #pfnacc, #pfpnacc, #pfrcp, #pfrcpit1, #pfrcpit2, #pfrsqit1, #pfrsqrt, #pfsub, #pfsubr, #phaddd, #phaddsw, #phaddw, #phminposuw, #phsubd, #phsubsw, #phsubw, #pi2fd, #pi2fw, #pinsrb, #pinsrd, #pinsrq, #pinsrw, #pmaddubsw, #pmaddwd, #pmaxsb, #pmaxsd, #pmaxsw, #pmaxub, #pmaxud, #pmaxuw, #pminsb, #pminsd, #pminsw, #pminub, #pminud, #pminuw, #pmovmskb, #pmovsxbd, #pmovsxbq, #pmovsxbw, #pmovsxdq, #pmovsxwd, #pmovsxwq, #pmovzxbd, #pmovzxbq, #pmovzxbw, #pmovzxdq, #pmovzxwd, #pmovzxwq, #pmuldq, #pmulhrsw, #pmulhrw, #pmulhuw, #pmulhw, #pmulld, #pmullw, #pmuludq, #pop, #popcnt, #por, #prefetch, #prefetchnta, #prefetcht0, #prefetcht1, #prefetcht2, #prefetchw, #prefetchwt1, #psadbw, #pshufb, #pshufd, #pshufhw, #pshuflw, #pshufw, #psignb, #psignd, #psignw, #pslld, #pslldq, #psllq, #psllw, #psrad, #psraw, #psrld, #psrldq, #psrlq, #psrlw, #psubb, #psubd, #psubq, #psubsb, #psubsw, #psubusb, #psubusw, #psubw, #pswapd, #ptest, #punpckhbw, #punpckhdq, #punpckhqdq, #punpckhwd, #punpcklbw, #punpckldq, #punpcklqdq, #punpcklwd, #push, #pxor, #rcl, #rcpps, #rcpss, #rcr, #rdrand, #rdseed, #rdtsc, #rdtscp, #ret, #rol, #ror, #rorx, #roundpd, #roundps, #roundsd, #roundss, #rsqrtps, #rsqrtss, #sal, #sar, #sarx, #sbb, #seta, #setae, #setb, #setbe, #setc, #sete, #setg, #setge, #setl, #setle, #setna, #setnae, #setnb, #setnbe, #setnc, #setne, #setng, #setnge, #setnl, #setnle, #setno, #setnp, #setns, #setnz, #seto, #setp, #setpe, #setpo, #sets, #setz, #sfence, #sha1msg1, #sha1msg2, #sha1nexte, #sha1rnds4, #sha256msg1, #sha256msg2, #sha256rnds2, #shl, #shld, #shlx, #shr, #shrd, #shrx, #shufpd, #shufps, #sqrtpd, #sqrtps, #sqrtsd, #sqrtss, #stc, #std, #stmxcsr, #sub, #subpd, #subps, #subsd, #subss, #syscall, #t1mskc, #test, #tzcnt, #tzmsk, #ucomisd, #ucomiss, #ud2, #unpckhpd, #unpckhps, #unpcklpd, #unpcklps, #vaddpd, #vaddps, #vaddsd, #vaddss, #vaddsubpd, #vaddsubps, #vaesdec, #vaesdeclast, #vaesenc, #vaesenclast, #vaesimc, #vaeskeygenassist, #valignd, #valignq, #vandnpd, #vandnps, #vandpd, #vandps, #vblendmpd, #vblendmps, #vblendpd, #vblendps, #vblendvpd, #vblendvps, #vbroadcastf128, #vbroadcastf32x2, #vbroadcastf32x4, #vbroadcastf32x8, #vbroadcastf64x2, #vbroadcastf64x4, #vbroadcasti128, #vbroadcasti32x2, #vbroadcasti32x4, #vbroadcasti32x8, #vbroadcasti64x2, #vbroadcasti64x4, #vbroadcastsd, #vbroadcastss, #vcmppd, #vcmpps, #vcmpsd, #vcmpss, #vcomisd, #vcomiss, #vcompresspd, #vcompressps, #vcvtdq2pd, #vcvtdq2ps, #vcvtpd2dq, #vcvtpd2ps, #vcvtpd2qq, #vcvtpd2udq, #vcvtpd2uqq, #vcvtph2ps, #vcvtps2dq, #vcvtps2pd, #vcvtps2ph, #vcvtps2qq, #vcvtps2udq, #vcvtps2uqq, #vcvtqq2pd, #vcvtqq2ps, #vcvtsd2si, #vcvtsd2ss, #vcvtsd2usi, #vcvtsi2sd, #vcvtsi2ss, #vcvtss2sd, #vcvtss2si, #vcvtss2usi, #vcvttpd2dq, #vcvttpd2qq, #vcvttpd2udq, #vcvttpd2uqq, #vcvttps2dq, #vcvttps2qq, #vcvttps2udq, #vcvttps2uqq, #vcvttsd2si, #vcvttsd2usi, #vcvttss2si, #vcvttss2usi, #vcvtudq2pd, #vcvtudq2ps, #vcvtuqq2pd, #vcvtuqq2ps, #vcvtusi2sd, #vcvtusi2ss, #vdbpsadbw, #vdivpd, #vdivps, #vdivsd, #vdivss, #vdppd, #vdpps, #vexp2pd, #vexp2ps, #vexpandpd, #vexpandps, #vextractf128, #vextractf32x4, #vextractf32x8, #vextractf64x2, #vextractf64x4, #vextracti128, #vextracti32x4, #vextracti32x8, #vextracti64x2, #vextracti64x4, #vextractps, #vfixupimmpd, #vfixupimmps, #vfixupimmsd, #vfixupimmss, #vfmadd132pd, #vfmadd132ps, #vfmadd132sd, #vfmadd132ss, #vfmadd213pd, #vfmadd213ps, #vfmadd213sd, #vfmadd213ss, #vfmadd231pd, #vfmadd231ps, #vfmadd231sd, #vfmadd231ss, #vfmaddpd, #vfmaddps, #vfmaddsd, #vfmaddss, #vfmaddsub132pd, #vfmaddsub132ps, #vfmaddsub213pd, #vfmaddsub213ps, #vfmaddsub231pd, #vfmaddsub231ps, #vfmaddsubpd, #vfmaddsubps, #vfmsub132pd, #vfmsub132ps, #vfmsub132sd, #vfmsub132ss, #vfmsub213pd, #vfmsub213ps, #vfmsub213sd, #vfmsub213ss, #vfmsub231pd, #vfmsub231ps, #vfmsub231sd, #vfmsub231ss, #vfmsubadd132pd, #vfmsubadd132ps, #vfmsubadd213pd, #vfmsubadd213ps, #vfmsubadd231pd, #vfmsubadd231ps, #vfmsubaddpd, #vfmsubaddps, #vfmsubpd, #vfmsubps, #vfmsubsd, #vfmsubss, #vfnmadd132pd, #vfnmadd132ps, #vfnmadd132sd, #vfnmadd132ss, #vfnmadd213pd, #vfnmadd213ps, #vfnmadd213sd, #vfnmadd213ss, #vfnmadd231pd, #vfnmadd231ps, #vfnmadd231sd, #vfnmadd231ss, #vfnmaddpd, #vfnmaddps, #vfnmaddsd, #vfnmaddss, #vfnmsub132pd, #vfnmsub132ps, #vfnmsub132sd, #vfnmsub132ss, #vfnmsub213pd, #vfnmsub213ps, #vfnmsub213sd, #vfnmsub213ss, #vfnmsub231pd, #vfnmsub231ps, #vfnmsub231sd, #vfnmsub231ss, #vfnmsubpd, #vfnmsubps, #vfnmsubsd, #vfnmsubss, #vfpclasspd, #vfpclassps, #vfpclasssd, #vfpclassss, #vfrczpd, #vfrczps, #vfrczsd, #vfrczss, #vgatherdpd, #vgatherdps, #vgatherpf0dpd, #vgatherpf0dps, #vgatherpf0qpd, #vgatherpf0qps, #vgatherpf1dpd, #vgatherpf1dps, #vgatherpf1qpd, #vgatherpf1qps, #vgatherqpd, #vgatherqps, #vgetexppd, #vgetexpps, #vgetexpsd, #vgetexpss, #vgetmantpd, #vgetmantps, #vgetmantsd, #vgetmantss, #vhaddpd, #vhaddps, #vhsubpd, #vhsubps, #vinsertf128, #vinsertf32x4, #vinsertf32x8, #vinsertf64x2, #vinsertf64x4, #vinserti128, #vinserti32x4, #vinserti32x8, #vinserti64x2, #vinserti64x4, #vinsertps, #vlddqu, #vldmxcsr, #vmaskmovdqu, #vmaskmovpd, #vmaskmovps, #vmaxpd, #vmaxps, #vmaxsd, #vmaxss, #vminpd, #vminps, #vminsd, #vminss, #vmovapd, #vmovaps, #vmovd, #vmovddup, #vmovdqa, #vmovdqa32, #vmovdqa64, #vmovdqu, #vmovdqu16, #vmovdqu32, #vmovdqu64, #vmovdqu8, #vmovhlps, #vmovhpd, #vmovhps, #vmovlhps, #vmovlpd, #vmovlps, #vmovmskpd, #vmovmskps, #vmovntdq, #vmovntdqa, #vmovntpd, #vmovntps, #vmovq, #vmovsd, #vmovshdup, #vmovsldup, #vmovss, #vmovupd, #vmovups, #vmpsadbw, #vmulpd, #vmulps, #vmulsd, #vmulss, #vorpd, #vorps, #vpabsb, #vpabsd, #vpabsq, #vpabsw, #vpackssdw, #vpacksswb, #vpackusdw, #vpackuswb, #vpaddb, #vpaddd, #vpaddq, #vpaddsb, #vpaddsw, #vpaddusb, #vpaddusw, #vpaddw, #vpalignr, #vpand, #vpandd, #vpandn, #vpandnd, #vpandnq, #vpandq, #vpavgb, #vpavgw, #vpblendd, #vpblendmb, #vpblendmd, #vpblendmq, #vpblendmw, #vpblendvb, #vpblendw, #vpbroadcastb, #vpbroadcastd, #vpbroadcastmb2q, #vpbroadcastmw2d, #vpbroadcastq, #vpbroadcastw, #vpclmulqdq, #vpcmov, #vpcmpb, #vpcmpd, #vpcmpeqb, #vpcmpeqd, #vpcmpeqq, #vpcmpeqw, #vpcmpestri, #vpcmpestrm, #vpcmpgtb, #vpcmpgtd, #vpcmpgtq, #vpcmpgtw, #vpcmpistri, #vpcmpistrm, #vpcmpq, #vpcmpub, #vpcmpud, #vpcmpuq, #vpcmpuw, #vpcmpw, #vpcomb, #vpcomd, #vpcompressd, #vpcompressq, #vpcomq, #vpcomub, #vpcomud, #vpcomuq, #vpcomuw, #vpcomw, #vpconflictd, #vpconflictq, #vperm2f128, #vperm2i128, #vpermb, #vpermd, #vpermi2b, #vpermi2d, #vpermi2pd, #vpermi2ps, #vpermi2q, #vpermi2w, #vpermil2pd, #vpermil2ps, #vpermilpd, #vpermilps, #vpermpd, #vpermps, #vpermq, #vpermt2b, #vpermt2d, #vpermt2pd, #vpermt2ps, #vpermt2q, #vpermt2w, #vpermw, #vpexpandd, #vpexpandq, #vpextrb, #vpextrd, #vpextrq, #vpextrw, #vpgatherdd, #vpgatherdq, #vpgatherqd, #vpgatherqq, #vphaddbd, #vphaddbq, #vphaddbw, #vphaddd, #vphadddq, #vphaddsw, #vphaddubd, #vphaddubq, #vphaddubw, #vphaddudq, #vphadduwd, #vphadduwq, #vphaddw, #vphaddwd, #vphaddwq, #vphminposuw, #vphsubbw, #vphsubd, #vphsubdq, #vphsubsw, #vphsubw, #vphsubwd, #vpinsrb, #vpinsrd, #vpinsrq, #vpinsrw, #vplzcntd, #vplzcntq, #vpmacsdd, #vpmacsdqh, #vpmacsdql, #vpmacssdd, #vpmacssdqh, #vpmacssdql, #vpmacsswd, #vpmacssww, #vpmacswd, #vpmacsww, #vpmadcsswd, #vpmadcswd, #vpmadd52huq, #vpmadd52luq, #vpmaddubsw, #vpmaddwd, #vpmaskmovd, #vpmaskmovq, #vpmaxsb, #vpmaxsd, #vpmaxsq, #vpmaxsw, #vpmaxub, #vpmaxud, #vpmaxuq, #vpmaxuw, #vpminsb, #vpminsd, #vpminsq, #vpminsw, #vpminub, #vpminud, #vpminuq, #vpminuw, #vpmovb2m, #vpmovd2m, #vpmovdb, #vpmovdw, #vpmovm2b, #vpmovm2d, #vpmovm2q, #vpmovm2w, #vpmovmskb, #vpmovq2m, #vpmovqb, #vpmovqd, #vpmovqw, #vpmovsdb, #vpmovsdw, #vpmovsqb, #vpmovsqd, #vpmovsqw, #vpmovswb, #vpmovsxbd, #vpmovsxbq, #vpmovsxbw, #vpmovsxdq, #vpmovsxwd, #vpmovsxwq, #vpmovusdb, #vpmovusdw, #vpmovusqb, #vpmovusqd, #vpmovusqw, #vpmovuswb, #vpmovw2m, #vpmovwb, #vpmovzxbd, #vpmovzxbq, #vpmovzxbw, #vpmovzxdq, #vpmovzxwd, #vpmovzxwq, #vpmuldq, #vpmulhrsw, #vpmulhuw, #vpmulhw, #vpmulld, #vpmullq, #vpmullw, #vpmultishiftqb, #vpmuludq, #vpopcntd, #vpopcntq, #vpor, #vpord, #vporq, #vpperm, #vprold, #vprolq, #vprolvd, #vprolvq, #vprord, #vprorq, #vprorvd, #vprorvq, #vprotb, #vprotd, #vprotq, #vprotw, #vpsadbw, #vpscatterdd, #vpscatterdq, #vpscatterqd, #vpscatterqq, #vpshab, #vpshad, #vpshaq, #vpshaw, #vpshlb, #vpshld, #vpshlq, #vpshlw, #vpshufb, #vpshufd, #vpshufhw, #vpshuflw, #vpsignb, #vpsignd, #vpsignw, #vpslld, #vpslldq, #vpsllq, #vpsllvd, #vpsllvq, #vpsllvw, #vpsllw, #vpsrad, #vpsraq, #vpsravd, #vpsravq, #vpsravw, #vpsraw, #vpsrld, #vpsrldq, #vpsrlq, #vpsrlvd, #vpsrlvq, #vpsrlvw, #vpsrlw, #vpsubb, #vpsubd, #vpsubq, #vpsubsb, #vpsubsw, #vpsubusb, #vpsubusw, #vpsubw, #vpternlogd, #vpternlogq, #vptest, #vptestmb, #vptestmd, #vptestmq, #vptestmw, #vptestnmb, #vptestnmd, #vptestnmq, #vptestnmw, #vpunpckhbw, #vpunpckhdq, #vpunpckhqdq, #vpunpckhwd, #vpunpcklbw, #vpunpckldq, #vpunpcklqdq, #vpunpcklwd, #vpxor, #vpxord, #vpxorq, #vrangepd, #vrangeps, #vrangesd, #vrangess, #vrcp14pd, #vrcp14ps, #vrcp14sd, #vrcp14ss, #vrcp28pd, #vrcp28ps, #vrcp28sd, #vrcp28ss, #vrcpps, #vrcpss, #vreducepd, #vreduceps, #vreducesd, #vreducess, #vrndscalepd, #vrndscaleps, #vrndscalesd, #vrndscaless, #vroundpd, #vroundps, #vroundsd, #vroundss, #vrsqrt14pd, #vrsqrt14ps, #vrsqrt14sd, #vrsqrt14ss, #vrsqrt28pd, #vrsqrt28ps, #vrsqrt28sd, #vrsqrt28ss, #vrsqrtps, #vrsqrtss, #vscalefpd, #vscalefps, #vscalefsd, #vscalefss, #vscatterdpd, #vscatterdps, #vscatterpf0dpd, #vscatterpf0dps, #vscatterpf0qpd, #vscatterpf0qps, #vscatterpf1dpd, #vscatterpf1dps, #vscatterpf1qpd, #vscatterpf1qps, #vscatterqpd, #vscatterqps, #vshuff32x4, #vshuff64x2, #vshufi32x4, #vshufi64x2, #vshufpd, #vshufps, #vsqrtpd, #vsqrtps, #vsqrtsd, #vsqrtss, #vstmxcsr, #vsubpd, #vsubps, #vsubsd, #vsubss, #vtestpd, #vtestps, #vucomisd, #vucomiss, #vunpckhpd, #vunpckhps, #vunpcklpd, #vunpcklps, #vxorpd, #vxorps, #vzeroall, #vzeroupper, #xadd, #xchg, #xgetbv, #xlatb, #xor, #xorpd, #xorps

Constructor Details

#initialize(check_performance: false) {|_self| ... } ⇒ Fisk

params:

:check_performance: Raise a SuboptimalPerformance error on write if suboptimal
                    instructions are detected.

Yields:

  • (_self)

Yield Parameters:

  • _self (Fisk)

    the object that the method was called on



537
538
539
540
541
542
543
544
545
# File 'lib/fisk.rb', line 537

def initialize check_performance: false
  @instructions = []
  @labels = {}
  @check_performance = check_performance
  @performance_warnings = []
  # A set of temp registers recorded as we see them (not at allocation time)
  @temp_registers = Set.new
  yield self if block_given?
end

Instance Method Details

#absolute(val) ⇒ Object

Creates an “absolute” location. Use this for JUMP instructions where you know the absolute location but want a relative location calculated later.

For example:

fisk.jmp fisk.absolute(0xCAFE)

The emitted JMP instruction will use a calculated relative address (this is because x64 doesn’t have a jump to absolute position).



760
761
762
# File 'lib/fisk.rb', line 760

def absolute val
  AbsoluteLocation.new val
end

#asm(buf = StringIO.new(''.b), metadata: {}, &block) ⇒ Object

Instance eval’s a given block and writes encoded instructions to buf. For example:

fisk = Fisk.new
fisk.asm do
  mov r9, imm64(32)
end


776
777
778
779
780
# File 'lib/fisk.rb', line 776

def asm buf = StringIO.new(''.b), metadata: {}, &block
  instance_eval(&block)
  write_to buf, metadata: 
  buf
end

#assign_registers(list, local: false) ⇒ Object

Assign registers to any temporary registers. Only registers in list will be used when selecting register assignments



655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
# File 'lib/fisk.rb', line 655

def assign_registers list, local: false
  temp_registers = @temp_registers

  # This mutates the temp registers, setting their end_point based on
  # the CFG
  self.cfg unless local

  temp_registers.each do |reg|
    unless reg.end_point
      raise Errors::UnreleasedRegisterError, "Register #{reg.name} hasn't been released"
    end
  end

  temp_registers = temp_registers.sort_by(&:start_point)

  active         = []
  free_registers = list.reverse
  register_count = list.length

  temp_registers.each do |temp_reg|
    # expire old intervals
    active, dead = active.sort_by(&:end_point).partition do |j|
      j.end_point >= temp_reg.start_point
    end

    # Add unused registers back to the free register list
    dead.each { |tr| free_registers << tr.register }

    if active.length == register_count
      raise NotImplementedError, "Register spilled"
    end

    temp_reg.register = free_registers.pop
    active << temp_reg
  end
end

#basic_blocksObject

Return a list of basic blocks for the instructions



567
568
569
# File 'lib/fisk.rb', line 567

def basic_blocks
  cfg.blocks
end

#cfgObject

Return a cfg for these instructions. The CFG includes connected basic blocks as well as any temporary registers



573
574
575
# File 'lib/fisk.rb', line 573

def cfg
  CFG.build @instructions
end

#comment(message) ⇒ Object

Insert a comment at the current position in the instructions.



634
635
636
637
# File 'lib/fisk.rb', line 634

def comment message
  @instructions << Comment.new(message)
  self
end

#gen_with_insn(insns, params) ⇒ Object

If the performance check is enabled, warnings are added to @performance_warnings.



844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
# File 'lib/fisk.rb', line 844

def gen_with_insn insns, params
  forms = insns.forms.find_all do |insn|
    if insn.operands.length == params.length
      params.zip(insn.operands).all? { |want_op, have_op|
        want_op.works?(have_op)
      }
    else
      false
    end
  end

  if forms.length == 0
    valid_forms = insns.forms.map { |form|
      "    #{insns.name} #{form.operands.map(&:type).join(", ")}"
    }.join "\n"
    msg = <<~eostr
    Couldn't find instruction #{insns.name} #{params.map(&:type).join(", ")}
    Valid forms:
    #{valid_forms}
    eostr
    raise Errors::InvalidInstructionError, msg
  end

  form = forms.first

  insn = nil

  params.each do |param|
    if param.unresolved?
      if insns.name =~ /^J/ # I hope all jump instructions start with J!
        insn = UnresolvedJumpInstruction.new(insns, form, params.first)
      else
        # If it's not a jump instruction, assume unresolved RIP relative 😬
        insn = UnresolvedRIPInstruction.new(insns, form, params)
      end
    end

    if param.absolute_location? && insns.name =~ /^(?:J|CALL)/
      insn = AbsoluteJumpInstruction.new(insns, form, params.first)
    end

    if param.temp_register?
      if param.end_point
        raise Errors::UseAfterInvalidationError, "Register #{param.name} used after release"
      end
      @temp_registers << param

      param.start_point ||= @instructions.length
    end
  end

  if insn.nil?
    insn = Instruction.new(insns, form, params)

    if @check_performance
      warning = insns.check_performance(params)
      @performance_warnings << warning if warning
    end
  end

  @instructions << insn

  self
end

#imm(val) ⇒ Object

Create a signed immediate value of the right width



704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
# File 'lib/fisk.rb', line 704

def imm val
  val = val.to_i

  if val >= -0x7F - 1 && val <= 0x7F
    imm8 val
  elsif val >=  -0x7FFF - 1 && val <= 0x7FFF
    imm16 val
  elsif val >=  -0x7FFFFFFF - 1 && val <= 0x7FFFFFFF
    imm32 val
  elsif val >=  -0x7FFFFFFFFFFFFFFF - 1 && val <= 0x7FFFFFFFFFFFFFFF
    imm64 val
  else
    raise ArgumentError, "#{val} is larger than a 64 bit int"
  end
end

#label(name) ⇒ Object

Create a label to be used with jump instructions. For example:

fisk.jmp(fisk.label(:foo))
fisk.int(lit(3))
fisk.put_label(:foo)


583
584
585
# File 'lib/fisk.rb', line 583

def label name
  UnknownLabel.new(name)
end

#lazy(&block) ⇒ Object

Record a block that will be called during instruction encoding. The block will be yielded the current position of the buffer.

For example:

patch_position = nil

fisk.nop
fisk.lazy { |pos| patch_location = pos }
fisk.jmp(fisk.label(:foo))
fisk.lazy { |_|
  fisk.mov(fisk.r8, fisk.imm64(patch_location))
}
fisk.write_to(buf)

The first lazy block will be yielded the position of the buffer immediately after encoding the nop instruction and before encoding the jmp instruction. The second lazy block will be yielded to after the jmp instruction has been encoded. This gives you a chance to write the buffer position from certain points in to your assembly



617
618
619
620
# File 'lib/fisk.rb', line 617

def lazy &block
  @instructions << Lazy.new(block)
  self
end

#lit(val) ⇒ Object



764
765
766
# File 'lib/fisk.rb', line 764

def lit val
  Lit.new val
end

#m(x, displacement = 0) ⇒ Object



279
280
281
# File 'lib/fisk.rb', line 279

def m x, displacement = 0
  M.new x, displacement
end

#moffs64(val) ⇒ Object



699
700
701
# File 'lib/fisk.rb', line 699

def moffs64 val
  MOffs64.new val
end

#put_label(name) ⇒ Object Also known as: make_label

Insert a label named name at the current position in the instructions.



623
624
625
626
627
628
629
630
# File 'lib/fisk.rb', line 623

def put_label name
  if @labels.key? name
    raise Errors::LabelAlreadyDefined, "Label `#{name}` is already defined"
  end
  @labels[name] = nil
  @instructions << Label.new(name)
  self
end

#register(name = "temp") ⇒ Object

Allocate and return a new register. These registers will be replaced with real registers when assign_registers is called.



641
642
643
# File 'lib/fisk.rb', line 641

def register name = "temp"
  Registers::Temp.new name, "r64"
end

#rel32(val) ⇒ Object



743
744
745
# File 'lib/fisk.rb', line 743

def rel32 val
  Rel32.new val
end

#rel8(val) ⇒ Object



739
740
741
# File 'lib/fisk.rb', line 739

def rel8 val
  Rel8.new val
end

#release_all_registersObject

Releases all registers that haven’t already been released



559
560
561
562
563
564
# File 'lib/fisk.rb', line 559

def release_all_registers
  @temp_registers.each do |reg|
    next if reg.end_point
    release_register reg
  end
end

#release_register(reg) ⇒ Object

Mark a temporary register as “done being used” at this point in the instructions. Using the register after passing the register to this method results in undefined behavior.



550
551
552
553
554
555
556
# File 'lib/fisk.rb', line 550

def release_register reg
  if reg.end_point
    raise Errors::AlreadyReleasedError, "register #{reg.name} already released at #{reg.end_point}"
  end

  reg.end_point = (@instructions.length - 1)
end

#rip(displacement = 0) ⇒ Object



275
276
277
# File 'lib/fisk.rb', line 275

def rip displacement = 0
  Registers::Rip.new(displacement)
end

#to_binary(metadata: {}) ⇒ Object

Encodes all instructions and returns a binary string with the encoded instructions.



784
785
786
787
788
# File 'lib/fisk.rb', line 784

def to_binary(metadata: {})
  io = StringIO.new ''.b
  write_to io, metadata: 
  io.string
end

#uimm(val) ⇒ Object

Create an unsigned immediate value of the right width



721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
# File 'lib/fisk.rb', line 721

def uimm val
  val = val.to_i

  if val < 0
    raise ArgumentError, "#{val} is negative"
  elsif val <= 0xFF
    imm8 val
  elsif val <= 0xFFFF
    imm16 val
  elsif val <= 0xFFFFFFFF
    imm32 val
  elsif val <= 0xFFFFFFFFFFFFFFFF
    imm64 val
  else
    raise ArgumentError, "#{val} is too large for a 64 bit int"
  end
end

#with_register(name = "temp") {|reg| ... } ⇒ Object

Allocate a register and yield it to the block. The register will be automatically released after the block is finished.

Yields:

  • (reg)


647
648
649
650
651
# File 'lib/fisk.rb', line 647

def with_register name = "temp"
  reg = register(name)
  yield reg
  release_register reg
end

#write_to(buffer, metadata: {}) ⇒ Object

Encode all instructions and write them to buffer. buffer should be an IO object. If the performance check is enabled, a runtime error is raised if suboptimal instructions are found.



796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
# File 'lib/fisk.rb', line 796

def write_to buffer, metadata: {}
  labels = {}
  comments = {}
  unresolved = []
  instructions = @instructions.dup
  backup = @instructions.dup
  @instructions.clear

  while insn = instructions.shift
    if insn.label?
      labels[insn.name] = buffer.pos
    elsif insn.comment?
      comments.update({buffer.pos => insn.message}) { |_, *lines| lines.join($/) }
    elsif insn.lazy?
      write_instruction insn, buffer, labels
      instructions.unshift(*@instructions)
      @instructions.clear
    else
      if insn.retry?
        retry_req = RetryRequest.new(insn, buffer.pos)
        unresolved << retry_req
      end

      write_instruction insn, buffer, labels
    end
  end

  [:comments] = comments
  @instructions = backup

  if !unresolved.empty?
    pos = buffer.pos
    unresolved.each do |req|
      insn = req.insn
      buffer.seek req.io_seek_pos, IO::SEEK_SET
      write_instruction insn, buffer, labels
    end
    buffer.seek pos, IO::SEEK_SET
  end

  if !@performance_warnings.empty?
    raise Errors::SuboptimalPerformance.new(@performance_warnings)
  end

  buffer
end