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.2"

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



541
542
543
544
545
546
547
548
549
# File 'lib/fisk.rb', line 541

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).



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

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


780
781
782
783
784
# File 'lib/fisk.rb', line 780

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



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
691
692
693
694
# File 'lib/fisk.rb', line 659

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



571
572
573
# File 'lib/fisk.rb', line 571

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



577
578
579
# File 'lib/fisk.rb', line 577

def cfg
  CFG.build @instructions
end

#comment(message) ⇒ Object

Insert a comment at the current position in the instructions.



638
639
640
641
# File 'lib/fisk.rb', line 638

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.



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
908
909
910
911
# File 'lib/fisk.rb', line 848

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 = "    Couldn't find instruction \#{insns.name} \#{params.map(&:type).join(\", \")}\n    Valid forms:\n    \#{valid_forms}\n    eostr\n    raise Errors::InvalidInstructionError, msg\n  end\n\n  form = forms.first\n\n  insn = nil\n\n  params.each do |param|\n    if param.unresolved?\n      if insns.name =~ /^J/ # I hope all jump instructions start with J!\n        insn = UnresolvedJumpInstruction.new(insns, form, params.first)\n      else\n        # If it's not a jump instruction, assume unresolved RIP relative \u{1F62C}\n        insn = UnresolvedRIPInstruction.new(insns, form, params)\n      end\n    end\n\n    if param.absolute_location? && insns.name =~ /^(?:J|CALL)/\n      insn = AbsoluteJumpInstruction.new(insns, form, params.first)\n    end\n\n    if param.temp_register?\n      if param.end_point\n        raise Errors::UseAfterInvalidationError, \"Register \#{param.name} used after release\"\n      end\n      @temp_registers << param\n\n      param.start_point ||= @instructions.length\n    end\n  end\n\n  if insn.nil?\n    insn = Instruction.new(insns, form, params)\n\n    if @check_performance\n      warning = insns.check_performance(params)\n      @performance_warnings << warning if warning\n    end\n  end\n\n  @instructions << insn\n\n  self\nend\n"

#imm(val) ⇒ Object

Create a signed immediate value of the right width



708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
# File 'lib/fisk.rb', line 708

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)


587
588
589
# File 'lib/fisk.rb', line 587

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



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

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

#lit(val) ⇒ Object



768
769
770
# File 'lib/fisk.rb', line 768

def lit val
  Lit.new val
end

#m(x, displacement = 0) ⇒ Object



283
284
285
# File 'lib/fisk.rb', line 283

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

#moffs64(val) ⇒ Object



703
704
705
# File 'lib/fisk.rb', line 703

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.



627
628
629
630
631
632
633
634
# File 'lib/fisk.rb', line 627

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.



645
646
647
# File 'lib/fisk.rb', line 645

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

#rel32(val) ⇒ Object



747
748
749
# File 'lib/fisk.rb', line 747

def rel32 val
  Rel32.new val
end

#rel8(val) ⇒ Object



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

def rel8 val
  Rel8.new val
end

#release_all_registersObject

Releases all registers that haven’t already been released



563
564
565
566
567
568
# File 'lib/fisk.rb', line 563

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.



554
555
556
557
558
559
560
# File 'lib/fisk.rb', line 554

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



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

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.



788
789
790
791
792
# File 'lib/fisk.rb', line 788

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



725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
# File 'lib/fisk.rb', line 725

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)


651
652
653
654
655
# File 'lib/fisk.rb', line 651

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.



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
842
843
844
845
# File 'lib/fisk.rb', line 800

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