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, 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.0"

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 {|_self| ... } ⇒ Fisk

Returns a new instance of Fisk.

Yields:

  • (_self)

Yield Parameters:

  • _self (Fisk)

    the object that the method was called on



511
512
513
514
515
516
517
# File 'lib/fisk.rb', line 511

def initialize
  @instructions = []
  @labels = {}
  # 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).



732
733
734
# File 'lib/fisk.rb', line 732

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


748
749
750
751
752
# File 'lib/fisk.rb', line 748

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



627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
# File 'lib/fisk.rb', line 627

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



539
540
541
# File 'lib/fisk.rb', line 539

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



545
546
547
# File 'lib/fisk.rb', line 545

def cfg
  CFG.build @instructions
end

#comment(message) ⇒ Object

Insert a comment at the current position in the instructions.



606
607
608
609
# File 'lib/fisk.rb', line 606

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

#gen_with_insn(insns, params) ⇒ Object



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
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
# File 'lib/fisk.rb', line 809

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 NotImplementedError, 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

  insn ||= Instruction.new(insns, form, params)

  @instructions << insn

  self
end

#imm(val) ⇒ Object

Create a signed immediate value of the right width



676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
# File 'lib/fisk.rb', line 676

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)


555
556
557
# File 'lib/fisk.rb', line 555

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



589
590
591
592
# File 'lib/fisk.rb', line 589

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

#lit(val) ⇒ Object



736
737
738
# File 'lib/fisk.rb', line 736

def lit val
  Lit.new val
end

#m(x, displacement = 0) ⇒ Object



257
258
259
# File 'lib/fisk.rb', line 257

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

#moffs64(val) ⇒ Object



671
672
673
# File 'lib/fisk.rb', line 671

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.



595
596
597
598
599
600
601
602
# File 'lib/fisk.rb', line 595

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.



613
614
615
# File 'lib/fisk.rb', line 613

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

#rel32(val) ⇒ Object



715
716
717
# File 'lib/fisk.rb', line 715

def rel32 val
  Rel32.new val
end

#rel8(val) ⇒ Object



711
712
713
# File 'lib/fisk.rb', line 711

def rel8 val
  Rel8.new val
end

#release_all_registersObject

Releases all registers that haven’t already been released



531
532
533
534
535
536
# File 'lib/fisk.rb', line 531

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.



522
523
524
525
526
527
528
# File 'lib/fisk.rb', line 522

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



253
254
255
# File 'lib/fisk.rb', line 253

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.



756
757
758
759
760
# File 'lib/fisk.rb', line 756

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



693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
# File 'lib/fisk.rb', line 693

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)


619
620
621
622
623
# File 'lib/fisk.rb', line 619

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.



766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
# File 'lib/fisk.rb', line 766

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?
      insn.encode 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

  return if unresolved.empty?

  pos = buffer.pos
  unresolved.each do |req|
    insn = req.insn
    buffer.seek req.io_seek_pos, IO::SEEK_SET
    insn.encode buffer, labels
  end
  buffer.seek pos, IO::SEEK_SET

  buffer
end