├── .gitignore
├── .gitmodules
├── .idea
├── .name
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── dictionaries
│ └── stefan.xml
├── highlighting.xml
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── libraries
│ ├── SBT__com_assembla_scala_incubator_graph_core_2_11_1_9_4_jar.xml
│ ├── SBT__com_assembla_scala_incubator_graph_dot_2_11_1_10_0_jar.xml
│ ├── SBT__com_github_nscala_time_nscala_time_2_11_2_2_0_jar.xml
│ ├── SBT__com_github_scopt_scopt_2_11_3_3_0_jar.xml
│ ├── SBT__com_github_tototoshi_scala_csv_2_11_1_2_2_jar.xml
│ ├── SBT__com_jsuereth_scala_arm_2_11_1_4_jar.xml
│ ├── SBT__com_thoughtworks_paranamer_paranamer_2_8_jar.xml
│ ├── SBT__commons_io_commons_io_2_3_jar.xml
│ ├── SBT__joda_time_joda_time_2_8_2_jar.xml
│ ├── SBT__org_joda_joda_convert_1_7_jar.xml
│ ├── SBT__org_json4s_json4s_ast_2_11_3_3_0_RC6_jar.xml
│ ├── SBT__org_json4s_json4s_core_2_11_3_3_0_RC6_jar.xml
│ ├── SBT__org_json4s_json4s_ext_2_11_3_3_0_RC6_jar.xml
│ ├── SBT__org_json4s_json4s_native_2_11_3_3_0_RC6_jar.xml
│ ├── SBT__org_json4s_json4s_scalap_2_11_3_3_0_RC6_jar.xml
│ ├── SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml
│ ├── SBT__org_scala_lang_modules_scala_xml_2_11_1_0_5_jar.xml
│ ├── SBT__org_scala_lang_plugins_scala_continuations_library_2_11_1_0_1_jar.xml
│ ├── SBT__org_scala_lang_scala_library_2_11_7_jar.xml
│ ├── SBT__org_scala_lang_scala_reflect_2_11_7_jar.xml
│ ├── SBT__org_scalatest_scalatest_2_11_2_1_6_jar.xml
│ └── SBT__pl_project13_scala_rainbow_2_11_0_2_jar.xml
├── misc.xml
├── modules.xml
├── modules
│ ├── strata-build.iml
│ └── strata.iml
├── sbt.xml
├── scala_compiler.xml
└── vcs.xml
├── LICENSE.md
├── Makefile
├── README.md
├── build.sbt
├── resources
├── conf-files
│ ├── formal.conf
│ └── search.conf
├── empty.s
├── function-templates
│ ├── move_gp16_gp16_gp32.s
│ ├── move_gp16_gp8_gp8.s
│ ├── move_gp32_gp16_gp16.s
│ ├── move_gp32_gp32_gp64.s
│ ├── move_gp64_gp32_gp32.s
│ ├── move_gp64_gp64_xmm.s
│ ├── move_gp8_gp8_gp16.s
│ ├── move_xmm_combine_2ways.s
│ ├── move_xmm_combine_4way.s
│ ├── move_xmm_gp32_gp32_gp32_gp32.s
│ ├── move_xmm_gp64_gp64.s
│ ├── move_xmm_split_2ways.s
│ ├── move_xmm_split_4way.s
│ ├── move_xmm_xmm_ymm.s
│ └── move_ymm_xmm_xmm.s
├── imm8_baseset
│ ├── adcb_r8_rh.s
│ ├── adcb_rh_r8.s
│ ├── adcb_rh_rh.s
│ ├── addb_r8_r8.s
│ ├── addb_r8_rh.s
│ ├── addb_rh_r8.s
│ ├── addb_rh_rh.s
│ ├── addl_r32_r32.s
│ ├── addpd_xmm_xmm.s
│ ├── addps_xmm_xmm.s
│ ├── addq_r64_r64.s
│ ├── addsd_xmm_xmm.s
│ ├── addss_xmm_xmm.s
│ ├── addsubpd_xmm_xmm.s
│ ├── addsubps_xmm_xmm.s
│ ├── addw_r16_r16.s
│ ├── andb_r8_r8.s
│ ├── andb_r8_rh.s
│ ├── andb_rh_r8.s
│ ├── andb_rh_rh.s
│ ├── andl_r32_r32.s
│ ├── andnl_r32_r32_r32.s
│ ├── andnpd_xmm_xmm.s
│ ├── andnps_xmm_xmm.s
│ ├── andnq_r64_r64_r64.s
│ ├── andpd_xmm_xmm.s
│ ├── andps_xmm_xmm.s
│ ├── andq_r64_r64.s
│ ├── andw_r16_r16.s
│ ├── blsmskl_r32_r32.s
│ ├── blsrl_r32_r32.s
│ ├── bswap_r32.s
│ ├── bswap_r64.s
│ ├── btq_r64_r64.s
│ ├── cbtw.s
│ ├── clc.s
│ ├── cltd.s
│ ├── cltq.s
│ ├── cmc.s
│ ├── cmovael_r32_r32.s
│ ├── cmovaeq_r64_r64.s
│ ├── cmovaew_r16_r16.s
│ ├── cmoval_r32_r32.s
│ ├── cmovaq_r64_r64.s
│ ├── cmovaw_r16_r16.s
│ ├── cmovbel_r32_r32.s
│ ├── cmovbeq_r64_r64.s
│ ├── cmovbew_r16_r16.s
│ ├── cmovbl_r32_r32.s
│ ├── cmovbq_r64_r64.s
│ ├── cmovbw_r16_r16.s
│ ├── cmovcl_r32_r32.s
│ ├── cmovcq_r64_r64.s
│ ├── cmovcw_r16_r16.s
│ ├── cmovel_r32_r32.s
│ ├── cmovew_r16_r16.s
│ ├── cmovgel_r32_r32.s
│ ├── cmovgeq_r64_r64.s
│ ├── cmovgew_r16_r16.s
│ ├── cmovgl_r32_r32.s
│ ├── cmovgq_r64_r64.s
│ ├── cmovgw_r16_r16.s
│ ├── cmovlel_r32_r32.s
│ ├── cmovleq_r64_r64.s
│ ├── cmovlew_r16_r16.s
│ ├── cmovll_r32_r32.s
│ ├── cmovlq_r64_r64.s
│ ├── cmovlw_r16_r16.s
│ ├── cmovnael_r32_r32.s
│ ├── cmovnaeq_r64_r64.s
│ ├── cmovnaew_r16_r16.s
│ ├── cmovnal_r32_r32.s
│ ├── cmovnaq_r64_r64.s
│ ├── cmovnaw_r16_r16.s
│ ├── cmovnbel_r32_r32.s
│ ├── cmovnbeq_r64_r64.s
│ ├── cmovnbew_r16_r16.s
│ ├── cmovnbl_r32_r32.s
│ ├── cmovnbq_r64_r64.s
│ ├── cmovnbw_r16_r16.s
│ ├── cmovncl_r32_r32.s
│ ├── cmovncq_r64_r64.s
│ ├── cmovncw_r16_r16.s
│ ├── cmovnel_r32_r32.s
│ ├── cmovneq_r64_r64.s
│ ├── cmovnew_r16_r16.s
│ ├── cmovngel_r32_r32.s
│ ├── cmovngeq_r64_r64.s
│ ├── cmovngew_r16_r16.s
│ ├── cmovngl_r32_r32.s
│ ├── cmovngq_r64_r64.s
│ ├── cmovngw_r16_r16.s
│ ├── cmovnlel_r32_r32.s
│ ├── cmovnleq_r64_r64.s
│ ├── cmovnlew_r16_r16.s
│ ├── cmovnll_r32_r32.s
│ ├── cmovnlq_r64_r64.s
│ ├── cmovnlw_r16_r16.s
│ ├── cmovnol_r32_r32.s
│ ├── cmovnoq_r64_r64.s
│ ├── cmovnow_r16_r16.s
│ ├── cmovnpl_r32_r32.s
│ ├── cmovnpq_r64_r64.s
│ ├── cmovnpw_r16_r16.s
│ ├── cmovnsl_r32_r32.s
│ ├── cmovnsq_r64_r64.s
│ ├── cmovnsw_r16_r16.s
│ ├── cmovnzl_r32_r32.s
│ ├── cmovnzq_r64_r64.s
│ ├── cmovnzw_r16_r16.s
│ ├── cmovol_r32_r32.s
│ ├── cmovoq_r64_r64.s
│ ├── cmovow_r16_r16.s
│ ├── cmovpel_r32_r32.s
│ ├── cmovpeq_r64_r64.s
│ ├── cmovpew_r16_r16.s
│ ├── cmovpl_r32_r32.s
│ ├── cmovpol_r32_r32.s
│ ├── cmovpoq_r64_r64.s
│ ├── cmovpow_r16_r16.s
│ ├── cmovpq_r64_r64.s
│ ├── cmovpw_r16_r16.s
│ ├── cmovsl_r32_r32.s
│ ├── cmovsq_r64_r64.s
│ ├── cmovsw_r16_r16.s
│ ├── cmovzl_r32_r32.s
│ ├── cmovzq_r64_r64.s
│ ├── cmovzw_r16_r16.s
│ ├── cmpb_r8_r8.s
│ ├── cmpb_r8_rh.s
│ ├── cmpb_rh_r8.s
│ ├── cmpb_rh_rh.s
│ ├── cmpl_r32_r32.s
│ ├── cmpq_r64_r64.s
│ ├── cmpw_r16_r16.s
│ ├── cmpxchgb_r8_r8.s
│ ├── cmpxchgb_r8_rh.s
│ ├── cmpxchgb_rh_r8.s
│ ├── cmpxchgb_rh_rh.s
│ ├── cmpxchgw_r16_r16.s
│ ├── cqto.s
│ ├── cvtdq2pd_xmm_xmm.s
│ ├── cvtdq2ps_xmm_xmm.s
│ ├── cvtpd2dq_xmm_xmm.s
│ ├── cvtpd2ps_xmm_xmm.s
│ ├── cvtps2dq_xmm_xmm.s
│ ├── cvtps2pd_xmm_xmm.s
│ ├── cvtsd2sil_r32_xmm.s
│ ├── cvtsd2ss_xmm_xmm.s
│ ├── cvtsi2sdl_xmm_r32.s
│ ├── cvtsi2ssl_xmm_r32.s
│ ├── cvtss2sd_xmm_xmm.s
│ ├── cvtss2sil_r32_xmm.s
│ ├── cvttpd2dq_xmm_xmm.s
│ ├── cvttsd2sil_r32_xmm.s
│ ├── cvttss2sil_r32_xmm.s
│ ├── cwtd.s
│ ├── cwtl.s
│ ├── decb_r8.s
│ ├── decb_rh.s
│ ├── decl_r32.s
│ ├── decq_r64.s
│ ├── decw_r16.s
│ ├── divpd_xmm_xmm.s
│ ├── divps_xmm_xmm.s
│ ├── divsd_xmm_xmm.s
│ ├── divss_xmm_xmm.s
│ ├── haddpd_xmm_xmm.s
│ ├── haddps_xmm_xmm.s
│ ├── hsubpd_xmm_xmm.s
│ ├── hsubps_xmm_xmm.s
│ ├── incb_r8.s
│ ├── incb_rh.s
│ ├── incl_r32.s
│ ├── incq_r64.s
│ ├── incw_r16.s
│ ├── maxpd_xmm_xmm.s
│ ├── maxps_xmm_xmm.s
│ ├── maxsd_xmm_xmm.s
│ ├── maxss_xmm_xmm.s
│ ├── minpd_xmm_xmm.s
│ ├── minps_xmm_xmm.s
│ ├── minsd_xmm_xmm.s
│ ├── minss_xmm_xmm.s
│ ├── movapd_xmm_xmm.s
│ ├── movaps_xmm_xmm.s
│ ├── movb_r8_r8.s
│ ├── movb_rh_rh.s
│ ├── movd_r32_xmm.s
│ ├── movd_xmm_r32.s
│ ├── movddup_xmm_xmm.s
│ ├── movdqa_xmm_xmm.s
│ ├── movdqu_xmm_xmm.s
│ ├── movhlps_xmm_xmm.s
│ ├── movl_r32_r32.s
│ ├── movlhps_xmm_xmm.s
│ ├── movmskpd_r32_xmm.s
│ ├── movmskpd_r64_xmm.s
│ ├── movq_r64_xmm.s
│ ├── movq_xmm_r64.s
│ ├── movq_xmm_xmm.s
│ ├── movsbl_r32_r8.s
│ ├── movsbl_r32_rh.s
│ ├── movsbw_r16_r8.s
│ ├── movsbw_r16_rh.s
│ ├── movsd_xmm_xmm.s
│ ├── movshdup_xmm_xmm.s
│ ├── movsldup_xmm_xmm.s
│ ├── movss_xmm_xmm.s
│ ├── movswl_r32_r16.s
│ ├── movupd_xmm_xmm.s
│ ├── movups_xmm_xmm.s
│ ├── movw_r16_r16.s
│ ├── movzbl_r32_r8.s
│ ├── movzbl_r32_rh.s
│ ├── movzbq_r64_r8.s
│ ├── movzbw_r16_r8.s
│ ├── movzbw_r16_rh.s
│ ├── movzwl_r32_r16.s
│ ├── movzwq_r64_r16.s
│ ├── mulpd_xmm_xmm.s
│ ├── mulps_xmm_xmm.s
│ ├── mulsd_xmm_xmm.s
│ ├── mulss_xmm_xmm.s
│ ├── negb_r8.s
│ ├── negb_rh.s
│ ├── negl_r32.s
│ ├── negq_r64.s
│ ├── negw_r16.s
│ ├── nop.s
│ ├── nopl_r32.s
│ ├── nopw_r16.s
│ ├── notb_r8.s
│ ├── notb_rh.s
│ ├── notl_r32.s
│ ├── notq_r64.s
│ ├── notw_r16.s
│ ├── orb_r8_r8.s
│ ├── orb_r8_rh.s
│ ├── orb_rh_r8.s
│ ├── orb_rh_rh.s
│ ├── orl_r32_r32.s
│ ├── orpd_xmm_xmm.s
│ ├── orps_xmm_xmm.s
│ ├── orw_r16_r16.s
│ ├── paddd_xmm_xmm.s
│ ├── paddq_xmm_xmm.s
│ ├── pand_xmm_xmm.s
│ ├── pandn_xmm_xmm.s
│ ├── phaddd_xmm_xmm.s
│ ├── phsubd_xmm_xmm.s
│ ├── pmovsxbd_xmm_xmm.s
│ ├── pmovsxbq_xmm_xmm.s
│ ├── pmovsxdq_xmm_xmm.s
│ ├── pmovsxwd_xmm_xmm.s
│ ├── pmovsxwq_xmm_xmm.s
│ ├── pmovzxbd_xmm_xmm.s
│ ├── pmovzxbq_xmm_xmm.s
│ ├── pmovzxdq_xmm_xmm.s
│ ├── pmovzxwd_xmm_xmm.s
│ ├── pmovzxwq_xmm_xmm.s
│ ├── popcntl_r32_r32.s
│ ├── popcntw_r16_r16.s
│ ├── por_xmm_xmm.s
│ ├── psubd_xmm_xmm.s
│ ├── psubq_xmm_xmm.s
│ ├── punpckhdq_xmm_xmm.s
│ ├── punpckhqdq_xmm_xmm.s
│ ├── punpckldq_xmm_xmm.s
│ ├── punpcklqdq_xmm_xmm.s
│ ├── pxor_xmm_xmm.s
│ ├── rclb_r8_one.s
│ ├── rclb_rh_one.s
│ ├── rcll_r32_one.s
│ ├── rclq_r64_one.s
│ ├── rclw_r16_one.s
│ ├── rcpps_xmm_xmm.s
│ ├── rcpss_xmm_xmm.s
│ ├── rolb_r8_one.s
│ ├── rolb_rh_one.s
│ ├── roll_r32_one.s
│ ├── rolq_r64_one.s
│ ├── rolw_r16_one.s
│ ├── rorb_r8_one.s
│ ├── rorb_rh_one.s
│ ├── rsqrtps_xmm_xmm.s
│ ├── rsqrtss_xmm_xmm.s
│ ├── salb_r8_one.s
│ ├── salb_rh_one.s
│ ├── sall_r32_one.s
│ ├── salq_r64_one.s
│ ├── salw_r16_one.s
│ ├── sarb_r8_one.s
│ ├── sarb_rh_one.s
│ ├── sarl_r32_one.s
│ ├── sarq_r64_one.s
│ ├── sarw_r16_one.s
│ ├── sarxq_r64_r64_r64.s
│ ├── sbbb_r8_r8.s
│ ├── sbbb_r8_rh.s
│ ├── sbbb_rh_r8.s
│ ├── sbbb_rh_rh.s
│ ├── sbbl_r32_r32.s
│ ├── sbbq_r64_r64.s
│ ├── sbbw_r16_r16.s
│ ├── seta_r8.s
│ ├── seta_rh.s
│ ├── setae_r8.s
│ ├── setae_rh.s
│ ├── setb_r8.s
│ ├── setb_rh.s
│ ├── setbe_r8.s
│ ├── setbe_rh.s
│ ├── setc_r8.s
│ ├── setc_rh.s
│ ├── sete_r8.s
│ ├── sete_rh.s
│ ├── setg_r8.s
│ ├── setg_rh.s
│ ├── setge_r8.s
│ ├── setge_rh.s
│ ├── setl_r8.s
│ ├── setl_rh.s
│ ├── setle_r8.s
│ ├── setle_rh.s
│ ├── setna_r8.s
│ ├── setna_rh.s
│ ├── setnae_r8.s
│ ├── setnae_rh.s
│ ├── setnb_r8.s
│ ├── setnb_rh.s
│ ├── setnbe_r8.s
│ ├── setnbe_rh.s
│ ├── setnc_r8.s
│ ├── setnc_rh.s
│ ├── setne_r8.s
│ ├── setne_rh.s
│ ├── setng_r8.s
│ ├── setng_rh.s
│ ├── setnge_r8.s
│ ├── setnge_rh.s
│ ├── setnl_r8.s
│ ├── setnl_rh.s
│ ├── setnle_r8.s
│ ├── setnle_rh.s
│ ├── setno_r8.s
│ ├── setno_rh.s
│ ├── setnp_r8.s
│ ├── setnp_rh.s
│ ├── setns_r8.s
│ ├── setns_rh.s
│ ├── setnz_r8.s
│ ├── setnz_rh.s
│ ├── seto_r8.s
│ ├── seto_rh.s
│ ├── setp_r8.s
│ ├── setp_rh.s
│ ├── setpe_r8.s
│ ├── setpe_rh.s
│ ├── setpo_r8.s
│ ├── setpo_rh.s
│ ├── sets_r8.s
│ ├── sets_rh.s
│ ├── setz_r8.s
│ ├── setz_rh.s
│ ├── shlb_r8_one.s
│ ├── shlb_rh_one.s
│ ├── shll_r32_one.s
│ ├── shlq_r64_cl.s
│ ├── shlq_r64_one.s
│ ├── shlw_r16_one.s
│ ├── shlxq_r64_r64_r64.s
│ ├── shrxq_r64_r64_r64.s
│ ├── sqrtpd_xmm_xmm.s
│ ├── sqrtps_xmm_xmm.s
│ ├── sqrtsd_xmm_xmm.s
│ ├── sqrtss_xmm_xmm.s
│ ├── stc.s
│ ├── subb_r8_r8.s
│ ├── subb_r8_rh.s
│ ├── subb_rh_r8.s
│ ├── subb_rh_rh.s
│ ├── subl_r32_r32.s
│ ├── subpd_xmm_xmm.s
│ ├── subps_xmm_xmm.s
│ ├── subq_r64_r64.s
│ ├── subsd_xmm_xmm.s
│ ├── subss_xmm_xmm.s
│ ├── subw_r16_r16.s
│ ├── testb_r8_r8.s
│ ├── testb_r8_rh.s
│ ├── testb_rh_r8.s
│ ├── testb_rh_rh.s
│ ├── testl_r32_r32.s
│ ├── testq_r64_r64.s
│ ├── testw_r16_r16.s
│ ├── tzcntl_r32_r32.s
│ ├── unpckhpd_xmm_xmm.s
│ ├── unpckhps_xmm_xmm.s
│ ├── unpcklpd_xmm_xmm.s
│ ├── unpcklps_xmm_xmm.s
│ ├── vaddpd_xmm_xmm_xmm.s
│ ├── vaddps_xmm_xmm_xmm.s
│ ├── vaddsd_xmm_xmm_xmm.s
│ ├── vaddss_xmm_xmm_xmm.s
│ ├── vaddsubpd_xmm_xmm_xmm.s
│ ├── vaddsubps_xmm_xmm_xmm.s
│ ├── vandnpd_xmm_xmm_xmm.s
│ ├── vandnpd_ymm_ymm_ymm.s
│ ├── vandnps_xmm_xmm_xmm.s
│ ├── vandnps_ymm_ymm_ymm.s
│ ├── vandpd_xmm_xmm_xmm.s
│ ├── vandpd_ymm_ymm_ymm.s
│ ├── vandps_xmm_xmm_xmm.s
│ ├── vandps_ymm_ymm_ymm.s
│ ├── vbroadcastsd_ymm_xmm.s
│ ├── vbroadcastss_xmm_xmm.s
│ ├── vbroadcastss_ymm_xmm.s
│ ├── vcvtdq2pd_xmm_xmm.s
│ ├── vcvtdq2ps_xmm_xmm.s
│ ├── vcvtpd2dqx_xmm_xmm.s
│ ├── vcvtpd2ps_xmm_xmm.s
│ ├── vcvtps2dq_xmm_xmm.s
│ ├── vcvtps2pd_xmm_xmm.s
│ ├── vcvtsd2sil_r32_xmm.s
│ ├── vcvtsd2ss_xmm_xmm_xmm.s
│ ├── vcvtsi2sdl_xmm_xmm_r32.s
│ ├── vcvtsi2ssl_xmm_xmm_r32.s
│ ├── vcvtss2sd_xmm_xmm_xmm.s
│ ├── vcvtss2sil_r32_xmm.s
│ ├── vcvttpd2dq_xmm_xmm.s
│ ├── vcvttps2dq_xmm_xmm.s
│ ├── vcvttsd2sil_r32_xmm.s
│ ├── vcvttss2sil_r32_xmm.s
│ ├── vdivpd_xmm_xmm_xmm.s
│ ├── vdivps_xmm_xmm_xmm.s
│ ├── vdivsd_xmm_xmm_xmm.s
│ ├── vdivss_xmm_xmm_xmm.s
│ ├── vfmadd132pd_xmm_xmm_xmm.s
│ ├── vfmadd132ps_xmm_xmm_xmm.s
│ ├── vfmadd132sd_xmm_xmm_xmm.s
│ ├── vfmadd132ss_xmm_xmm_xmm.s
│ ├── vfmadd213pd_xmm_xmm_xmm.s
│ ├── vfmadd213pd_ymm_ymm_ymm.s
│ ├── vfmadd213ps_xmm_xmm_xmm.s
│ ├── vfmadd213ps_ymm_ymm_ymm.s
│ ├── vfmadd213sd_xmm_xmm_xmm.s
│ ├── vfmadd213ss_xmm_xmm_xmm.s
│ ├── vfmadd231pd_xmm_xmm_xmm.s
│ ├── vfmadd231pd_ymm_ymm_ymm.s
│ ├── vfmadd231ps_xmm_xmm_xmm.s
│ ├── vfmadd231ps_ymm_ymm_ymm.s
│ ├── vfmadd231sd_xmm_xmm_xmm.s
│ ├── vfmadd231ss_xmm_xmm_xmm.s
│ ├── vfmaddsub132pd_xmm_xmm_xmm.s
│ ├── vfmaddsub132ps_xmm_xmm_xmm.s
│ ├── vfmaddsub213pd_xmm_xmm_xmm.s
│ ├── vfmaddsub213ps_xmm_xmm_xmm.s
│ ├── vfmaddsub231pd_xmm_xmm_xmm.s
│ ├── vfmaddsub231ps_xmm_xmm_xmm.s
│ ├── vfmsub132pd_xmm_xmm_xmm.s
│ ├── vfmsub132ps_xmm_xmm_xmm.s
│ ├── vfmsub132sd_xmm_xmm_xmm.s
│ ├── vfmsub132ss_xmm_xmm_xmm.s
│ ├── vfmsub213pd_xmm_xmm_xmm.s
│ ├── vfmsub213pd_ymm_ymm_ymm.s
│ ├── vfmsub213ps_xmm_xmm_xmm.s
│ ├── vfmsub213ps_ymm_ymm_ymm.s
│ ├── vfmsub213sd_xmm_xmm_xmm.s
│ ├── vfmsub213ss_xmm_xmm_xmm.s
│ ├── vfmsub231pd_xmm_xmm_xmm.s
│ ├── vfmsub231pd_ymm_ymm_ymm.s
│ ├── vfmsub231ps_xmm_xmm_xmm.s
│ ├── vfmsub231ps_ymm_ymm_ymm.s
│ ├── vfmsub231sd_xmm_xmm_xmm.s
│ ├── vfmsub231ss_xmm_xmm_xmm.s
│ ├── vfmsubadd132pd_xmm_xmm_xmm.s
│ ├── vfmsubadd132ps_xmm_xmm_xmm.s
│ ├── vfmsubadd213pd_xmm_xmm_xmm.s
│ ├── vfmsubadd213ps_xmm_xmm_xmm.s
│ ├── vfmsubadd231pd_xmm_xmm_xmm.s
│ ├── vfmsubadd231ps_xmm_xmm_xmm.s
│ ├── vfnmadd132pd_xmm_xmm_xmm.s
│ ├── vfnmadd132ps_xmm_xmm_xmm.s
│ ├── vfnmadd132sd_xmm_xmm_xmm.s
│ ├── vfnmadd132ss_xmm_xmm_xmm.s
│ ├── vfnmadd213pd_xmm_xmm_xmm.s
│ ├── vfnmadd213pd_ymm_ymm_ymm.s
│ ├── vfnmadd213ps_xmm_xmm_xmm.s
│ ├── vfnmadd213ps_ymm_ymm_ymm.s
│ ├── vfnmadd213sd_xmm_xmm_xmm.s
│ ├── vfnmadd231pd_xmm_xmm_xmm.s
│ ├── vfnmadd231pd_ymm_ymm_ymm.s
│ ├── vfnmadd231ps_xmm_xmm_xmm.s
│ ├── vfnmadd231ps_ymm_ymm_ymm.s
│ ├── vfnmadd231sd_xmm_xmm_xmm.s
│ ├── vfnmadd231ss_xmm_xmm_xmm.s
│ ├── vfnmsub132pd_xmm_xmm_xmm.s
│ ├── vfnmsub132ps_xmm_xmm_xmm.s
│ ├── vfnmsub132sd_xmm_xmm_xmm.s
│ ├── vfnmsub132ss_xmm_xmm_xmm.s
│ ├── vfnmsub213pd_xmm_xmm_xmm.s
│ ├── vfnmsub213pd_ymm_ymm_ymm.s
│ ├── vfnmsub213ps_xmm_xmm_xmm.s
│ ├── vfnmsub213ps_ymm_ymm_ymm.s
│ ├── vfnmsub213sd_xmm_xmm_xmm.s
│ ├── vfnmsub213ss_xmm_xmm_xmm.s
│ ├── vfnmsub231pd_xmm_xmm_xmm.s
│ ├── vfnmsub231pd_ymm_ymm_ymm.s
│ ├── vfnmsub231ps_xmm_xmm_xmm.s
│ ├── vfnmsub231ps_ymm_ymm_ymm.s
│ ├── vfnmsub231sd_xmm_xmm_xmm.s
│ ├── vfnmsub231ss_xmm_xmm_xmm.s
│ ├── vhaddpd_xmm_xmm_xmm.s
│ ├── vhaddpd_ymm_ymm_ymm.s
│ ├── vhaddps_xmm_xmm_xmm.s
│ ├── vhaddps_ymm_ymm_ymm.s
│ ├── vhsubpd_xmm_xmm_xmm.s
│ ├── vhsubpd_ymm_ymm_ymm.s
│ ├── vhsubps_xmm_xmm_xmm.s
│ ├── vhsubps_ymm_ymm_ymm.s
│ ├── vmaxpd_xmm_xmm_xmm.s
│ ├── vmaxps_xmm_xmm_xmm.s
│ ├── vmaxsd_xmm_xmm_xmm.s
│ ├── vmaxss_xmm_xmm_xmm.s
│ ├── vminpd_xmm_xmm_xmm.s
│ ├── vminps_xmm_xmm_xmm.s
│ ├── vminsd_xmm_xmm_xmm.s
│ ├── vminss_xmm_xmm_xmm.s
│ ├── vmovapd_xmm_xmm.s
│ ├── vmovapd_ymm_ymm.s
│ ├── vmovaps_xmm_xmm.s
│ ├── vmovaps_ymm_ymm.s
│ ├── vmovd_r32_xmm.s
│ ├── vmovd_xmm_r32.s
│ ├── vmovddup_xmm_xmm.s
│ ├── vmovddup_ymm_ymm.s
│ ├── vmovdqa_xmm_xmm.s
│ ├── vmovdqa_ymm_ymm.s
│ ├── vmovdqu_xmm_xmm.s
│ ├── vmovdqu_ymm_ymm.s
│ ├── vmovhlps_xmm_xmm_xmm.s
│ ├── vmovlhps_xmm_xmm_xmm.s
│ ├── vmovmskpd_r32_xmm.s
│ ├── vmovmskpd_r64_xmm.s
│ ├── vmovq_r64_xmm.s
│ ├── vmovq_xmm_r64.s
│ ├── vmovq_xmm_xmm.s
│ ├── vmovsd_xmm_xmm_xmm.s
│ ├── vmovshdup_xmm_xmm.s
│ ├── vmovshdup_ymm_ymm.s
│ ├── vmovsldup_xmm_xmm.s
│ ├── vmovsldup_ymm_ymm.s
│ ├── vmovss_xmm_xmm_xmm.s
│ ├── vmovupd_xmm_xmm.s
│ ├── vmovupd_ymm_ymm.s
│ ├── vmovups_xmm_xmm.s
│ ├── vmovups_ymm_ymm.s
│ ├── vmulpd_xmm_xmm_xmm.s
│ ├── vmulps_xmm_xmm_xmm.s
│ ├── vmulsd_xmm_xmm_xmm.s
│ ├── vmulss_xmm_xmm_xmm.s
│ ├── vorpd_xmm_xmm_xmm.s
│ ├── vorpd_ymm_ymm_ymm.s
│ ├── vorps_xmm_xmm_xmm.s
│ ├── vorps_ymm_ymm_ymm.s
│ ├── vpaddd_xmm_xmm_xmm.s
│ ├── vpaddd_ymm_ymm_ymm.s
│ ├── vpaddq_xmm_xmm_xmm.s
│ ├── vpand_xmm_xmm_xmm.s
│ ├── vpand_ymm_ymm_ymm.s
│ ├── vpandn_xmm_xmm_xmm.s
│ ├── vpandn_ymm_ymm_ymm.s
│ ├── vpbroadcastb_xmm_xmm.s
│ ├── vpbroadcastb_ymm_xmm.s
│ ├── vpbroadcastd_xmm_xmm.s
│ ├── vpbroadcastd_ymm_xmm.s
│ ├── vpbroadcastq_xmm_xmm.s
│ ├── vpbroadcastq_ymm_xmm.s
│ ├── vpbroadcastw_xmm_xmm.s
│ ├── vpbroadcastw_ymm_xmm.s
│ ├── vphaddd_xmm_xmm_xmm.s
│ ├── vphaddd_ymm_ymm_ymm.s
│ ├── vphsubd_xmm_xmm_xmm.s
│ ├── vphsubd_ymm_ymm_ymm.s
│ ├── vpmovsxbd_xmm_xmm.s
│ ├── vpmovsxbd_ymm_xmm.s
│ ├── vpmovsxbq_xmm_xmm.s
│ ├── vpmovsxbq_ymm_xmm.s
│ ├── vpmovsxdq_xmm_xmm.s
│ ├── vpmovsxdq_ymm_xmm.s
│ ├── vpmovsxwd_xmm_xmm.s
│ ├── vpmovsxwd_ymm_xmm.s
│ ├── vpmovsxwq_xmm_xmm.s
│ ├── vpmovsxwq_ymm_xmm.s
│ ├── vpmovzxbd_xmm_xmm.s
│ ├── vpmovzxbd_ymm_xmm.s
│ ├── vpmovzxbq_xmm_xmm.s
│ ├── vpmovzxbq_ymm_xmm.s
│ ├── vpmovzxdq_xmm_xmm.s
│ ├── vpmovzxdq_ymm_xmm.s
│ ├── vpmovzxwd_xmm_xmm.s
│ ├── vpmovzxwd_ymm_xmm.s
│ ├── vpmovzxwq_xmm_xmm.s
│ ├── vpmovzxwq_ymm_xmm.s
│ ├── vpor_xmm_xmm_xmm.s
│ ├── vpor_ymm_ymm_ymm.s
│ ├── vpsubd_xmm_xmm_xmm.s
│ ├── vpsubd_ymm_ymm_ymm.s
│ ├── vpsubq_xmm_xmm_xmm.s
│ ├── vpunpckhdq_xmm_xmm_xmm.s
│ ├── vpunpckhdq_ymm_ymm_ymm.s
│ ├── vpunpckhqdq_xmm_xmm_xmm.s
│ ├── vpunpckhqdq_ymm_ymm_ymm.s
│ ├── vpunpckldq_xmm_xmm_xmm.s
│ ├── vpunpckldq_ymm_ymm_ymm.s
│ ├── vpunpcklqdq_xmm_xmm_xmm.s
│ ├── vpunpcklqdq_ymm_ymm_ymm.s
│ ├── vpxor_xmm_xmm_xmm.s
│ ├── vpxor_ymm_ymm_ymm.s
│ ├── vrcpps_xmm_xmm.s
│ ├── vrcpss_xmm_xmm_xmm.s
│ ├── vrsqrtps_xmm_xmm.s
│ ├── vrsqrtss_xmm_xmm_xmm.s
│ ├── vsqrtpd_xmm_xmm.s
│ ├── vsqrtps_xmm_xmm.s
│ ├── vsqrtsd_xmm_xmm_xmm.s
│ ├── vsqrtss_xmm_xmm_xmm.s
│ ├── vsubpd_xmm_xmm_xmm.s
│ ├── vsubps_xmm_xmm_xmm.s
│ ├── vsubsd_xmm_xmm_xmm.s
│ ├── vsubss_xmm_xmm_xmm.s
│ ├── vunpckhpd_xmm_xmm_xmm.s
│ ├── vunpckhpd_ymm_ymm_ymm.s
│ ├── vunpckhps_xmm_xmm_xmm.s
│ ├── vunpckhps_ymm_ymm_ymm.s
│ ├── vunpcklpd_xmm_xmm_xmm.s
│ ├── vunpcklpd_ymm_ymm_ymm.s
│ ├── vunpcklps_xmm_xmm_xmm.s
│ ├── vunpcklps_ymm_ymm_ymm.s
│ ├── vxorpd_xmm_xmm_xmm.s
│ ├── vxorpd_ymm_ymm_ymm.s
│ ├── vxorps_xmm_xmm_xmm.s
│ ├── vxorps_ymm_ymm_ymm.s
│ ├── xaddb_r8_r8.s
│ ├── xaddb_r8_rh.s
│ ├── xaddb_rh_r8.s
│ ├── xaddb_rh_rh.s
│ ├── xaddl_r32_r32.s
│ ├── xaddq_r64_r64.s
│ ├── xaddw_r16_r16.s
│ ├── xchgb_r8_r8.s
│ ├── xchgb_r8_rh.s
│ ├── xchgb_rh_r8.s
│ ├── xchgb_rh_rh.s
│ ├── xchgl_eax_r32.s
│ ├── xchgl_r32_eax.s
│ ├── xchgl_r32_r32.s
│ ├── xchgq_r64_r64.s
│ ├── xchgq_r64_rax.s
│ ├── xchgq_rax_r64.s
│ ├── xchgw_ax_r16.s
│ ├── xchgw_r16_ax.s
│ ├── xchgw_r16_r16.s
│ ├── xorb_r8_r8.s
│ ├── xorb_r8_rh.s
│ ├── xorb_rh_r8.s
│ ├── xorb_rh_rh.s
│ ├── xorl_r32_r32.s
│ ├── xorpd_xmm_xmm.s
│ ├── xorps_xmm_xmm.s
│ └── xorw_r16_r16.s
└── logo
│ └── strata.png
├── scripts
├── graphs
│ ├── config.py
│ ├── levels.py
│ ├── progress.py
│ ├── size.py
│ ├── size2.py
│ └── style.mplstyle
└── python
│ ├── create_functions.py
│ └── fs.py
├── src
└── main
│ ├── resources
│ └── all.instrs
│ └── scala
│ └── strata
│ ├── Check.scala
│ ├── Driver.scala
│ ├── Initialize.scala
│ ├── Statistics.scala
│ ├── data
│ ├── Instruction.scala
│ ├── InstructionMeta.scala
│ ├── Log.scala
│ ├── Program.scala
│ ├── State.scala
│ └── Stoke.scala
│ ├── main.scala
│ ├── tasks
│ ├── InitialSearch.scala
│ ├── Result.scala
│ ├── SecondarySearch.scala
│ └── Task.scala
│ └── util
│ ├── ColoredOutput.scala
│ ├── Distribution.scala
│ ├── IO.scala
│ ├── Locking.scala
│ ├── Sorting.scala
│ └── Timing.scala
└── strata
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | .idea/workspace.xml
3 | *.pyc
4 | bin/
5 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "stoke"]
2 | path = stoke
3 | url = git@github.com:StanfordPL/stoke.git
4 | branch = feature-strata
5 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | strata
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/dictionaries/stefan.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | opcode
5 | workdir
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/highlighting.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_assembla_scala_incubator_graph_core_2_11_1_9_4_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_assembla_scala_incubator_graph_dot_2_11_1_10_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_github_nscala_time_nscala_time_2_11_2_2_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_github_scopt_scopt_2_11_3_3_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_github_tototoshi_scala_csv_2_11_1_2_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_jsuereth_scala_arm_2_11_1_4_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__com_thoughtworks_paranamer_paranamer_2_8_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__commons_io_commons_io_2_3_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__joda_time_joda_time_2_8_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_joda_joda_convert_1_7_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_json4s_json4s_ast_2_11_3_3_0_RC6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_json4s_json4s_core_2_11_3_3_0_RC6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_json4s_json4s_ext_2_11_3_3_0_RC6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_json4s_json4s_native_2_11_3_3_0_RC6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_json4s_json4s_scalap_2_11_3_3_0_RC6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_scala_lang_modules_scala_xml_2_11_1_0_5_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_scala_lang_plugins_scala_continuations_library_2_11_1_0_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_scala_lang_scala_library_2_11_7_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_scala_lang_scala_reflect_2_11_7_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__org_scalatest_scalatest_2_11_2_1_6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/SBT__pl_project13_scala_rainbow_2_11_0_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/scala_compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/resources/empty.s:
--------------------------------------------------------------------------------
1 | .empty:
2 | retq
3 |
--------------------------------------------------------------------------------
/resources/function-templates/move_gp16_gp16_gp32.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl move_016_032_[gp16_0]_[gp16_1]_[gp32_0]
3 | .type [name], @function
4 | #! maybe-read { %[gp16_0] %[gp16_1] }
5 | #! maybe-write { %[gp32_0] }
6 | #! must-undef { %r15 }
7 | .[name]:
8 | # ----------------------------------------------------------------------------
9 | # moves [gp16_0] and [gp16_1] to [gp32_0].
10 | # ----------------------------------------------------------------------------
11 | pushfq
12 | movw %[gp16_1], %r15w
13 | shlq $0x10, %r15
14 | movw %[gp16_0], %r15w
15 | movl %r15d, %[gp32_0]
16 | popfq
17 | retq
18 |
19 | .size [name], .-[name]
--------------------------------------------------------------------------------
/resources/function-templates/move_gp16_gp8_gp8.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl move_016_008_[gp16_0]_[gp8_0]_[gp8_1]
3 | .type [name], @function
4 | #! maybe-read { %[gp16_0] }
5 | #! maybe-write { %[gp8_0] %[gp8_1] }
6 | #! must-undef { %r15 }
7 | .[name]:
8 | # ----------------------------------------------------------------------------
9 | # moves [gp16_0] to [gp8_0] and [gp8_1].
10 | # ----------------------------------------------------------------------------
11 | pushfq
12 | movw %[gp16_0], %r15w
13 | movb %r15b, %[gp8_0]
14 | shrq $0x8, %r15
15 | movb %r15b, %[gp8_1]
16 | popfq
17 | retq
18 |
19 | .size [name], .-[name]
--------------------------------------------------------------------------------
/resources/function-templates/move_gp32_gp16_gp16.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl move_032_016_[gp32_0]_[gp16_0]_[gp16_1]
3 | .type [name], @function
4 | #! maybe-read { %[gp32_0] }
5 | #! maybe-write { %[gp16_0] %[gp16_1] }
6 | #! must-undef { %r15 }
7 | .[name]:
8 | # ----------------------------------------------------------------------------
9 | # moves [gp32_0] to [gp16_0] and [gp16_1].
10 | # ----------------------------------------------------------------------------
11 | pushfq
12 | movl %[gp32_0], %r15d
13 | movw %r15w, %[gp16_0]
14 | shrq $0x10, %r15
15 | movw %r15w, %[gp16_1]
16 | popfq
17 | retq
18 |
19 | .size [name], .-[name]
--------------------------------------------------------------------------------
/resources/function-templates/move_gp32_gp32_gp64.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl move_032_064_[gp32_0]_[gp32_1]_[gp64_0]
3 | .type [name], @function
4 | #! maybe-read { %[gp32_0] %[gp32_1] }
5 | #! maybe-write { %[gp64_0] }
6 | #! must-undef { %r14 %r15 }
7 | .[name]:
8 | # ----------------------------------------------------------------------------
9 | # moves [gp32_0] and [gp32_1] to [gp64_0].
10 | # ----------------------------------------------------------------------------
11 | pushfq
12 | movl %[gp32_1], %r15d
13 | shlq $0x20, %r15
14 | movl %[gp32_0], %r14d
15 | orq %r14, %r15
16 | movq %r15, %[gp64_0]
17 | popfq
18 | retq
19 |
20 | .size [name], .-[name]
--------------------------------------------------------------------------------
/resources/function-templates/move_gp64_gp32_gp32.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl move_064_032_[gp64_0]_[gp32_0]_[gp32_1]
3 | .type [name], @function
4 | #! maybe-read { %[gp64_0] }
5 | #! maybe-write { %[gp32_0] %[gp32_1] }
6 | #! must-undef { %r15 }
7 | .[name]:
8 | # ----------------------------------------------------------------------------
9 | # moves [gp64_0] to [gp32_0] and [gp32_1].
10 | # ----------------------------------------------------------------------------
11 | pushfq
12 | movq %[gp64_0], %r15
13 | movl %r15d, %[gp32_0]
14 | shrq $0x20, %r15
15 | movl %r15d, %[gp32_1]
16 | popfq
17 | retq
18 |
19 | .size [name], .-[name]
--------------------------------------------------------------------------------
/resources/function-templates/move_gp8_gp8_gp16.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl move_008_016_[gp8_0]_[gp8_1]_[gp16_0]
3 | .type [name], @function
4 | #! maybe-read { %[gp8_0] %[gp8_1] }
5 | #! maybe-write { %[gp16_0] }
6 | #! must-undef { %r15 }
7 | .[name]:
8 | # ----------------------------------------------------------------------------
9 | # moves [gp8_0] and [gp8_1] to [gp16_0].
10 | # ----------------------------------------------------------------------------
11 | pushfq
12 | movb %[gp8_1], %r15b
13 | shlq $0x8, %r15
14 | movb %[gp8_0], %r15b
15 | movw %r15w, %[gp16_0]
16 | popfq
17 | retq
18 |
19 | .size [name], .-[name]
--------------------------------------------------------------------------------
/resources/imm8_baseset/adcb_r8_rh.s:
--------------------------------------------------------------------------------
1 | .text
2 | .globl target
3 | .type target, @function
4 |
5 | #! file-offset 0
6 | #! rip-offset 0
7 | #! capacity 3 bytes
8 |
9 | # Text # Line RIP Bytes Opcode
10 | .target: # 0 0 OPC=