12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576openArch_declopenX86_declopenWsizemoduletypeX86_input=sigvalcall_conv:(register,register_ext,xmm_register,rflag,condt)calling_conventionendletatoIdecl=letopenProginletmk_varkts=V.mks(Reg(k,Direct))(Conv.ty_of_cty(Type.atype_of_ltypet))L._dummy[]inmatchArch_extra.MkAToIdent.mkdeclmk_varwith|Utils0.Errore->lete=Conv.error_of_cerror(Printer.pp_err~debug:true)einraise(Utils.HiErrore)|Utils0.OkatoI->atoImoduleX86_core=structtypereg=registertyperegx=register_exttypexreg=xmm_registertypenonrecrflag=rflagtypecond=condttypeasm_op=X86_instr_decl.x86_optypeextra_op=X86_extra.x86_extra_opletatoI=atoIx86_declletasm_e=X86_extra.x86_extraatoIletaparams=X86_params.x86_paramsatoIletnot_saved_stack=(X86_params.x86_liparamsatoI).lip_not_saved_stackletpp_asm=Pp_x86.print_progletcallstyle=Arch_full.StackDirectletsp_min_align=Wsize.U8(* One YMM store. *)letmax_store_size=U256letknown_implicits=["OF","_of_";"CF","_cf_";"SF","_sf_";"ZF","_zf_"]letalloc_stack_need_extra_=falseletis_ct_asm_op(o:asm_op)=matchowith|DIV_|IDIV_->false|_->true(* All of the extra ops compile into CT instructions (no DIV). *)letis_ct_asm_extra(_o:extra_op)=trueendmoduleX86(Lowering_params:X86_input):Arch_full.Core_archwithtypereg=registerandtyperegx=register_extandtypexreg=xmm_registerandtyperflag=rflagandtypecond=condtandtypeasm_op=X86_instr_decl.x86_opandtypeextra_op=X86_extra.x86_extra_op=structincludeX86_coreincludeLowering_paramsletinternal_call_conv=X86_decl.x86_internal_call_convend