Caml1999I037iTf6+Cmm_helpers$bind@&stringQ@@@)@@*@#Cmm*expression@@@+@@,@@*expression@@@-@@.*expression@@@/@@0@@1*expression@@@2@@3@@4@@5@7asmcomp/cmm_helpers.mliTU@@8E@@)bind_load@7@@@6@@7@5*expression@@@8@@9@@B*expression@@@:@@;G*expression@@@<@@=@@>L*expression@@@?@@@@@A@@B@2XPP3Y`@@iF@@*caml_black)nativeintM@@@C@A^B^@@xG@@.floatarray_tag@)Debuginfo!t@@@D@@Eu*expression@@@F@@G@[a33\a3a@@H@@,block_header@#intA@@@H@@I@ @@@J@@K;@@@L@@M@@N@ze{e@@I@@2black_block_header@@@@O@@P@'@@@Q@@RX@@@S@@T@@U@h((h(X@@J@@4white_closure_header@<@@@V@@Wm@@@X@@Y@kk@@K@@4black_closure_header@Q@@@Z@@[@@@\@@]@ll@@L@@,infix_header@f@@@^@@_@@@`@@a@oo'@@ M@@,float_header@@@b@rOOrOk@@N@@1floatarray_header@@@@c@@d@@@e@@f@uu@@/O@@-string_header @@@@g@@h@@@i@@j@ x  x  0@@DP@@1boxedint32_header!@@@k@{ O O{ O p@@QQ@@1boxedint64_header"@@@l@'| q q(| q @@^R@@2boxedintnat_header#@@@m@4}  5}  @@kS@@,closure_info$%arity@@@n@@o(startenv@@@p@@q@@@r@@s@@t@U@  V@  =@@T@@2alloc_float_header%@!t@@@u@@v*expression@@@w@@x@mC O OnC O @@U@@7alloc_floatarray_header&@@@@y@@z@4!t@@@{@@|*expression@@@}@@~@@@D  D  @@V@@4alloc_closure_header'@2@@@@@@T!t@@@@@*expression@@@@@@@@E  E  @@W@@2alloc_infix_header(@R@@@@@@t!t@@@@@*expression@@@@@@@@F  F  6@@X@@2alloc_closure_info)%arityt@@@@@(startenv~@@@@@@!t@@@@@*expression@@@@@@@@@@G 7 7H P @@0Y@@7alloc_boxedint32_header*@!t@@@@@+*expression@@@@@@I  I  @@HZ@@7alloc_boxedint64_header+@!t@@@@@C*expression@@@@@@)J  *J  @@`[@@8alloc_boxedintnat_header,@!t@@@@@[*expression@@@@@@AK  BK  5@@x\@@,max_repr_int-@@@@NQ  OQ  @@]@@,min_repr_int.@@@@[R  \R  @@^@@)int_const/@!t@@@@@@ @@@@@*expression@@@@@@@@{U . .|U . ^@@_@@*cint_const0@ @@@@@)data_item@@@@@@V _ _V _ @@`@@/targetint_const1@6@@@@@)Targetint!t@@@@@@W  W  @@a@@5natint_const_untagged2@i!t@@@@@@&Stdlib)Nativeint!t@@@@@*expression@@@@@@@@\SS\S@@b@@)add_const3@*expression@@@@@@~@@@@@@!t@@@@@*expression@@@@@@@@@@__@@0c@@(incr_int4@%*expression@@@@@@!t@@@@@4*expression@@@@@@@@b..b.d@@Qd@@(decr_int5@F*expression@@@@@@!t@@@@@U*expression@@@@@@@@;cee<ce@@re@@2ignore_low_bit_int6@g*expression@@@@@l*expression@@@@@@RgSg@@f@@3ignore_high_bit_int7@~*expression@@@@@*expression@@@@@@ikssjks@@g@@'add_int8@*expression@@@@@@*expression@@@@@@:!t@@@@@*expression@@@@@@@@@@nn@@h@@'sub_int9@*expression@@@@@@*expression@@@@@@d!t@@@@@*expression@@@@@@@@@@ooY@@i@@'lsl_int:@*expression@@@@@@*expression@@@@@@!t@@@@@*expression@@@@@@@@@@pZZpZ@@j@@'mul_int;@*expression@@@@@@*expression@@@@@@!t@@@@@+*expression@@@@@@@@@@qq@@Hk@@'lsr_int<@=*expression@@@@@@F*expression@@@@@@!t@@@@@ U*expression@@@ @@ @@ @@ @;r<r%@@rl@@'asr_int=@g*expression@@@@@@p*expression@@@@@@ !t@@@@@*expression@@@@@@@@@@es&&fs&i@@m@@'div_int>@*expression@@@@@@*expression@@@@@@&Lambda'is_safe@@@@@@B!t@@@@@*expression@@@ @@!@@"@@#@@$@tjjux@@p@@'mod_int?@*expression@@@%@@&@*expression@@@'@@(@6'is_safe@@@)@@*@v!t@@@+@@,*expression@@@-@@.@@/@@0@@1@vw@@q@@'tag_int@@*expression@@@2@@3@!t@@@4@@5 *expression@@@6@@7@@8@zOOzO@@'r@@)untag_intA@*expression@@@9@@:@!t@@@;@@<+*expression@@@=@@>@@?@}}@@Hs@@+safe_div_biB@'is_safe@@@@@@A@G*expression@@@B@@C@P*expression@@@D@@E@)Primitive-boxed_integer@@@F@@G@!t@@@H@@Ik*expression@@@J@@K@@L@@M@@N@@O@Q**R@@t@@+safe_mod_biC@'is_safe@@@P@@Q@*expression@@@R@@S@*expression@@@T@@U@@-boxed_integer@@@V@@W@6!t@@@X@@Y*expression@@@Z@@[@@\@@]@@^@@_@+@@u@@/mk_if_then_elseD@N!t@@@`@@a@*expression@@@b@@c@a!t@@@d@@e@*expression@@@f@@g@t!t@@@h@@i@*expression@@@j@@k*expression@@@l@@m@@n@@o@@p@@q@@r@@@ v@@&mk_notE@!t@@@s@@t@ *expression@@@u@@v*expression@@@w@@x@@y@@@.w@@/mk_compare_intsF@!t@@@z@@{@-*expression@@@|@@}@6*expression@@@~@@;*expression@@@@@@@@@@!))")t@@Xx@@1mk_compare_floatsG@!t@@@@@@W*expression@@@@@@`*expression@@@@@e*expression@@@@@@@@@@KuuLu@@y@@+create_loopH@w*expression@@@@@@!t@@@@@*expression@@@@@@@@lmV@@z@@,raise_symbolI@+!t@@@@@@@@@@@*expression@@@@@@@@qqq@@{@@)test_boolJ@K!t@@@@@@*expression@@@@@*expression@@@@@@@@(@@|@@)box_floatK@l!t@@@@@@*expression@@@@@*expression@@@@@@@@KKK@@}@@+unbox_floatL@!t@@@@@@*expression@@@@@ *expression@@@@@@@@@@&~@@0float_of_float16M@!t@@@@@@%*expression@@@@@**expression@@@@@@@@!@@G@@0float16_of_floatN@!t@@@@@@F*expression@@@@@K*expression@@@@@@@@1""2"`@@h@@@+box_complexO@!t@@@@@@g*expression@@@@@@p*expression@@@@@u*expression@@@@@@@@@@[\@@A@@*complex_reP@*expression@@@@@@#!t@@@@@*expression@@@@@@@@|} @@B@@*complex_imQ@*expression@@@@@@D!t@@@@@*expression@@@@@@@@   E@@C@@+return_unitR@\!t@@@@@@*expression@@@@@*expression@@@@@@@@|||@@D@@+remove_unitS@*expression@@@@@*expression@@@@@@ @@ E@@+mk_load_mutT@,memory_chunk@@@@@)operation@@@@@@HHHs@@#F@@.mk_load_atomicU@,memory_chunk@@@@@)operation@@@@@@@@:G@@-field_addressV@/*expression@@@@@@@@@@@@!t@@@@@F*expression@@@@@@@@@@,WW-W@@cH@@-get_field_genW,memory_chunk&optionL`,memory_chunk@@@@@@@@@(Asttypes,mutable_flag@@@@@@v*expression@@@@@@@@@@@@!t@@@@@*expression@@@@@@@@@@@@@@s,,t@@I@@)set_fieldX@*expression@@@@@@!@@@@@@*expression@@@ @@ @@ ?!t@@@?@@@ *expression@@@A@@B@@C@ #5#5 #5#t@@ R@@1is_addr_array_ptra@ *expression@@@D@@E@ `!t@@@F@@G *expression@@@H@@I@@J@ #u#u #u#@@ S@@9addr_array_length_shiftedb@ *expression@@@K@@L@ !t@@@M@@N *expression@@@O@@P@@Q@ $$ $%3@@ T@@:float_array_length_shiftedc@ *expression@@@R@@S@ !t@@@T@@U *expression@@@V@@W@@X@ %4%4 %4%|@@ 2U@@.array_indexingd#typϠ ,2machtype_component@@@Y@@@Z@@[@ @@@\@@]@ >*expression@@@^@@_@ G*expression@@@`@@a@ !t@@@b@@c V*expression@@@d@@e@@f@@g@@h@@i@ <'|'| =''@@ sV@@.addr_array_refe@ h*expression@@@j@@k@ q*expression@@@l@@m@ !t@@@n@@o *expression@@@p@@q@@r@@s@ f (( g ((@@ W@@-int_array_reff@ *expression@@@t@@u@ *expression@@@v@@w@ 7!t@@@x@@y *expression@@@z@@{@@|@@}@  ((  ()%@@ X@@7unboxed_float_array_refg@ *expression@@@~@@@ *expression@@@@@@ a!t@@@@@ *expression@@@@@@@@@@  )&)&  )D){@@ Y@@/float_array_refh@ *expression@@@@@@ *expression@@@@@@ !t@@@@@ *expression@@@@@@@@@@  )|)|  )|)@@ Z@@.addr_array_seti@ *expression@@@@@@ *expression@@@@@@ "*expression@@@@@@ !t@@@@@ 1*expression@@@@@@@@@@@@ )) )*"@@ N[@@5addr_array_initializej@ C*expression@@@@@@ L*expression@@@@@@ U*expression@@@@@@ !t@@@@@ d*expression@@@@@@@@@@@@ J*#*# K*?*@@ \@@-int_array_setk@ v*expression@@@@@@ *expression@@@@@@ *expression@@@@@@ $!t@@@@@ *expression@@@@@@@@@@@@ }** ~**@@ ]@@/float_array_setl@ *expression@@@@@@ *expression@@@@@@ *expression@@@@@@ W!t@@@@@ *expression@@@@@@@@@@@@ ** *+:@@ ^@@-string_lengthm@ *expression@@@@@@ x!t@@@@@ *expression@@@@@@@@ +L+L +L+@@ _@@0bigstring_lengthn@ *expression@@@@@@ !t@@@@@ *expression@@@@@@@@ ++ ++@@ )`@@*lookup_tago@ *expression@@@@@@ '*expression@@@@@@ !t@@@@@ 6*expression@@@@@@@@@@ ",, ",,@@ Sa@@,lookup_labelp@ H*expression@@@@@@ Q*expression@@@@@@ !t@@@@@ `*expression@@@@@@@@@@ F)-- G)--@@ }b@@2call_cached_methodq@ r*expression@@@@@@ {*expression@@@@@@ *expression@@@@@@ *expression@@@@@@$listK *expression@@@@@@@@@ 9!t@@@@@ *expression@@@@@@@@@@@@@@@@ 2/N/N 4//@@ c@@*make_allocr@ Q!t@@@@@@ A@@@@@@: *expression@@@@@@@@ *expression@@@@@@@@@@ 90"0" 90"0f@@ d@@0make_float_allocs@ !t@@@@@@ o@@@ @@ @h *expression@@@ @@@ @@  *expression@@@@@@@@@@ <00 <00@@ %e@@/make_checkboundt@ !t@@@@@@ (*expression@@@@@@@@ .*expression@@@@@@@@ A1.1. A1.1p@@ Kf@@+check_boundu@'is_safe@@@@@@2Clambda_primitives2memory_access_size@@@@@@ !t@@@@@@ `*expression@@@ @@!@ i*expression@@@"@@#@ r*expression@@@$@@% w*expression@@@&@@'@@(@@)@@*@@+@@,@ ]G2o2o ^J23@@ i@@&opaquev@ *expression@@@-@@.@ %!t@@@/@@0 *expression@@@1@@2@@3@ ~M3"3" M3"3V@@ j@@2apply_function_symw@ #@@@4@@5 @@@6@@7@ S33 S34$@@ k@@2curry_function_symx@ 8@@@8@@9 @@@:@@;@ X55 X554@@ l@@,bigarray_gety@$boolE@@@<@@=@ ;-bigarray_kind@@@>@@?@ E/bigarray_layout@@@@@@A@ *expression@@@B@@C@e *expression@@@D@@@E@@F@ !t@@@G@@H*expression@@@I@@J@@K@@L@@M@@N@@O@ d66 g7;7G@@,m@@,bigarray_setz@M@@@P@@Q@ -bigarray_kind@@@R@@S@ /bigarray_layout@@@T@@U@=*expression@@@V@@W@J*expression@@@X@@@Y@@Z@T*expression@@@[@@\@ !t@@@]@@^c*expression@@@_@@`@@a@@b@@c@@d@@e@@f@Ik77Jn8V8b@@n@@&low_32{@!t@@@g@@h@*expression@@@i@@j*expression@@@k@@l@@m@js88ks89 @@o@@.sign_extend_32|@)!t@@@n@@o@*expression@@@p@@q*expression@@@r@@s@@t@v9@9@v9@9|@@p@@.zero_extend_32}@J!t@@@u@@v@*expression@@@w@@x*expression@@@y@@z@@{@y99y99@@q@@2caml_nativeint_ops~@@@|@~:=:=~:=:\@@r@@.caml_int32_ops@@@}@:]:]:]:x@@s@@.caml_int64_ops@@@~@:y:y:y:@@ t@@+box_int_gen@!t@@@@@@ -boxed_integer@@@@@@*expression@@@@@*expression@@@@@@@@@@:::;%@@5u@@)unbox_int@!t@@@@@@ -boxed_integer@@@@@@>*expression@@@@@C*expression@@@@@@@@@@);J;J*;Z;@@`v@@1make_unsigned_int@ -boxed_integer@@@@@@_*expression@@@@@@!t@@@@@n*expression@@@@@@@@@@T;;U<>M@@}@@-unaligned_set@M2memory_access_size@@@@@@*expression@@@@@@*expression@@@@@@*expression@@@@@@O!t@@@@@*expression@@@@@@@@@@@@@@>>>?@@~@@.unaligned_load@2memory_access_size@@@@@@*expression@@@@@@*expression@@@@@@!t@@@@@*expression@@@@@@@@@@@@?I?I??@@@@)box_sized@2memory_access_size@@@@@@!t@@@@@@*expression@@@@@!*expression@@@@@@@@@@??@@F@@>@@1simplif_primitive@)primitive@@@ @@ )primitive@@@ @@ @ @[@[!@s@@@W@@/unary_primitive;@@@A@N*expression@@@ @@@!t@@@@@]*expression@@@@@@@@@@@C@@D@@@@@@z@A@*floatfield@@@@@@1@@@@@@XAQAQYAQAx@@@@.int_as_pointer @@@@dAAeAA@@@@*raise_prim@ *raise_kind@@@@@#@@@@@@zAA{AB @@@@&negint/@@@@B8B8B8BT@@@@)offsetint@+@@@@@C@@@ @@!@BBBB@@@@)offsetref@?@@@"@@#W@@@$@@%@BBBC@@@@+arraylength@ 7*array_kind@@@&@@'m@@@(@@)@CVCVCVC@@@@&bbswap@ -boxed_integer@@@*@@+@@@,@@-@CCCD@@@@'bswap16@@@.@DcDcDcD@@@@0binary_primitive;@@@A@*expression@@@/@@0@*expression@@@1@@2@!t@@@3@@4,*expression@@@5@@6@@7@@8@@@@DDDD@@@@I@A@/assignment_kind;@@+Caml_modify@@!DD"DD@@X@/Caml_initialize@@*DD+DE@@a@&Simple@@3DE4DE@@j@@@A@@@@@7DD@@A@m@A@(setfield@@@@9@@:@ 4immediate_or_pointer@@@;@@<@ r@@@?@@@@@A@@B@_EIEI`EE@@@@-setfloatfield@@@@C@@D@ @@?@D[YYE[YZ@@{@@,global_table@ ڠ~@@@@@@@A@@By&phrase@@@C@@D@_^Z/Z/`^Z/ZV@@@@1reference_symbols@ @@@E@@@F@@G&phrase@@@H@@I@zaZZ{aZZ@@@@+globals_map@ @@@@P@Z&Digest!t@@@N@@@O@h&Digest!t@@@L@@@M@ :@@@J@@@K@@Q@@@R@@S&phrase@@@T@@U@d[[e[[]@@@@+frame_table@ V@@@V@@@W@@X&phrase@@@Y@@Z@i[[i[[@@@@2data_segment_table@ q@@@[@@@\@@]&phrase@@@^@@_@m\Z\Zm\Z\@@-@@2code_segment_table@ 0@@@`@@@a@@b+&phrase@@@c@@d@n\\n\\@@H@@0predef_exception@@@@e@@f@O@@@g@@hI&phrase@@@i@@j@@k@/q\\0q\]@@f@@-plugin_header@ Š@a*unit_infos@@@m@&Digest!t@@@l@@n@@@o@@ps&phrase@@@q@@r@Ys]]Zs]]Z@@@@.cdefine_symbol@@@@@t@,Cmmgen_state)is_global@@@s@@u@@v )data_item@@@w@@@x@@y@x]]x]^ @@@@*emit_block@@@@@{@))is_global@@@z@@|@@}@h@@@~@@@ 4)data_item@@@@@@@@ >)data_item@@@@@@@@@@@@@~^^_9_I@@@@3emit_float_constant@@@@@@f)is_global@@@@@@@@%floatD@@@@@@ s )data_item@@@@@@@@ })data_item@@@@@@@@@@@@@____@@5@@4emit_string_constant@@8@@@@)is_global@@@@@@@@H@@@@@@ J)data_item@@@@@@@@ T)data_item@@@@@@@@@@@@@;__<`R`b@@r@@3emit_int32_constant@@u@@@@)is_global@@@@@@@@%int32N@@@@@@ )data_item@@@@@@@@ )data_item@@@@@@@@@@@@@z`c`c{``@@@@3emit_int64_constant@@@@@@!)is_global@@@@@@@@%int64O@@@@@@ .)data_item@@@@@@@@ 8)data_item@@@@@@@@@@@@@``a,a<@@@@7emit_nativeint_constant@@@@@@`)is_global@@@@@@@@@@@@@@ k)data_item@@@@@@@@ u)data_item@@@@@@@@@@@@@a=a=aa@@-@@9emit_float_array_constant@@0@@@Ϡ@)is_global@@@@@@@@ ;@@@@@@@@@ G)data_item@@@@@@@@ Q)data_item@@@@@@@@@@@@@8aa9bb)@@o@@-fundecls_size@ Π'Clambda)ufunction@@@@@@@@@@@@@@Vb+b+Wb+b\@@@@5emit_constant_closure@@@@@㠠@)is_global@@@@@@@@2)ufunction@@@@@@@@@)data_item@@@@@@@@@)data_item@@@@@@@@')data_item@@@@@@@@@@@@@@@b^b^bb@@@@8emit_preallocated_blocks@>p2preallocated_block@@@@@@@@@M&phrase@@@@@@@@W&phrase@@@@@@@@@@@bbccO@@@@@ zwfd+Cmm_helpers0u }Y233_i(Warnings0Ef{&(Variable0?l猵eY2Var_within_closure0``ݗXFR⠠)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&)Targetint0ﲵ+^| y栠#Tag0&b rٍ&Symbol03E?Y7(%Subst0=aqT/!p+-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//1Stdlib__Nativeint0hA; \%+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:0Static_exception0Jmyrqܒx-8ɞ3Simple_value_approx0 c[k%S\KѠ%Shape0 M``ll6Set_of_closures_origin0!YA _XO 2Set_of_closures_id0LbO`ܩ&M*Projection02hS xj56)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y)Parameter0zk^f2my19+Outcometree0BuG^)= 9c 'Numbers0 q޷He0Mutable_variable0CQᷧ$$Misc0Kvor#2D)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ,Linkage_name0tԈK1G&Lambda0x_edT-uq7Internal_variable_names0TbgѹG+L,Identifiable0]/*N %Ident0>ЃzV)j⠠*Freshening0xW("-9wVԠ*Format_doc0uy@GmWUࠠ'Flambda0VJ͟+Export_info0t?MH\)Export_id0CJ9DןRa7ݷ$E#Env02O<r7 )Debuginfo0_ |PooGq*Data_types0v\3,Svh0Compilation_unit0Dl ]wN*Cmx_format0}Du)|lx/̠,Cmmgen_state0L1$SZBr04#Cmm0ϝI1R*Cmi_format0{)ݬ[ƥ  .Closure_origin0!Havl5"_*Closure_id0 (?$/Closure_element0ǔf#M2Clambda_primitives0|& %ZIǝz'Clambda0i[C [|e0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0zd,J4z+Backend_var0Xʮz{9`z(Asttypes0eT$BbRM dc/Allocated_const0/vVǟx@@@Caml1999T037.Vwk[3C+Cmm_helpersࠐ#Cmm#Cmm7asmcomp/cmm_helpers.mliP7<P7?@@A3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A頰=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A󠰠  @+End_of_file\#$@@@A@'FailureY#,@'@@A@0Invalid_argumentX#5@0@@A $#@-Match_failureV#>@@=@9@;@@a@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@AP77@@3@@A@$bind6TT@б@гp&stringUU@@ @@@ N@@б@г*expressionUU@@ @@@ O@@б@б@г*expressionUU@@ @@@ Pϰ@@г*expressionUU@@ @@@ Qܰ@@@@@ R@@ S @@г*expressionUU@@ @@@ T@@@@@ U@@ VU @@@>@@ W @@ XA@@@R@@ Y @@ ZU@@@T@)ocaml.docڐ s [bind name arg fn] is equivalent to [let name = arg in fn name], or simply [fn arg] if [arg] is simple enough RAAS@@@@@@@%E@@*@될@@@@@@)bind_load7*XPT+XP]@б@г&string5Y`b6Y`h@@ @@@ [376677777@6:@A@@б@гI*expressionFY`lGY`v@@ @@@ \@@б@б@гZ*expressionWY`{XY`@@ @@@ ]"@@гg*expressiondY`eY`@@ @@@ ^/@@@@@ _@@ `4 @@гy*expressionvY`wY`@@ @@@ aA@@@@@ b@@ cFY`z @@@>@@ d @@ eLA@@@T@@ f @@ gQW@@@XPP@ A Same as [bind], but also treats loads from a variable as simple W  W O@@@@@@@F@@(@s@@@@@@p*ocaml.text) Headers [[@@@@@@3@2@A*caml_black8^^@г)nativeint^^@@ @@@ h@@@^@Ӑ ) A null header with GC bits set to black ]]@@@@@@@G@@@@@@@@@7.floatarray_tagGa37a3E@б@г)Debuginfo!t)Debuginfo a3H a3Q@ a3Ra3S@@@@@@ 3@[VC@A @@г#*expression a3W!a3a@@ @@@ @@@@@ @@  @@@-a33 @) . A constant equal to the tag for float arrays :`;`2@@@@@@@LH@@@9@@@@@@3,block_headerHQeRe@б@г.#int\e]e@@ @@@ 3^]]^^^^^@Ll8@A@@б@г?#intmene@@ @@@ @@г)nativeintze{e@@ @@@ @@@@@ @@ # @@@+@@  @@ (.@@@e@ X [block_header tag size] creates a header with tag [tag] for a block of size [size] cccd@@@@@@@I@@"@q@@@@@@G2black_block_headerIh(,h(>@б@г#inth(Ah(D@@ @@@ 3@`u8@A@@б@г#inth(Hh(K@@ @@@ @@г)nativeinth(Oh(X@@ @@@ @@@@@ @@ # @@@+@@  @@ (.@@@h((@琠 5 Same as block_header, but with GC bits set to black gg'@@@@@@@ J@@"@А@@@@@@G4white_closure_headerJkk@б@г점#intkk@@ @@@ 3@`u8@A@@гb)nativeint)k*k@@ @@@ @@@@@ @@  @@@6k @2 # Closure headers of the given size CjZZDjZ@@@@@@@UK@@@B@@@@@@34black_closure_headerKZl[l@б@г7#intelfl@@ @@@ 3gffggggg@La8@A@@г)nativeinttlul@@ @@@ @@@@@ @@  @@@l @@L@@@@,infix_headerLoo@б@гi#intoo@@ @@@ 3@3H@A@@гߠ)nativeintoo'@@ @@@ @@@@@ @@  @@@o @ " Infix header at the given offset nn@@@@@@@M@@@@@@@@@3,float_headerMrOSrO_@г)nativeintrObrOk@@ @@@ 3@J_6@A@@@rOO @搠 Header for a boxed float value q))q)N@@@@@@@ N@@@ϐ@@@@@@!1floatarray_headerNuu@б@г렐#intuu@@ @@@ 3@:M8@A@@гa)nativeint(u)u@@ @@@ @@@@@ @@  @@@5u @1 5 Header for an unboxed float array of the given size BtmmCtm@@@@@@@TO@@@A@@@@@@3-string_headerOYx  Zx  @б@г6#intdx  ex  #@@ @@@ 3feefffff@La8@A@@г)nativeintsx  'tx  0@@ @@@ @@@@@ @@  @@@x   @| 4 Header for a string (or bytes) of the given length ww @@@@@@@P@@@e@@@@@@31boxedint32_headerP{ O S{ O d@г栐)nativeint{ O g{ O p@@ @@@ 3@J_6@A@@@{ O O @7 Boxed integer headers z 2 2z 2 N@@@@@@@Q@@@@@@@@@!1boxedint64_headerQ| q u| q @г)nativeint| q | q @@ @@@ 3@8K6@A@@@| q q @@R@@ @@2boxedintnat_headerR}  }  @г;)nativeint}  }  @@ @@@ 3@2@A@@@ }   @@S@@ @@,closure_infoS@  @  @б%arityг#int$@  %@  @@ @@@ 3&%%&&&&&@#6!@A@@б(startenvг #int7@  -8@  0@@ @@@ @@г})nativeintD@  4E@  =@@ @@@  @@@@ @@ %O@  $ @@7.@@  @@ +U@  @@@X@  @T G Closure info for a closure of given arity and distance to environment e  f  @@@@@@@wT@@$@d=@@@@@@K2alloc_float_headerT|C O S}C O e@б@г!t)DebuginfoC O hC O q@ C O rC O s@@@@@@ 3@mA@A @@г*expressionC O wC O @@ @@@ @@@@@ @@  @@@C O O @* Wrappers B ? ?B ? N@@@@@@@U@@@@@@@@@37alloc_floatarray_headerUD  D  @б@г#intD  D  @@ @@@ 3@Lj8@A@@б@г!t)DebuginfoD  D  @ D  D  @@@@@@  @@г*expressionD  D  @@ @@@ '@@@@@ @@ , @@@4@@  @@ 17@@@D  @@%V@@@@74alloc_closure_headerVE   E  @б@г#int*E  +E  @@ @@@ 3,++,,,,,@Pe@A@@б@г5!t)Debuginfo?E  @E  @ CE  DE  @@@@@@  @@гT*expressionQE  RE  @@ @@@ '@@@@@ @@ , @@@4@@  @@ 17@@@cE  @@tW@@@@72alloc_infix_headerWnF  oF  @б@гK#intyF  zF  @@ @@@ 3{zz{{{{{@Pe@A@@б@г!t)DebuginfoF  F  &@ F  'F  (@@@@@@  @@г*expressionF  ,F  6@@ @@@ '@@@@@ !@@ ", @@@4@@ # @@ $17@@@F  @@X@@@@72alloc_closure_infoXG 7 ;G 7 M@б%arityг#intH P \H P _@@ @@@ %3@Rg!@A@@б(startenvг#intH P lH P o@@ @@@ &@@б@г!t)DebuginfoH P sH P |@ H P }H P ~@@@@@@ '+ @@г*expressionH P H P @@ @@@ (8@@@@@ )@@ *= @@;2@@ + @@ ,BH P c@@TK@@ - @@ .HH P V@@@G 7 7@@,Y@@@@O7alloc_boxedint32_headerY&I  'I  @б@г+!t)Debuginfo5I  6I  @ 9I  :I  @@@@@@ /3<;;<<<<<@q(@A @@гL*expressionII  JI  @@ @@@ 0@@@@@ 1@@ 2 @@@VI   @@gZ@@@@7alloc_boxedint64_headerZaJ  bJ  @б@гf!t)DebuginfopJ  qJ  @ tJ  uJ  @@@@@@ 33wvvwwwww@<Z(@A @@г*expressionJ  J  @@ @@@ 4@@@@@ 5@@ 6 @@@J   @@[@@@@8alloc_boxedintnat_header[K  K  @б@г!t)DebuginfoK  K  %@ K  &K  '@@@@@@ 73@<Z(@A @@г*expressionK  +K  5@@ @@@ 8@@@@@ 9@@ : @@@K   @@\@@@@%* Integers M 7 7M 7 F@@@@@@3@,J@A,max_repr_int\Q  Q  @гŠ#intQ  Q  @@ @@@ ;@@@Q  @ g Minimal/maximal OCaml integer values whose backend representation fits in a regular OCaml integer  O H H P  @@@@@@@ ]@@@@@@@@@7,min_repr_int] R   R  @г#int (R   )R  @@ @@@ <3 * ) ) * * * * *@NI6@A@@@ 2R   @@ C^@@ @@)int_const^ =U . 2 >U . ;@б@гB!t)Debuginfo LU . > MU . G@  PU . H QU . I@@@@@@ =3 S R R S S S S S@*=(@A @@б@г 4#int bU . M cU . P@@ @@@ >@@г r*expression oU . T pU . ^@@ @@@ ?@@@@@ @@@ A# @@@+@@ B @@ C(3@@@ U . .@} D Make an integer constant from the given integer (tags the integer)  T   T  -@@@@@@@ _@@"@ f@@@@@@G*cint_const_ V _ c V _ m@б@г #int V _ p V _ s@@ @@@ D3        @`~8@A@@г )data_item V _ w V _ @@ @@@ E@@@@@ F@@ G @@@ V _ _ @@ `@@@@/targetint_const W   W  @б@г #int W   W  @@ @@@ H3        @3H@A@@г)Targetint!t)Targetint W   W  @  W   W  @@@@@@  @@@"@@ @@ % @@@ W  @@ a@@@@%5natint_const_untagged \SW \Sl@б@г!t)Debuginfo #\So $\Sx@  '\Sy (\Sz@@@@@@ 3 * ) ) * * * * *@G\(@A @@б@г)Nativeint!t =\S~ >\S@  A\S B\S@@@@@@ p @@г R*expression O\S P\S@@ @@@ q'@@@@@ r@@ s, @@@4@@ t @@ u1<@@@ a\SS@] Make a Cmm constant holding the given nativeint value. Uses [Cconst_int] instead of [Cconst_nativeint] when possible to preserve peephole optimisations.  nY   o[(R@@@@@@@ b@@"@m F@@@@@@P)add_const _ _@б@г *expression _ _@@ @@@ v3        @i8@A@@б@г s#int _ _@@ @@@ w@@б@г!t)Debuginfo _ _@  _ _@@@@@@ x) @@г *expression _ _@@ @@@ y6@@@@@ z@@ {; @@@2@@ | @@ }@5@@@H@@ ~ @@ EK@@@ _@ِ ( Add an integer to the given expression  ^ ^@@@@@@@ c@@'@ @@@@@@d(incr_int b.2 b.:@б@г *expression b.= b.G@@ @@@ 3        @}8@A@@б@г!t)Debuginfo !b.K "b.T@  %b.U &b.V@@@@@@  @@г 6*expression 3b.Z 4b.d@@ @@@ '@@@@@ @@ , @@@4@@  @@ 17@@@ Eb..@ A ! Increment/decrement of integers  Ra Sa-@@@@@@@ dd@@"@ Q *@@@@@@P(decr_int icei jceq@б@г w*expression tcet uce~@@ @@@ 3 v u u v v v v v@i~8@A@@б@г!t)Debuginfo ce ce@  ce ce@@@@@@  @@г *expression ce ce@@ @@@ '@@@@@ @@ , @@@4@@  @@ 17@@@ cee@@ e@@@@72ignore_low_bit_int g g@б@г *expression g g@@ @@@ 3        @Pe@A@@г *expression g g@@ @@@ @@@@@ @@  @@@ g @ ې K Simplify the given expression knowing its last bit will be irrelevant  e f@@@@@@@ f@@@  Đ@@@@@@33ignore_high_bit_int ksw ks@б@г *expression ks ks@@ @@@ 3        @La8@A@@г *expression ks ks@@ @@@ @@@@@ @@  @@@ *kss @ & L Simplify the given expression knowing its first bit will be irrelevant  7i!! 8jar@@@@@@@ Ig@@@ 6 @@@@@@3'add_int Nn On@б@г \*expression Yn Zn@@ @@@ 3 [ Z Z [ [ [ [ [@La8@A@@б@г m*expression jn kn@@ @@@ @@б@г s!t)Debuginfo }n ~n@  n n@@@@@@ ) @@г *expression n  n@@ @@@ 6@@@@@ @@ ; @@@2@@  @@ @5@@@H@@  @@ EK@@@ n@ % Arithmetical operations on integers  m m@@@@@@@ h@@'@  @@@@@@d'sub_int o o!@б@г *expression o$ o.@@ @@@ 3        @}8@A@@б@г *expression o2 o<@@ @@@ @@б@г !t)Debuginfo o@ oI@  oJ oK@@@@@@ ) @@г *expression oO oY@@ @@@ 6@@@@@ @@ ; @@@2@@  @@ @5@@@H@@  @@ EK@@@ "o@@ 3i@@@@K'lsl_int -pZ^ .pZe@б@г ;*expression 8pZh 9pZr@@ @@@ 3 : 9 9 : : : : :@dy@A@@б@г L*expression IpZv JpZ@@ @@@ @@б@г R!t)Debuginfo \pZ ]pZ@  `pZ apZ@@@@@@ ) @@г q*expression npZ opZ@@ @@@ 6@@@@@ @@ ; @@@2@@  @@ @5@@@H@@  @@ EK@@@ pZZ@@ j@@@@K'mul_int q q@б@г *expression q q@@ @@@ 3        @dy@A@@б@г *expression q q@@ @@@ @@б@г !t)Debuginfo q q@  q q@@@@@@ ) @@г *expression q q@@ @@@ 6@@@@@ @@ ; @@@2@@  @@ @5@@@H@@  @@ EK@@@ q@@ k@@@@K'lsr_int r r@б@г*expression r r@@ @@@ 3  @dy@A@@б@г*expressionrr@@ @@@ @@б@г !t)Debuginfo"r #r@ &r'r@@@@@@ ) @@г7*expression4r5r%@@ @@@ 6@@@@@ @@ ; @@@2@@  @@ @5@@@H@@  @@ EK@@@Kr@@\l@@@@K'asr_intVs&*Ws&1@б@гd*expressionas&4bs&>@@ @@@ 3cbbccccc@dy@A@@б@гu*expressionrs&Bss&L@@ @@@ @@б@г {!t)Debuginfos&Ps&Y@ s&Zs&[@@@@@@ ) @@г*expressions&_s&i@@ @@@ 6@@@@@ @@ ; @@@2@@  @@ @5@@@H@@  @@ EK@@@s&&@@m@@@@K'div_inttjntju@б@г*expressionuxzux@@ @@@ 3@dy@A@@б@г*expressionuxux@@ @@@ @@б@г&Lambda'is_safe&Lambdauxux@ uxux@@@@@@+ @@б@г !t)Debuginfouxux@ uxux@@@@@@C @@г*expressionuxux@@ @@@P@@@@@@@U @@@2@@ @@Z:@@@Q@@ @@_T@@@g@@ @@dj@@@0tjj@@Ap@@@@j'mod_int;v<v@б@гI*expressionFwGw@@ @@@3HGGHHHHH@@A@@б@гZ*expressionWwXw@@ @@@@@б@г'is_safe&Lambdajwkw@ nwow@@@@@@) @@б@г x!t)Debuginfoww @ w w @@@@@@A @@г*expressionww@@ @@@N@@@@@@@S @@@2@@ @@X:@@@O@@ @@]R@@@e@@ @@bh@@@v@@q@@@@h'tag_intzOSzOZ@б@г*expressionzO]zOg@@ @@@3@@A@@б@г !t)DebuginfozOkzOt@ zOuzOv@@@@@@ @@г*expressionzOzzO@@ @@@'@@@@@@@, @@@4@@ @@17@@@zOO@ . Integer tagging. [tag_int x = (x lsl 1) + 1]  y yN@@@@@@@r@@"@ 䐠@@@@@@P)untag_int#}$}@б@г1*expression.}/}@@ @@@30//00000@i~8@A@@б@г 9!t)DebuginfoC}D}@ G}H}@@@@@@ @@гX*expressionU}V}@@ @@@'@@@@@@@, @@@4@@ @@17@@@g}@c . Integer untagging. [untag_int x = (x asr 1)] t|u|@@@@@@@s@@"@sL@@@@@@P+safe_div_bi(*.*9@б@г'is_safe&Lambda<><D@ <E<L@@@@@@3@rA@A @@б@г*expressionPRP\@@ @@@@@б@г*expression`b`l@@ @@@ @@б@г)Primitive-boxed_integer)Primitiveprp{@ p|p@@@@@@: @@б@г !t)Debuginfo@ @@@@@@R @@г*expression@@ @@@_@@@@@@@d @@@2@@ @@i:@@@Q@@ @@nT@@@e@@ @@sh@@@{@@ @@x@@@**!@ 1 Specific division operations for boxed integers ,-)@@@@@@@>t@@1@+@@@@@@+safe_mod_bi)CD@б@гj'is_safe&LambdaRS@ VW@@@@@@3YXXYYYYY@A@A @@б@гk*expressionhi@@ @@@@@б@гz*expressionwx@@ @@@ @@б@г-boxed_integer)Primitive@  @@@@@@8 @@б@г!t)Debuginfo@ @@@@@@P @@г*expression!+@@ @@@]@@@@@@@b @@@2@@ @@g:@@@O@@ @@lR@@@c@@ @@qf@@@y@@ @@v@@@!@@u@@#@@|/mk_if_then_else*-@б@г!t)Debuginfo020;@ 0<0=@@@@@@3@(@A @@б@г*expressionACAM@@ @@@@@б@г!t)DebuginfoQSQ\@ Q]Q^@@@@@@) @@б@г/*expression,Qb-Ql@@ @@@8@@б@г5!t)Debuginfo?pr@p{@ Cp|Dp}@@@@@@P @@б@гV*expressionSpTp@@ @@@_@@гc*expression`a@@ @@@l@@@@@@@q @@@)@@ @@v1@@@F@@ @@{I@@@Z@@ @@b@@@w@@ @@z@@@@@ @@#@@@&@ If-Then-Else expression [mk_if_then_else dbg cond ifso_dbg ifso ifnot_dbg ifnot] associates [dbg] to the global if-then-else expression, [ifso_dbg] to the then branch [ifso], and [ifnot_dbg] to the else branch [ifnot] --@@@@@@@v@@6@k@@@@@@&mk_not+@б@г!t)Debuginfo@ @@@@@@3@A@A @@б@г*expression@@ @@@@@г*expression@@ @@@@@@@@@@# @@@+@@ @@(3@@@@ꐠ2 Boolean negation @@@@@@@ w@@"@Ӑ@@@@@@G/mk_compare_ints,)-)<@б@г!t)Debuginfo!)?")H@ %)I&)J@@@@@@3(''(((((@iA@A @@б@г:*expression7)N8)X@@ @@@@@б@гI*expressionF)\G)f@@ @@@ @@гV*expressionS)jT)t@@ @@@-@@@@@@@2 @@@)@@ @@7,@@@?@@ @@<G@@@j))@f 8 Integer and float comparison that returns int not bool wx(@@@@@@@x@@'@vO@@@@@@[1mk_compare_floats-uyu@б@г!t)Debuginfouu@ uu@@@@@@3@}A@A @@б@г*expressionuu@@ @@@@@б@г*expressionuu@@ @@@ @@г*expressionuu@@ @@@-@@@@@@@2 @@@)@@ @@7,@@@?@@ @@<G@@@uu@@y@@@@B+create_loop.!,@б@г*expression/9@@ @@@3@[y@A@@б@г!t)Debuginfo=F@ GH@@@@@@ @@г&*expression#L$V@@ @@@'@@@@@@@, @@@4@@ @@17@@@5@1 S Loop construction (while true do expr done). Used to be represented as Cloop. BC@@@@@@@Tz@@"@A@@@@@@P,raise_symbol/YquZq@б@г^!t)Debuginfohqiq@ lqmq@@@@@@3onnooooo@rA@A @@б@гA&string~qq@@ @@@@@г*expressionqq@@ @@@@@@@@@@# @@@+@@ @@(3@@@qq@3 Exception raising XXXp@@@@@@@{@@"@@@@@@@G)test_bool0@б@г!t)Debuginfo @   @@@@@@3@iA@A @@б@г*expression@@ @@@@@г*expression(@@ @@@@@@@@@@# @@@+@@ @@(3@@@@ B Convert a tagged integer into a raw integer with boolean meaning @@@@@@@$|@@"@ꐠ@@@@@@G)box_float1)KO*KX@б@г.!t)Debuginfo8K[9Kd@ <Ke=Kf@@@@@@3?>>?????@iA@A @@б@гQ*expressionNKjOKt@@ @@@@@г^*expression[Kx\K@@ @@@@@@@@@@# @@@+@@ @@(3@@@mKK@i; Float boxing and unboxing z**{*J@@@@@@@}@@"@yR@@@@@@G+unbox_float2@б@г!t)Debuginfo@ @@@@@@3@iA@A @@б@г*expression@@ @@@@@г*expression@@ @@@@@@@@@@# @@@+@@ @@(3@@@@@~@@@@.0float_of_float163@б@г!t)Debuginfo@ @@@@@@3@Pn(@A @@б@г*expression @@ @@@@@г*expression!@@ @@@@@@@@@@# @@@+@@ @@(3@@@$@ ? Conversions for 16-bit floats 12@@@@@@@C@@"@0 @@@@@@G0float16_of_float4H"&I"6@б@гM!t)DebuginfoW"9X"B@ ["C\"D@@@@@@3^]]^^^^^@iA@A @@б@гp*expressionm"Hn"R@@ @@@@@г}*expressionz"V{"`@@ @@@@@@@@@@# @@@+@@ @@(3@@@""@@@@@@@.+box_complex5@б@г!t)Debuginfo@ @@@@@@3@Pn(@A @@б@г*expression@@ @@@@@б@г*expression@@ @@@ @@г*expression@@ @@@-@@@@@@@2 @@@)@@ @@7,@@@?@@ @@<G@@@@될 $ Complex number creation and access bbb@@@@@@@A@@'@Ԑ@@@@@@[*complex_re6@б@г!*expression@@ @@@3      @t8@A@@б@г)!t)Debuginfo34@ 78@@@@@@ @@гH*expressionEF @@ @@@'@@@@@@@ , @@@4@@  @@ 17@@@W@@hB@@@@7*complex_im7b c @б@гp*expressionm n (@@ @@@ 3onnooooo@Pe@A@@б@гx!t)Debuginfo , 5@  6 7@@@@@@  @@г*expression ; E@@ @@@'@@@@@@@, @@@4@@ @@17@@@  @@C@@@@7+return_unit8||@б@г!t)Debuginfo||@ ||@@@@@@3@Yn(@A @@б@г*expression||@@ @@@@@г*expression||@@ @@@@@@@@@@# @@@+@@ @@(3@@@||@񐠠 / Make the given expression return a unit value GGG{@@@@@@@D@@"@ڐ@@@@@@G+remove_unit9@б@г'*expression$%@@ @@@3&%%&&&&&@`~8@A@@г6*expression34 @@ @@@@@@@@@@ @@@@ @< & Remove a trailing unit return if any MN@@@@@@@_E@@@L%@@@@@@32( Blocks kl@@@@@@3jiijjjjj@EZ1@A+mk_load_mut:wHLxHW@б@г,memory_chunkHZHf@@ @@@@@г)operationHjHs@@ @@@'@@@@@ @@!, @@@HH @ $ Non-atomic load of a mutable field G@@@@@@@F@@@@@@@@@K.mk_load_atomic;@б@г,memory_chunk@@ @@@"3@d_8@A@@г)operation@@ @@@#@@@@@$@@% @@@ @㐠 - Atomic load. All atomic fields are mutable. uuu@@@@@@@G@@@̐@@@@@@3-field_address< W[ Wh@б@г*expressionWkWu@@ @@@&3@La8@A@@б@г#int'Wy(W|@@ @@@'@@б@г0!t)Debuginfo:W;W@ >W?W@@@@@@() @@гO*expressionLWMW@@ @@@)6@@@@@*@@+; @@@2@@, @@-@5@@@H@@. @@/EK@@@cWW@_ y [field_address ptr n dbg] returns an expression for the address of the [n]th field of the block pointed to by [ptr] pq#V@@@@@@@H@@'@oH@@@@@@d-get_field_genL,0,=@б,memory_chunkг,memory_chunk@P@\@@ @@@03@:@A@@б@г(Asttypes,mutable_flag(Asttypes@`@h@ @i@u@@@@@@e @@б@г*expression@y@@@ @@@f+@@б@г#int@@@@ @@@g:@@б@г!t)Debuginfo@ @@@@@@hR @@г*expression@@ @@@i_@@@@@j@@kd @@@2@@l @@mi5@@@F@@n @@onI@@@Z@@p @@qsb@@h@@@s@@t@@u}@B$@@ @,,'@ [get_field_gen ?memory_chunk mut ptr n dbg] returns an expression for the access to the [n]th field of the block pointed to by [ptr]. '(+@@@@@@@9I@@7@&@@@@@@)set_fieldM>7;?7D@б@гL*expressionIGIJGS@@ @@@v3KJJKKKKK@8@A@@б@г,#intZGW[GZ@@ @@@w@@б@гl*expressioniG^jGh@@ @@@x @@б@г $%3@@ @@@'@@@@@@@, @@@4@@ @@17@@@O$$@K 0 Get the length of an array from its header Shifts by one bit less than necessary, keeping one of the GC colour bits, to save an operation when returning the length as a caml integer or when comparing it to a caml integer. Assumes that the reserved bits are clear (see get_header_masked) \##]$$@@@@@@@nT@@"@[4@@@@@@P:float_array_length_shiftedXs%4%8t%4%R@б@г*expression~%4%U%4%_@@ @@@3@i~8@A@@б@г!t)Debuginfo%4%c%4%l@ %4%m%4%n@@@@@@ @@г*expression%4%r%4%|@@ @@@'@@@@@@@, @@@4@@ @@17@@@%4%4@@U@@@@7.array_indexingY'|''|'@б#typг2machtype_component''''@@ @@@3@Rg!@A@@б@г#int''''@@ @@@@@б@г*expression''''@@ @@@ @@б@г*expression''''@@ @@@/@@б@г!t)Debuginfo''''@ ''''@@@@@@G @@г&*expression#''$''@@ @@@T@@@@@@@Y @@@2@@ @@^5@@@F@@ @@cI@@@Z@@ @@h]@@y0s@@@@@ @@qF''#@@ @I'|'|&@E  For [array_indexing ?typ log2size ptr ofs dbg] : Produces a pointer to the element of the array [ptr] on the position [ofs] with the given element [log2size] log2 element size. [ofs] is given as a tagged int expression. The optional ?typ argument is the C-- type of the result. By default, it is Addr, meaning we are constructing a derived pointer into the heap. If we know the pointer is outside the heap (this is the case for bigarray indexing), we give type Int instead. V%~%~W'1'{@@@@@@@hV@@6@U.@@@@@@.addr_array_refZm ((n ((@б@г{*expressionx ((y ((@@ @@@3zyyzzzzz@8@A@@б@г*expression (( ((@@ @@@@@б@г!t)Debuginfo (( ((@  (( ((@@@@@@) @@г*expression (( ((@@ @@@6@@@@@@@; @@@2@@ @@@5@@@H@@ @@EK@@@ ((@ Array loads and stores [unboxed_float_array_ref] and [float_array_ref] differ in the boxing of the result; [float_array_set] takes an unboxed float ''(K(@@@@@@@W@@'@@@@@@@d-int_array_ref[ (( ((@б@г*expression (( ((@@ @@@3@}8@A@@б@г *expression  ((  ()@@ @@@@@б@г!t)Debuginfo  ()   ()@   ()  ()@@@@@@) @@г -*expression * () + ()%@@ @@@6@@@@@@@; @@@2@@ @@@5@@@H@@ @@EK@@@ A ((@@ RX@@@@K7unboxed_float_array_ref\ L )&)* M )&)A@б@г Z*expression W )D)F X )D)P@@ @@@3 Y X X Y Y Y Y Y@dy@A@@б@г k*expression h )D)T i )D)^@@ @@@@@б@гq!t)Debuginfo { )D)b | )D)k@   )D)l  )D)m@@@@@@) @@г *expression  )D)q  )D){@@ @@@6@@@@@@@; @@@2@@ @@@5@@@H@@ @@EK@@@  )&)&@@ Y@@@@K/float_array_ref]  )|)  )|)@б@г *expression  )|)  )|)@@ @@@3        @dy@A@@б@г *expression  )|)  )|)@@ @@@@@б@г!t)Debuginfo  )|)  )|)@   )|)  )|)@@@@@@) @@г *expression  )|)  )|)@@ @@@6@@@@@@@; @@@2@@ @@@5@@@H@@ @@EK@@@! )|)|@@!Z@@@@K.addr_array_set^!))!))@б@г! *expression!))!))@@ @@@3!!!!!!!!@dy@A@@б@г!1*expression!.))!/))@@ @@@@@б@г!@*expression!=))!>)*@@ @@@ @@б@гF!t)Debuginfo!P)* !Q)*@ !T)*!U)*@@@@@@8 @@г!e*expression!b)*!c)*"@@ @@@E@@@@@ @@ J @@@2@@  @@ O5@@@F@@  @@TI@@@\@@ @@Y_@@@!~))@@![@@@@_5addr_array_initialize_!*#*'!*#*<@б@г!*expression!*?*A!*?*K@@ @@@3!!!!!!!!@x@A@@б@г!*expression!*?*O!*?*Y@@ @@@@@б@г!*expression!*?*]!*?*g@@ @@@ @@б@г!t)Debuginfo!*?*k!*?*t@ !*?*u!*?*v@@@@@@8 @@г!*expression!*?*z!*?*@@ @@@E@@@@@@@J @@@2@@ @@O5@@@F@@ @@TI@@@\@@ @@Y_@@@!*#*#@@"\@@@@_-int_array_set`"**"**@б@г"*expression" **" **@@ @@@3" " " " " " " " @x@A@@б@г"*expression"**"**@@ @@@@@б@г".*expression"+**",**@@ @@@  @@б@г4!t)Debuginfo">**"?**@ "B**"C**@@@@@@!8 @@г"S*expression"P**"Q**@@ @@@"E@@@@@#@@$J @@@2@@% @@&O5@@@F@@' @@(TI@@@\@@) @@*Y_@@@"l**@@"}]@@@@_/float_array_seta"w**"x**@б@г"*expression"**"*+@@ @@@+3""""""""@x@A@@б@г"*expression"*+"*+@@ @@@,@@б@г"*expression"*+"*+@@ @@@- @@б@г!t)Debuginfo"*+!"*+*@ "*++"*+,@@@@@@.8 @@г"*expression"*+0"*+:@@ @@@/E@@@@@0@@1J @@@2@@2 @@3O5@@@F@@4 @@5TI@@@\@@6 @@7Y_@@@"**@@"^@@@@_ <") Strings "+<+<"+<+J@@@@@@3""""""""@q@A-string_lengthb#+L+P#+L+]@б@г#*expression# +L+`# +L+j@@ @@@8@@б@г !t)Debuginfo#+L+n# +L+w@ ##+L+x#$+L+y@@@@@@92 @@г#4*expression#1+L+}#2+L+@@ @@@:?@@@@@;@@<D @@@2@@= @@>I5@@@#C+L+L@@#T_@@@@O0bigstring_lengthc#N++#O++@б@г#\*expression#Y++#Z++@@ @@@?3#[#Z#Z#[#[#[#[#[@hc@A@@б@г d!t)Debuginfo#n++#o++@ #r++#s++@@@@@@@ @@г#*expression#++#++@@ @@@A'@@@@@B@@C, @@@4@@D @@E17@@@#++@@#`@@@@7 #k) Objects #++#++@@@@@@3########@I^@A*lookup_tagd#",,#",,@б@г#*expression#",,#",,@@ @@@F@@б@г#*expression#",,#",,@@ @@@G)@@б@г !t)Debuginfo#",,#",,@ #",,#",,@@@@@@HA @@г#*expression#",,#",,@@ @@@IN@@@@@J@@KS @@@2@@L @@MX5@@@F@@N @@O]I@@@$",,@" Lookup a method by its hash, using [caml_get_public_method] Arguments : - obj : the object from which to lookup - tag : the hash of the method name, as a tagged integer $++$!,T,@@@@@@@$%a@@'@"#될@@@@@@|,lookup_labele$*)--$+)--@б@г$8*expression$5)--$6)--@@ @@@P3$7$6$6$7$7$7$7$7@8@A@@б@г$I*expression$F)--$G)--@@ @@@Q@@б@г!O!t)Debuginfo$Y)--$Z)--@ $])--$^)--@@@@@@R) @@г$n*expression$k)--$l)--@@ @@@S6@@@@@T@@U; @@@2@@V @@W@5@@@H@@X @@YEK@@@$)--@"~ Lookup a method by its offset in the method table Arguments : - obj : the object from which to lookup - lab : the position of the required method in the object's method array, as a tagged integer $$,,$(--@@@@@@@$b@@'@"$g@@@@@@d2call_cached_methodf$2/N/R$2/N/d@б@г$*expression$3/g/i$3/g/s@@ @@@Z3$$$$$$$$@}8@A@@б@г$*expression$3/g/w$3/g/@@ @@@[@@б@г$*expression$3/g/$3/g/@@ @@@\ @@б@г$*expression$3/g/$3/g/@@ @@@]/@@б@г$\$list$3/g/$3/g/@г$*expression$3/g/$3/g/@@ @@@^H@@@@@@`M @@б@г"!t)Debuginfo%4//%4//@ %4//%4//@@@@@@ae @@г%&*expression%#4//%$4//@@ @@@br@@@@@c@@dw @@@3@@e @@f|:@@@U@@g @@hX@@@i@@i @@jl@@@}@@k @@l@@@@@m @@n#@@@%I2/N/N&@#E G Lookup and call a method using the method cache Arguments : - obj : the object from which to lookup - tag : the hash of the method name, as a tagged integer - cache : the method cache array - pos : the position of the cache entry in the cache array - args : the additional arguments to the method call %V+..%W1//M@@@@@@@%hc@@6@#U%.@@@@@@"%;- Allocations %t6//%u6//@@@@@@3%s%r%r%s%s%s%s%s@1@A*make_allocg%90"0&%90"00@б@г"!t)Debuginfo%90"03%90"0<@ %90"0=%90"0>@@@@@@o# @@б@г%u#int%90"0B%90"0E@@ @@@p2@@б@г%$list%90"0T%90"0X@г%*expression%90"0I%90"0S@@ @@@qK@@@@@@sP @@г%*expression%90"0\%90"0f@@ @@@t]@@@@@u@@vb @@@8@@w @@xg;@@@L@@y @@zlT@@@%90"0"@#ᐠ 7 Allocate a block of regular values with the given tag %8//%8/0!@@@@@@@&d@@'@#%ʐ@@@@@@0make_float_alloch& <00& <00@б@г#!t)Debuginfo&<00&<00@ &<00&<00@@@@@@{3&&&&&&&&@A@A @@б@г&#int&.<00&/<00@@ @@@|@@б@г%$list&=<00&><00@г&J*expression&G<00&H<00@@ @@@}*@@@@@@/ @@г&\*expression&Y<00&Z<00@@ @@@<@@@@@@@A @@@8@@ @@F;@@@N@@ @@KV@@@&p<00@$l 7 Allocate a block of unboxed floats with the given tag &};0h0h&~;0h0@@@@@@@&e@@'@$|&U@@@@@@j#&b1 Bounds checking &>00&>01@@@@@@3&&&&&&&&@|1@A/make_checkboundi&A1.12&A1.1A@б@г#!t)Debuginfo&A1.1D&A1.1M@ &A1.1N&A1.1O@@@@@@# @@б@г&7$list&A1.1^&A1.1b@г&*expression&A1.1S&A1.1]@@ @@@<@@@@@@A @@г&*expression&A1.1f&A1.1p@@ @@@N@@@@@@@S @@@8@@ @@X@@@@&A1.1.@$? Generate a [Ccheckbound] term '@1 1 '@1 1-@@@@@@@'f@@"@%&ݐ@@@@@@w+check_bound|'G2o2s'G2o2~@б@гC'is_safe&Lambda'+H22',H22@ '/H22'0H22@@@@@@3'2'1'1'2'2'2'2'2@A@A @@б@г2Clambda_primitives2memory_access_size2Clambda_primitives'GH22'HH22@ 'KH22'LH22@@@@@@n @@б@г$U!t)Debuginfo'_H22'`H22@ 'cH22'dH22@@@@@@o4 @@б@г'v*expression'sI22'tI22@@ @@@pC@@б@г'*expression'I22'I22@@ @@@qR@@б@г'*expression'I22'I22@@ @@@ra@@г'*expression'J22'J23@@ @@@sn@@@@@t@@us @@@)@@v @@wx,@@@=@@x @@y}@@@@Q@@z @@{Y@@@n@@| @@}v@@@@@~ @@#@@@'G2o2o&@% [check_bound safety access_size dbg length a2 k] prefixes expression [k] with a check that reading [access_size] bits starting at position [a2] in a string/bytes value of length [length] is within bounds, unless [safety] is [Unsafe]. 'C1r1r'F2R2n@@@@@@@'i@@6@%'@@@@@@&opaque}'M3"3&'M3"3,@б@г'*expression'M3"3/'M3"39@@ @@@3''''''''@8@A@@б@г$!t)Debuginfo(M3"3=( M3"3F@ ( M3"3G( M3"3H@@@@@@ @@г(*expression(M3"3L(M3"3V@@ @@@'@@@@@@@, @@@4@@ @@17@@@(,M3"3"@&(5 Sys.opaque_identity (9L33(:L33!@@@@@@@(Kj@@"@&8(@@@@@@P%(? Generic application functions (WO3X3X(XO3X3|@@@@@@3(V(U(U(V(V(V(V(V@bw1@A2apply_function_sym~(cS34(dS34@б@г(@#int(nS34(oS34@@ @@@@@г(>&string({S34(|S34$@@ @@@'@@@@@@@, @@@(S33 @& z Get the symbol for the generic application with [n] arguments, and ensure its presence in the set of defined symbols (Q3~3~(R33@@@@@@@(k@@@&(m@@@@@@K2curry_function_sym(X55(X55$@б@г(#int(X55'(X55*@@ @@@3((((((((@d_8@A@@г(&string(X55.(X554@@ @@@@@@@@@@ @@@(X55 @&ϐ If [n] is positive, get the symbol for the generic currying wrapper with [n] arguments, and ensure its presence in the set of defined symbols. Otherwise, do the same for the generic tuple wrapper with [-n] arguments. (U4&4&(W45 @@@@@@@(l@@@&(@@@@@@3&E(Ő+ Bigarrays (Z5656(Z565F@@@@@@3((((((((@EZ1@A,bigarray_get) d66) d66@б@г(Ơ$bool)e66)e66@@ @@@@@б@г@-bigarray_kind&Lambda)(e66))e66@ ),e66)-e66@@@@@@2 @@б@гX/bigarray_layout&Lambda)@e66)Ae66@ )De66)Ee67@@@@@@J @@б@г)W*expression)Tf7 7 )Uf7 7@@ @@@Y@@б@г(Р$list)cf7 7$)df7 7(@г)p*expression)mf7 7)nf7 7#@@ @@@r@@@@@@w @@б@г&{!t)Debuginfo)f7 7,)f7 75@ )f7 76)f7 77@@@@@@ @@г)*expression)g7;7=)g7;7G@@ @@@@@@@@@@ @@@3@@ @@:@@@U@@ @@X@@@i@@ @@q@@@@@ @@@@@@@ @@#@@@)d66&@' l [bigarray_get unsafe kind layout b args dbg] - unsafe : if true, do not insert bound checks - kind : see [Lambda.bigarray_kind] - layout : see [Lambda.bigarray_layout] - b : the bigarray to load from - args : a list of tagged integer expressions, corresponding to the indices in the respective dimensions - dbg : debugging information )\5H5H)c66@@@@@@@)m@@6@')@@@@@@,bigarray_set)k77)k77@б@г)$bool)l77)l77@@ @@@3))))))))@8@A@@б@г-bigarray_kind&Lambda*l77*l77@ *l77*l77@@@@@@ @@б@г1/bigarray_layout&Lambda*l77*l78@ *l78*l78@@@@@@2 @@б@г*0*expression*-m88*.m88"@@ @@@A@@б@г)$list*<m881*=m885@г*I*expression*Fm88&*Gm880@@ @@@Z@@@@@@_ @@б@г*]*expression*Zm889*[m88C@@ @@@n@@б@г'c!t)Debuginfo*mm88G*nm88P@ *qm88Q*rm88R@@@@@@ @@г**expression*n8V8X*n8V8b@@ @@@@@@@@@@ @@@2@@ @@5@@@G@@ @@N@@@i@@ @@l@@@}@@ @@@@@@@ @@#@@@@@ @@(@@@*k77+@( x [bigarray_set unsafe kind layout b args newval dbg] Same as [bigarray_get], with [newval] the value being assigned *i7I7I*j77@@@@@@@*n@@;@(*@@@@@@(*? Operations on 32-bit integers *p8d8d*p8d8@@@@@@3********@1@A&low_32*s88*s88@б@г'!t)Debuginfo*s88*s88@ *s88*s88@@@@@@# @@б@г+*expression+s88+s88@@ @@@2@@г+*expression+s89+s89 @@ @@@?@@@@@@@D @@@)@@ @@I1@@@+#s88@) I [low_32 _ x] is a value which agrees with x on at least the low 32 bits +0r88+1r88@@@@@@@+Bo@@"@)/+@@@@@@h.sign_extend_32+Gv9@9D+Hv9@9R@б@г(L!t)Debuginfo+Vv9@9U+Wv9@9^@ +Zv9@9_+[v9@9`@@@@@@3+]+\+\+]+]+]+]+]@A@A @@б@г+o*expression+lv9@9d+mv9@9n@@ @@@@@г+|*expression+yv9@9r+zv9@9|@@ @@@@@@@@@@# @@@+@@ @@(3@@@+v9@9@@) + Sign extend from 32 bits to the word size +u99+u99?@@@@@@@+p@@"@)+p@@@@@@G.zero_extend_32+y99+y99@б@г(!t)Debuginfo+y99+y99@ +y99+y99@@@@@@3++++++++@iA@A @@б@г+*expression+y99+y99@@ @@@@@г+*expression+y99+y99@@ @@@@@@@@@@# @@@+@@ @@(3@@@+y99@) + Zero extend from 32 bits to the word size ,x9~9~,x9~9@@@@@@@,q@@"@)+ؐ@@@@@@G)e+吠/ Boxed numbers ,{99,{9:@@@@@@3,,,,,,,,@Yw1@A2caml_nativeint_ops,*~:=:A,+~:=:S@г+&string,3~:=:V,4~:=:\@@ @@@@@@,;~:=:=@*7 4 Global symbols for the ops field of boxed integers ,H}::,I}::<@@@@@@@,Zr@@@*G, @@@@@@7.caml_int32_ops,_:]:a,`:]:o@г,+&string,h:]:r,i:]:x@@ @@@3,j,i,i,j,j,j,j,j@NI6@A@@@,r:]:] @@,s@@ @@.caml_int64_ops,}:y:},~:y:@г,I&string,:y:,:y:@@ @@@3,,,,,,,,@2@A@@@,:y:y @@,t@@ @@+box_int_gen,::,::@б@г)!t)Debuginfo,::,::@ ,::,::@@@@@@3,,,,,,,,@*=(@A @@б@г-boxed_integer)Primitive,::,::@ ,::,:; @@@@@@ @@б@г,*expression,:; ,:;@@ @@@)@@г,*expression,:;,:;%@@ @@@6@@@@@@@; @@@)@@ @@@1@@@H@@ @@EP@@@,::@* 3 Box a given integer, without sharing of constants - ::- ::@@@@@@@-u@@'@+,ᐠ@@@@@@d)unbox_int- ;J;N-!;J;W@б@г*%!t)Debuginfo-/;Z;\-0;Z;e@ -3;Z;f-4;Z;g@@@@@@3-6-5-5-6-6-6-6-6@A@A @@б@гw-boxed_integer)Primitive-I;Z;k-J;Z;t@ -M;Z;u-N;Z;@@@@@@ @@б@г-`*expression-];Z;-^;Z;@@ @@@)@@г-m*expression-j;Z;-k;Z;@@ @@@6@@@@@@@; @@@)@@ @@@1@@@H@@ @@EP@@@-;J;J@+}= Unbox a given boxed integer -;';'-;';I@@@@@@@-v@@'@+-f@@@@@@d1make_unsigned_int-;;-;<@б@г-boxed_integer)Primitive-<< -<<@ -<<-<< @@@@@@3--------@A@A @@б@г-*expression-<<$-<<.@@ @@@@@б@г*!t)Debuginfo-<<2-<<;@ -<<<-<<=@@@@@@) @@г-*expression-<@б@г0O*expression0L>> 0M>>@@ @@@*30N0M0M0N0N0N0N0N@dy@A@@б@г0`*expression0]>>0^>>"@@ @@@+@@б@г0o*expression0l>>&0m>>0@@ @@@, @@б@г-u!t)Debuginfo0>>40>>=@ 0>>>0>>?@@@@@@-8 @@г0*expression0>>C0>>M@@ @@@.E@@@@@/@@0J @@@2@@1 @@2O5@@@F@@3 @@4TI@@@\@@5 @@6Y_@@@0==@@0}@@@@_.05 Raw memory accesses 0>O>O0>O>i@@@@@@300000000@q@A-unaligned_set0>>0>>@б@г 2memory_access_size2Clambda_primitives0>>0>>@ 0>>0>>@@@@@@7# @@б@г0*expression0>>0>>@@ @@@82@@б@г1*expression0>>0>>@@ @@@9A@@б@г1*expression1 >>1 >?@@ @@@:P@@б@г.!t)Debuginfo1>?1 >?@ 1#>?1$>?@@@@@@;h @@г14*expression11>?12>?@@ @@@<u@@@@@=@@>z @@@2@@? @@@5@@@F@@A @@BI@@@Z@@C @@D]@@@n@@E @@Fv@@@1R>>!@/N ) [unaligned_set size ptr idx newval dbg] 1_>k>k1`>k>@@@@@@@1q~@@1@/^17@@@@@@.unaligned_load1v?I?M1w?I?[@б@г @2memory_access_size2Clambda_primitives1?^?`1?^?r@ 1?^?s1?^?@@@@@@G311111111@A@A @@б@г1*expression1??1??@@ @@@H@@б@г1*expression1??1??@@ @@@I @@б@г.!t)Debuginfo1??1??@ 1??1??@@@@@@J8 @@г1*expression1??1??@@ @@@KE@@@@@L@@MJ @@@2@@N @@OO5@@@F@@P @@QTI@@@\@@R @@SYd@@@1?I?I@/琠 # [unaligned_load size ptr idx dbg] 1? ? 1? ?H@@@@@@@2 @@,@/1А@@@@@@x)box_sized2??2??@б@г 2memory_access_size2Clambda_primitives2??2?@@ 2"?@2#?@@@@@@@T32%2$2$2%2%2%2%2%@A@A @@б@г/.!t)Debuginfo28@@29@@(@ 2<@@)2=@@*@@@@@@U @@б@г2O*expression2L@@.2M@@8@@ @@@V)@@г2\*expression2Y@@<2Z@@F@@ @@@W6@@@@@X@@Y; @@@)@@Z @@[@1@@@H@@\ @@]EP@@@2p??@0l: [box_sized size dbg exp] 2}??2~??@@@@@@@2@@'@0|2U@@@@@@d/2b, Primitives 2@H@H2@H@Y@@@@@@322222222@v1@A1simplif_primitive2@[@_2@[@p@б@г q)primitive2Clambda_primitives2@s@u2@s@@ 2@s@2@s@@@@@@@^# @@г )primitive2Clambda_primitives2@s@2@s@@ 2@s@2@s@@@@@@@_9 @@@@@`@@a>& @@@2@[@[@@2@@@@DA+/unary_primitiveA2@@2@@@@;@@@A@2*expression@@@c@@h@/!t@@@d@@f3 *expression@@@e@@g@@i@@@@3@@3 @@@@@@3@@@Aб@г3@@3@@@@"333333333@zu<2;@@@A:@@@@b@@@@@@@@A@@б@г()Debuginfo3,@@3-@@@/30@@31@@@@@7@@г2339@@1@@8%2@@C&3@@M'*4@@6@@33:39393:3:3:3:3:@'@A76@*floatfield3GAQAU3HAQA_@б@г3$#int3RAQAb3SAQAe@@ @@@33T3S3S3T3T3T3T3T@Bsm@A@@гw/unary_primitive3aAQAi3bAQAx@@ @@@@@@@@@@ @@@3nAQAQ @1j X Return the n-th field of a float array (or float-only record), as an unboxed float 3{@@3|A<AP@@@@@@@3@@@1z3S@@@@@@3.int_as_pointer3AA3AA@г/unary_primitive3AA3AA@@ @@@333333333@J_6@A@@@3AA @1: Int_as_pointer primitive 3AzAz3AzA@@@@@@@3@@@13@@@@@@!*raise_prim3AA3AA@б@г$*raise_kind&Lambda3AA3AA@ 3AA3AA@@@@@@333333333@CVA@A @@г/unary_primitive3AA3AB @@ @@@@@@@@@@ @@@3AA @11 Raise primitive 4AA4AA@@@@@@@4@@@23ސ@@@@@@3&negint4B8B<4B8BB@гBB7@@@@@@@4O@@@2<4@@@@@@!)offsetint4TBB4UBB@б@г41#int4_BB4`BB@@ @@@34a4`4`4a4a4a4a4a@:M8@A@@г/unary_primitive4nBB4oBB@@ @@@@@@@@@@ @@@4{BB @2w + Add a constant number to an OCaml integer 4BVBV4BVB@@@@@@@4@@@24`@@@@@@3)offsetref4BB4BB@б@г4|#int4BB4BB@@ @@@344444444@La8@A@@гϠ/unary_primitive4BC4BC@@ @@@@@@@@@@ @@@4BB @2 5 Add a constant number to an OCaml integer reference 4BB4BB@@@@@@@4@@@24@@@@@@3+arraylength4CVCZ4CVCe@б@г&*array_kind&Lambda4CVCh4CVCn@ 4CVCo4CVCy@@@@@@354455555@UjA@A @@г#/unary_primitive5 CVC}5CVC@@ @@@@@@@@@@ @@@5CVCV @3 > Return the length of the array argument, as an OCaml integer 5'CC5(CCU@@@@@@@59@@@3&4@@@@@@3&bbswap5>CC5?CC@б@г${-boxed_integer)Primitive5MCC5NCC@ 5QCC5RCC@@@@@@35T5S5S5T5T5T5T5T@UsA@A @@гw/unary_primitive5aCC5bCD@@ @@@@@@@@@@ @@@5nCC @3j C Byte swap primitive Operates on Cmm integers (unboxed values) 5{CC5|CC@@@@@@@5@@@3z5S@@@@@@3'bswap165DcDg5DcDn@г/unary_primitive5DcDq5DcD@@ @@@355555555@Jh6@A@@@5DcDc @3 M 16-bit byte swap primitive Operates on Cmm integers (untagged integers) 5DD5D/Db@@@@@@@5@@@35@@@@@@!A+0binary_primitiveB5DD5DD@@;@@A@5*expression@@@@@@5*expression@@@@@@2!t@@@@@5*expression@@@@@@@@@@@@@5DD5DD@@@@6@@@Aб@г$%5DD5DD@@+355555555@_r]:;@@@AB@@@@@@@@@@@@A@@б@г126DD6DD@@8@@б@г2)Debuginfo6DD6DD@96"DD6#DD@@@A(@@г<=6+DD;@@B/<@@M0=@@W1>@@a25?@@A@@36-6,6,6-6-6-6-6-@2@ABA@A+/assignment_kindC6;DD6<DD@@;@@+Caml_modify@@6EDD6FDD@@6W@/Caml_initialize@@6NDD6ODE@@6`@&Simple@@6WDE6XDE@@6i@@@A@@@@@6[DD@@A@6l@@#@@@@@#6gDD@@@@@#6mDE@@@@@@A@@@36l6k6k6l6l6l6l6l@r@A@(setfield6zEIEM6{EIEU@б@г6W#int6EXEZ6EXE]@@ @@@366666666@UO@A@@б@г'4immediate_or_pointer&Lambda6EXEa6EXEg@ 6EXEh6EXE|@@@@@@ @@б@г' Operations on OCaml integers 7FF7FF@@@@@@@7@@@57_@@@@@@!,sub_int_caml7FF7FF@гݠ0binary_primitive7FF7FF@@ @@@377777777@8K6@A@@@7FF @@7@@ @@,mul_int_caml7FF7FF@г0binary_primitive7FG7FG@@ @@@377777777@2@A@@@7FF @@7@@ @@,div_int_caml7GG7GG!@б@г)'is_safe&Lambda7GG$7GG*@ 7GG+7GG2@@@@@@377777777@*=(@A @@г30binary_primitive7GG67GGF@@ @@@@@@@@@@ @@@8 GG @@8@@@@,mod_int_caml8GGGK8GGGW@б@г)<'is_safe&Lambda8$GGGZ8%GGG`@ 8(GGGa8)GGGh@@@@@@38+8*8*8+8+8+8+8+@<Z(@A @@гn0binary_primitive88GGGl89GGG|@@ @@@@@@@@@@ @@@8EGGGG @@8V@@@@,and_int_caml8PG}G8QG}G@г0binary_primitive8YG}G8ZG}G@@ @@@38[8Z8Z8[8[8[8[8[@1O@A@@@8cG}G} @@8t@@ @@+or_int_caml8nGG8oGG@г0binary_primitive8wGG8xGG@@ @@@38y8x8x8y8y8y8y8y@2@A@@@8GG @@8@@ @@,xor_int_caml8GG8GG@гˠ0binary_primitive8GG8GG@@ @@@388888888@2@A@@@8GG @@8@@ @@,lsl_int_caml8GG8GG@г預0binary_primitive8GG8GH @@ @@@388888888@2@A@@@8GG @@8@@ @@,lsr_int_caml8H H8H H@г0binary_primitive8H H8H H/@@ @@@388888888@2@A@@@8H H  @@8@@ @@,asr_int_caml8H0H48H0H@@г%0binary_primitive8H0HC8H0HS@@ @@@388888888@2@A@@@8H0H0 @@9 @@ @@-int_comp_caml9HTHX9HTHe@б@г*+2integer_comparison&Lambda9HTHh9HTHn@ 9HTHo9HTH@@@@@@399999999@*=(@A @@г]0binary_primitive9'HTH9(HTH@@ @@@@@@@@@@ @@@94HTHT @@9E@@@@69 ? Strings, Bytes and Bigstrings 9FHH9GHH@@@@@@39E9D9D9E9E9E9E9E@,J@A0stringref_unsafe9RHH9SHI@г0binary_primitive9[HI9\HI"@@ @@@@@@9cHH@7_ 8 Regular string/bytes access. Args: string/bytes, index 9pHH9qHH@@@@@@@9@@@7o9H@@@@@@7.stringref_safe9I#I'9I#I5@гƠ0binary_primitive9I#I89I#IH@@ @@@399999999@NI6@A@@@9I#I# @@9@@ @@+string_load9II9II@б@гo2memory_access_size2Clambda_primitives9II9II@ 9II9II@@@@@@399999999@*=(@A @@б@г*'is_safe&Lambda9II9II@ 9II9II@@@@@@ @@г0binary_primitive9II9II@@ @@@'@@@@@@@, @@@4@@ @@ 1<@@@9II@7 A Load by chunk from string/bytes, bigstring. Args: string, index 9IJIJ:IJI@@@@@@@:@@"@79א@@@@@@P.bigstring_load:II:IJ@б@г2memory_access_size2Clambda_primitives:%JJ:&JJ@ :)JJ:*JJ-@@@@@@ 3:,:+:+:,:,:,:,:,@rA@A @@б@г+W'is_safe&Lambda:?JJ1:@JJ7@ :CJJ8:DJJ?@@@@@@  @@г0binary_primitive:QJJC:RJJS@@ @@@ '@@@@@ @@, @@@4@@ @@1<@@@:cII@@:t@@@@77:<( Arrays :uJUJU:vJUJb@@@@@@3:t:s:s:t:t:t:t:t@Ig@A/arrayref_unsafe:JJ:JJ@б@г+*array_kind&Lambda:JJ:JJ@ :JJ:JJ@@@@@@# @@гؠ0binary_primitive:JJ:JJ@@ @@@0@@@@@@@5 @@@:JJ @8 " Array access. Args: array, index :JdJd:JdJ@@@@@@@:@@@8:@@@@@@T-arrayref_safe:JJ:JJ@б@г+*array_kind&Lambda:JJ:JJ@ :JJ:JJ@@@@@@3::::::::@vqA@A @@г,0binary_primitive:JJ:JK@@ @@@@@@@@@@ @@@;JJ @@;@@@@A+1ternary_primitiveD;KK;KK@@;@@%A@;!*expression@@@@@%@;**expression@@@@@#@;3*expression@@@@@!@83!t@@@@@;B*expression@@@@@ @@"@@$@@&@@@@;>KK;?KKa@@@@;P@@@Aб@г-.;IKK;JKK(@@43;H;G;G;H;H;H;H;H@aMC;@@@AK@@@I@@@@@@@@@A@@б@г:;;_KK,;`KK6@@A@@б@г;<;iKK:;jKKD@@B @@б@г<)Debuginfo;vKKH;wKKQ@C;zKKR;{KKS@@@K2@@гFG;KKWE@@L9F@@W:G@@a;H@@k<)I@@u=@J@@L@@3;;;;;;;;@=@AML@1setfield_computed;KK;KK@б@г,4immediate_or_pointer&Lambda;KK;KK@ ;KK;KL@@@@@@W3;;;;;;;;@a@A @@б@г,*expression>PP>PP@@ @@@yN@@@@@z@@{S @@@2@@| @@}X5@@@F@@~ @@]I@@@>PP@<: [transl_isout h arg dbg] >'PfPf>(PfP@@@@@@@>9@@'@<&=@@@@@@|A+*switch_argE>? PP>@ PP@@;@@&Tagged>S*expression@@@@@>O PP>P PP@@>a@(UntaggedÐ>b*expression@@@@@>^ PP>_ PQ@<[ } [make_switch arg cases actions dbg] : Generate a Cswitch construct, or optimize as a static table lookup when possible. >l!QQ>m#QQ@@@@@@@>~@@@A@@@@@>p PP@@@@>@@#00(>w PP@'@г12> PP0@@73>}>|>|>}>}>}>}>}@kH;@@@A@@@@@@@@@A6@@@@8@#44> PP> PQ@@г67> PQ5@@<6@@@@8<>i65@55@@@5@5@@A@1@@3>>>>>>>>@@A2C@+make_switchĠ>$QQ>$QQ@б@гv*switch_arg>%QQ>%QQ@@ @@@3>>>>>>>>@:{@A@@б@г>>%array>%QQ>%QQ@г>#int>%QQ>%QQ@@ @@@@@@@@@  @@б@г>\%array>%QQ>%QQ@В@г>*expression>%QQ>%QQ@@ @@@=@@@г;!t)Debuginfo?%QQ?%QQ@ ? %QQ? %QQ@@@@@@U @@@@ @ @@\% @@@: @@@a?%QQ8@@б@г< !t)Debuginfo?*%QQ?+%QQ@ ?.%QQ?/%QQ@@@@@@z @@г??*expression?<&QQ?=&QR@@ @@@@@@@@@@ @@@4@@ @@0@@@z@@ @@@@@@@ @@@@@?X$QQ@@?i@@@@1transl_int_switchŠ?c)R=RA?d)R=RR@б@г 4 [transl_int_switch loc arg low high cases default] @.(RR@/(RR<@@@@@@@@@@@6@>-@@@@@@@5transl_switch_clambdaƠ@E.RR@F.RS@б@г=J!t)Debuginfo@T/SS @U/SS@ @X/SS@Y/SS@@@@@@3@[@Z@Z@[@[@[@[@[@A@A @@б@г@m*expression@j/SS@k/SS#@@ @@@@@б@г?%array@y/SS+@z/SS0@г@U#int@/SS'@/SS*@@ @@@*@@@@@@/ @@б@г@%array@/SS?@/SSD@г@*expression@/SS4@/SS>@@ @@@H@@@@@@M @@г@*expression@/SSH@/SSR@@ @@@Z@@@@@@@_ @@@9@@ @@d@@@@[@@ @@i^@@@q@@ @@ny@@@@.RR@>ː - [transl_switch_clambda loc arg index cases] @-RR@-RR@@@@@@@@@@,@>@@@@@@@0strmatch_compileǠ@2SS@2SS@б@г=!t)DebuginfoA3SSA3SS@ A3SSA3SS@@@@@@3A AAA A A A A @A@A @@б@гA*expressionA3SSA3SS@@ @@@@@б@г@w&optionA'3SSA(3SS@гA4*expressionA13SSA23SS@@ @@@*@@@@@@/ @@б@г@$listAE4SSAF4SS@В@гA&stringAS4SSAT4SS@@ @@@L@@@гAe*expressionAb4SSAc4SS@@ @@@[@@@@@ @@b @@@1 @@@gAt4SS/@@гA*expressionA|4SSA}4SS@@ @@@u@@@@@@@z @@@T@@ @@[@@@v@@ @@y@@@@@ @@@@@A2SS@? * [strmatch_compile dbg arg default cases] A1STSTA1STS@@@@@@@A@@,@?A}@@@@@@? A $ Closures and function applications A6SSA6ST$@@@@@@3AAAAAAAA@1@A*ptr_offsetȠA9TdThA9TdTr@б@гA*expressionA9TdTuA9TdT@@ @@@@@б@гA#intA9TdTA9TdT@@ @@@)@@б@г>!t)DebuginfoA9TdTA9TdT@ B9TdTB9TdT@@@@@@A @@гB*expressionB9TdTB9TdT@@ @@@N@@@@@@@S @@@2@@ @@X5@@@F@@ @@]I@@@B%9TdTd@@! 8 Adds a constant offset to a pointer (for infix access) B28T&T&B38T&Tc@@@@@@@BD@@'@@1B @@@@@@|,direct_applyɠBI<TTBJ<TT@б@гB&stringBT<TTBU<TT@@ @@@3BVBUBUBVBVBVBVBV@8@A@@б@гAҠ$listBe<TUBf<TU@гBr*expressionBo<TTBp<TU@@ @@@@@@@@@  @@б@г?}!t)DebuginfoB<TU B<TU@ B<TUB<TU@@@@@@8 @@гB*expressionB<TUB<TU#@@ @@@E@@@@@@@J @@@3@@ @@O:@@@W@@ @@TZ@@@B<TT@@ / Direct application of a function via a symbol B;TTB;TT@@@@@@@B@@'@@B@@@@@@s-generic_applyʠBCVbVfBCVbVs@б@г):,mutable_flag(AsttypesBDVvVxBDVvV@ BDVvVBDVvV@@@@@@3BBBBBBBB@A@A @@б@гB*expressionBEVVBEVV@@ @@@@@б@гBu$listCEVVC EVV@гC*expressionCEVVCEVV@@ @@@*@@@@@@/ @@б@г@ !t)DebuginfoC*EVVC+EVV@ C.EVVC/EVV@@@@@@G @@гC?*expressionC<EVVC=EVV@@ @@@T@@@@@@@Y @@@3@@ @@^:@@@U@@ @@cX@@@k@@ @@hs@@@CXCVbVb@AT 7 Generic application of a function to one or several arguments. The mutable_flag argument annotates the loading of the code pointer from the closure. The Cmmgen code uses a mutable load by default, with a special case when the load is from (the first function of) the currently defined closure. Ce>U%U%CfBV<Va@@@@@@@Cw@@,@AdC=@@@@@@$sendˠC|NXjXnC}NXjXr@б@г4)meth_kind&LambdaCOXuXwCOXuX}@ COXuX~COXuX@@@@@@3CCCCCCCC@A@A @@б@гC*expressionCOXuXCOXuX@@ @@@@@б@гC*expressionCOXuXCOXuX@@ @@@ @@б@гC,$listCOXuXCOXuX@гC*expressionCOXuXCOXuX@@ @@@9@@@@@@> @@б@г@!t)DebuginfoCPXXCPXX@ CPXXCPXX@@@@@@V @@гC*expressionCPXXCPXX@@ @@@c@@@@@@@h @@@3@@ @@ m:@@@U@@  @@ rX@@@i@@  @@ wl@@@@@ @@|@@@DNXjXj!@B  Method call : [send kind met obj args dbg] - [met] is a method identifier, which can be a hashed variant or an index in [obj]'s method table, depending on [kind] - [obj] is the object whose method is being called - [args] is the extra arguments to the method call (Note: I'm not aware of any way for the frontend to generate any arguments other than the cache and cache position) D!GVVD"MXIXi@@@@@@@D3@@1@B C@@@@@@AD7 Generic Cmm fragments D?RXXD@RXX@@@@@@3D>D=D=D>D>D>D>D>@1@A1generic_functionsϠDKUYYDLUYY,@б@гD$boolDVUYY/DWUYY3@@ @@@@@б@гCҠ$listDeUYYMDfUYYQ@г*Cmx_format*unit_infos*Cmx_formatDuUYY7DvUYYA@ DyUYYBDzUYYL@@@@@@H> @@@"@@@JC@@гC$listDUYY`DUYYd@гD&phrase#CmmDUYYUDUYYX@ DUYYYDUYY_@@@@@@Kc @@@ @@@Mh@@@.@@N @@Om:"@@@[@@P @@Qr^'@@@DUYY*@B< Generate generic functions DTXXDTXY@@@@@@@D@@:@BD@@@@@@/placeholder_dbgРDWYfYjDWYfYy@б@гD$unitDWYfY|DWYfY@@ @@@R3DDDDDDDD@8@A@@гA!t)DebuginfoDWYfYDWYfY@ DWYfYDWYfY@@@@@@S @@@ @@T@@U# @@@E WYfYf@@E@@@@#3placeholder_fun_dbgѠEXYYEXYY@б*human_nameгD堐&stringE"XYYE#XYY@@ @@@V3E$E#E#E$E$E$E$E$@>S!@A@@гB+!t)DebuginfoE5XYYE6XYY@ E9XYYE:XYY@@@@@@W @@) @@X@@YEEXYY @@@EHXYY@@EY@@@@$+entry_pointҠES[YYET[YY@б@гDˠ$listE^[YYE_[YY@гE+&stringEh[YYEi[YY@@ @@@Z3EjEiEiEjEjEjEjEj@G^)@A@@@ @@@\ @@гE&phraseE|[YZE}[YZ@@ @@@]@@@@@^@@_ @@@E[YY @C- Entry point EZYYEZYY@@@@@@@E@@@CEn@@@@@@8,global_tableӠE^Z/Z3E^Z/Z?@б@гE%$listE^Z/ZHE^Z/ZL@гE&stringE^Z/ZAE^Z/ZG@@ @@@`3EEEEEEEE@[zB@A@@@ @@@b @@гE&phraseE^Z/ZPE^Z/ZV@@ @@@c@@@@@d@@e @@@E^Z/Z/ @Cߐ ! Generate the caml_globals table E]ZZE]ZZ.@@@@@@@F@@@CEȐ@@@@@@81reference_symbolsԠFaZZFaZZ@б@гE$listFaZZFaZZ@гEߠ&stringFaZZFaZZ@@ @@@f3FFFFFFFF@[zB@A@@@ @@@h @@гF3&phraseF0aZZF1aZZ@@ @@@i@@@@@j@@k @@@F=aZZ @D9 % Add references to the given symbols FJ`ZXZXFK`ZXZ@@@@@@@F\@@@DIF"@@@@@@8+globals_mapFad[[Fbd[[@б@гE٠$listFle[[OFme[[S@В@гF=&stringFze[[F{e[[@@ @@@l3F|F{F{F|F|F|F|F|@_~F@A@@@гE۠&optionFe[['Fe[[-@гD&Digest!tFe[[Fe[[$@ Fe[[%Fe[[&@@@@@@$ @@@ @@@ )@@@гF&optionFe[[9Fe[[?@гE&&Digest!tFe[[0Fe[[6@ Fe[[7Fe[[8@@@@@@ K @@@ @@@ P@@@гFF$listFe[[IFe[[M@гF&stringFe[[BFe[[H@@ @@@ i@@@@@@n @@@@v@P@+@@@y@@@@@@~Fe[[@@гG &phraseGe[[WGe[[]@@ @@@@@@@@@@ @@@Gd[[ @E J Generate the caml_globals_map structure, as a marshalled string constant G cZZG!cZ[@@@@@@@G2@@@EF@@@@@@+frame_tableG7i[[G8i[[@б@гF$listGBi[[GCi[[@гG&stringGLi[[GMi[[@@ @@@3GNGMGMGNGNGNGNGN@B@A@@@ @@@ @@гGc&phraseG`i[[Gai[[@@ @@@@@@@@@@ @@@Gmi[[ @Ei f Generate the caml_frametable table, referencing the frametables from the given compilation units Gzg[_[_G{h[[@@@@@@@G@@@EyGR@@@@@@82data_segment_tableGm\Z\^Gm\Z\p@б@гG $listGm\Z\yGm\Z\}@гGi&stringGm\Z\rGm\Z\x@@ @@@3GGGGGGGG@[zB@A@@@ @@@ @@гG&phraseGm\Z\Gm\Z\@@ @@@@@@@@ @@! @@@Gm\Z\Z @EÐ a Generate the tables for data and code positions respectively of the given compilation units Gk[[Gl\A\Y@@@@@@@G@@@EG@@@@@@82code_segment_tableGn\\Gn\\@б@гGc$listGn\\Gn\\@гGà&stringHn\\Hn\\@@ @@@"3HHHHHHHH@[zB@A@@@ @@@$ @@гH&phraseHn\\Hn\\@@ @@@%@@@@@&@@' @@@H!n\\ @@H2@@@@0predef_exceptionH,q\\H-q\\@б@гH #intH7q\\H8q\]@@ @@@(3H9H8H8H9H9H9H9H9@8W@A@@б@гH &stringHHq\]HIq\] @@ @@@)@@гHX&phraseHUq\]HVq\]@@ @@@*@@@@@+@@,# @@@+@@- @@.(.@@@Hgq\\@Fc * Generate data for a predefined exception Htp\\Hup\\@@@@@@@H@@"@FsHL@@@@@@G-plugin_headerHs]]Hs]]'@б@гH$listHs]]LHs]]P@В@г5*unit_infos*Cmx_formatHs]]*Hs]]4@ Hs]]5Hs]]?@@@@@@/3HHHHHHHH@wO@A @@@гG(&Digest!tHs]]BHs]]H@ Hs]]IHs]]J@@@@@@0 @@@@"@ @@1!, @@@E @@@3&Hs]])C@@гH&phraseHs]]THs]]Z@@ @@@44@@@@@5@@69 @@@Hs]] @@H@@@@?FGHǐ7 Emit constant symbols Iu]\]\Iu]\]x@@@@@@3HHHHHHHH@Q}@A.cdefine_symbolI x]]I x]]@б@В@гHޠ&stringIx]]Ix]]@@ @@@7@@@г,Cmmgen_state)is_global,Cmmgen_stateI0x]]I1x]]@ I4x]]I5x]]@@@@@@8 @@@@"@ @@?' @@гH$listIIx]^IJx]^ @гIV)data_itemISx]]ITx]^@@ @@@V@@@@@@[ @@@'@@ @@`Icx]]@@@Ifx]]@Gb A Produce the data_item list corresponding to a symbol definition Isw]z]zItw]z]@@@@@@@I@@-@GrIK@@@@@@*emit_blockI~^^I~^^@б@В@гI\&stringI^^I^^@@ @@@3IIIIIIII@<@A@@@г)is_global,Cmmgen_stateI^^I^_ @ I^_ I^_@@@@@@ @@@@"@ @@!' @@б@гI)nativeintI^_I^_#@@ @@@0@@б@гIE$listI^_1I^_5@гI)data_itemI^_'I^_0@@ @@@I@@@@@@N @@гIa$listI_9_EI_9_I@гJ)data_itemI_9_;I_9_D@@ @@@e@@@@@@j @@@%@@ @@o,@@@G@@ @@tJ@@@^@@ @@yJ^^$@@@J~^^'@H [emit_block symb white_header cont] prepends to [cont] the header and symbol for the block. [cont] must already contain the fields of the block (and may contain additional data items afterwards). J(z^ ^ J)}^^@@@@@@@J:@@7@H'J@@@@@@3emit_float_constantJ?__J@__@б@В@гJ&stringJN__JO__@@ @@@3JPJOJOJPJPJPJPJP@<@A@@@г5)is_global,Cmmgen_stateJc__Jd__@ Jg__Jh__@@@@@@ @@@@"@ @@!' @@б@гJ5%floatJ~__J__@@ @@@0@@б@гI$listJ__J__@гJ)data_itemJ__J__@@ @@@I@@@@@@N @@гJ$listJ__J__@гJ)data_itemJ__J__@@ @@@e@@@@@@j @@@%@@ @@o,@@@G@@ @@tJ@@@^@@ @@yJ__$@@@J__'@H̐ 6 Emit specific kinds of constant blocks as data items J_K_KJ_K_@@@@@@@J@@7@HJ@@@@@@4emit_string_constantJ__J_` @б@В@гJƠ&stringK``K``@@ @@@3KKKKKKKK@<@A@@@г)is_global,Cmmgen_stateK``K``'@ K``(K``1@@@@@@ @@@@"@ @@!' @@б@гJ&stringK3``6K4``<@@ @@@0@@б@гJ$listKB``JKC``N@гKO)data_itemKL``@KM``I@@ @@@I@@@@@@N @@гJˠ$listK^`R`^K_`R`b@гKk)data_itemKh`R`TKi`R`]@@ @@@e@@@@@@j @@@%@@ @@o,@@@G@@ @@tJ@@@^@@ @@yK``$@@@K__'@@K@@)@@3emit_int32_constantK`c`gK`c`z@б@В@гKb&stringK`}`K`}`@@ @@@3KKKKKKKK@#@A@@@г)is_global,Cmmgen_stateK`}`K`}`@ K`}`K`}`@@@@@@ @@@@"@ @@!' @@б@гK%int32K`}`K`}`@@ @@@0@@б@гKK$listK`}`K`}`@гK)data_itemK`}`K`}`@@ @@@I@@@@@@N @@гKg$listK``K``@гL)data_itemL``L``@@ @@@e@@@@@@j @@@%@@ @@o,@@@G@@ @@tJ@@@^@@ @@yL`}`$@@@L!`c`c'@@L2@@)@@3emit_int64_constantL,``L-``@б@В@гK&stringL;``L<``@@ @@@3L=L<L<L=L=L=L=L=@#@A@@@г")is_global,Cmmgen_stateLP``LQ`a@ LT`aLU`a @@@@@@ @@@@"@ @@!' @@б@гK%int64Lk`aLl`a@@ @@@0@@б@гK砐$listLz`a$L{`a(@гL)data_itemL`aL`a#@@ @@@I@@@@@@N @@гL$listLa,a8La,a<@гL)data_itemLa,a.La,a7@@ @@@e@@@@@@j @@@%@@ @@o,@@@G@@ @@tJ@@@^@@ @@yL``$@@@L``'@@L@@)@@7emit_nativeint_constantLa=aALa=aX@б@В@гL&stringLa[a^La[ad@@ @@@ 3LLLLLLLL@#@A@@@г)is_global,Cmmgen_stateLa[agLa[as@ La[atLa[a}@@@@@@  @@@@"@ @@ !' @@б@гL@)nativeintMa[aMa[a@@ @@@ 0@@б@гL$listMa[aMa[a@гM#)data_itemM a[aM!a[a@@ @@@ I@@@@@@N @@гL$listM2aaM3aa@гM?)data_itemM<aaM=aa@@ @@@e@@@@@@j @@@%@@ @@o,@@@G@@ @@tJ@@@^@@ @@yMVa[a]$@@@MYa=a='@@Mj@@)@@9emit_float_array_constantMdaaMeaa@б@В@гM6&stringMsaaMtaa@@ @@@3MuMtMtMuMuMuMuMu@#@A@@@гZ)is_global,Cmmgen_stateMaaMaa@ MaaMaa@@@@@@ @@@@"@ @@!' @@б@гM$listMaaMab@гMd%floatMaaMaa@@ @@@:@@@@@@? @@б@гM.$listMabMab@гM)data_itemMabMab@@ @@@X@@@@@@!] @@гMJ$listMbb%Mbb)@гM)data_itemMbbMbb$@@ @@@"t@@@@@@$y @@@%@@% @@&~,@@@H@@' @@(O@@@m@@) @@*Naa$@@@Naa'@@N@@)@@-fundecls_sizeNb+b/Nb+b<@б@гM$listNb+bQNb+bU@г'Clambda)ufunction'ClambdaN*b+b?N+b+bF@ N.b+bGN/b+bP@@@@@@3N1N0N0N1N1N1N1N1@4@A @@@$ @@@!@@гN#intNCb+bYNDb+b\@@ @@@@@@@@@@$ @@@NPb+b+ @@Na@@@@5emit_constant_closureN[b^bbN\b^bw@б@В@гN-&stringNjbzb}Nkbzb@@ @@@3NlNkNkNlNlNlNlNl@<f#@A@@@гQ)is_global,Cmmgen_stateNbzbNbzb@ NbzbNbzb@@@@@@ @@@@"@ @@!' @@б@гN$listNbzbNbzb@г)ufunction'ClambdaNbzbNbzb@ NbzbNbzb@@@@@@C @@@ @@@H@@б@гN.$listNbbNbb@гN)data_itemNbbNbb@@ @@@a@@@@@@f @@б@гNL$listNbbNbb@гN)data_itemNbbNbb@@ @@@@@@@@@ @@гNh$listNbbNbb@гO)data_itemObbObb@@ @@@@@@@@@ @@@%@@ @@,@@@H@@ @@O@@@k@@ @@w#@@@@@ @@O$bzb|)@@@O'b^b^,@@O8@@.@@8emit_preallocated_blocksO2bbO3bc @б@гN$listO=cc-O>cc1@г#2preallocated_block'ClambdaOKccOLcc@ OOccOPcc,@@@@@@3OROQOQOROROROROR@2@A @@@" @@@@@б@гNӠ$listOfcc<Ogcc@@гOs&phraseOpcc5Oqcc;@@ @@@ @@@@@@% @@гN$listOccKOccO@гO&phraseOccDOccJ@@ @@@<@@@@@@A @@@%@@ @@F,@@@H@@ @@KV@@@Obb!@@O@@#@@Q@N M@MM@LL@LL@LcL&@LK@KK@K`K7@K0K@JJ@JJ@JiJ@@J J @II@II@IIp@IPI@HH@HHk@HdH@HG@GG~@GwGE@G>G @FF@FF@FF]@F=F@F E@EE@EcE @DD@DD=@D6D @CC@CCJ@C*B@BBo@BhB@BA@AAL@AE@@@@N@@G@@??@?{>@>>1@>*=@=b=@<<@<<(@@ @A@ysA@<@s@S>@ @@@{@t_@XC@<'@  @@@@m@M8@1@s@Y)@ @A@M@@@[@; @@D@*@A@H@@%@^@+@J@* @  @  J@ * @  @  }@ ] %@  @  @  @  I@ )@@(@@@L@,@@e@^@"@@@@@3Q'Q&Q&Q'Q'Q'Q'Q'@@A@ H************************************************************************Q0A@@Q1A@L@ H Q6BMMQ7BM@ H OCaml Qݠ 9* Integer and float comparison that returns int not bool >d T* Loop construction (while true do expr done). Used to be represented as Cloop. =4* Exception raising =7 C* Convert a tagged integer into a raw integer with boolean meaning <Ҡ<* Float boxing and unboxing * Unbox a given boxed integer $㠠 J* Used to prepare 32-bit integers on 64-bit platforms for a lsr operation $a6* Raw memory accesses ! ** [unaligned_set size ptr idx newval dbg] ! $* [unaligned_load size ptr idx dbg]  ;* [box_sized size dbg exp]  -* Primitives 蠠 Y* Return the n-th field of a float array (or float-only record), as an unboxed float  ;* Int_as_pointer primitive נ2* Raise primitive  %* Unary negation of an OCaml integer R ,* Add a constant number to an OCaml integer  6* Add a constant number to an OCaml integer reference   ?* Return the length of the array argument, as an OCaml integer q D* Byte swap primitive Operates on Cmm integers (unboxed values)  N* 16-bit byte swap primitive Operates on Cmm integers (untagged integers) 젠 4* [setfield offset value_is_ptr init ptr value dbg]  k* [setfloatfield offset init ptr value dbg] [value] is expected to be an unboxed floating point number T?* Operations on OCaml integers  * Strings, Bytes and Bigstrings d 9* Regular string/bytes access. Args: string/bytes, index = B* Load by chunk from string/bytes, bigstring. Args: string, index )* Arrays > #* Array access. Args: array, index  u* Same as setfield, except the offset is one of the arguments. Args: pointer (structure/array/...), index, value ̠ U* Set the byte at the given offset to the given value. Args: bytes, index, value  ;* Set the element at the given index in the given array to the given value. WARNING: if [kind] is [Pfloatarray], then [value] is expected to be an _unboxed_ float. Otherwise, it is expected to be a regular caml value, including in the case where the array contains floats. Args: array, index, value ) * Set a chunk of data in the given bytes or bigstring structure. See also [string_load] and [bigstring_load]. Note: [value] is expected to be an unboxed number of the given size. Args: pointer, index, value )* Switch  ;* [transl_isout h arg dbg]  ~* [make_switch arg cases actions dbg] : Generate a Cswitch construct, or optimize as a static table lookup when possible. _ 5* [transl_int_switch loc arg low high cases default]  .* [transl_switch_clambda loc arg index cases]  +* [strmatch_compile dbg arg default cases] / %* Closures and function applications  9* Adds a constant offset to a pointer (for infix access)  0* Direct application of a function via a symbol  8* Generic application of a function to one or several arguments. The mutable_flag argument annotates the loading of the code pointer from the closure. The Cmmgen code uses a mutable load by default, with a special case when the load is from (the first function of) the currently defined closure. { * Method call : [send kind met obj args dbg] - [met] is a method identifier, which can be a hashed variant or an index in [obj]'s method table, depending on [kind] - [obj] is the object whose method is being called - [args] is the extra arguments to the method call (Note: I'm not aware of any way for the frontend to generate any arguments other than the cache and cache position)  8* Generic Cmm fragments =* Generate generic functions &.* Entry point  V "* Generate the caml_globals table  &* Add references to the given symbols  K* Generate the caml_globals_map structure, as a marshalled string constant  ՠ g* Generate the caml_frametable table, referencing the frametables from the given compilation units  ~ b* Generate the tables for data and code positions respectively of the given compilation units  ' +* Generate data for a predefined exception  8* Emit constant symbols   B* Produce the data_item list corresponding to a symbol definition  * [emit_block symb white_header cont] prepends to [cont] the header and symbol for the block. [cont] must already contain the fields of the block (and may contain additional data items afterwards). ߠ 7* Emit specific kinds of constant blocks as data items -@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I'asmcomp"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-cSDSE T/home/teraram/ci/builds/workspace/parallel-build/flambda/false/label/ocaml-manycores >10/.-,+*)('&%$#"! @@0L^}.i 3S_S^S^S_S_S_S_S_@S\@@/Allocated_const0/vVǟx(Asttypes0eT$BbRM dc+Backend_var0Xʮz{9`z5Build_path_prefix_map0zd,J4z8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-'Clambda0i[C [|e,C0|& %ZIǝz/Closure_element0ǔf#M*Closure_id0 (?$.Closure_origin0!Havl5"_*Cmi_format0{)ݬ[ƥ  S0ϝI1RS0u }Y233_i z0L1$SZBr0490}Du)|lx/̠0Compilation_unit0Dl ]wN*Data_types0v\3,Svh)Debuginfo0_ |PooGq#Env02O<r7 )Export_id0CJ9DןRa7ݷ$E+Export_info0t?MH\'Flambda0VJ͟*Format_doc0uy@GmWUࠠ*Freshening0xW("-9wVԠ%Ident0>ЃzV)j⠠,Identifiable0]/*N 7Internal_variable_names0TbgѹG+L&Lambda0x_edT-uq,Linkage_name0tԈK1G)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Kvor#2D0Mutable_variable0CQᷧ$'Numbers0 q޷He+Outcometree0BuG^)= 9c )Parameter0zk^f2my19)Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}*Projection02hS xj562Set_of_closures_id0LbO`ܩ&M6Set_of_closures_origin0!YA _XO %Shape0 M``ll3Simple_value_approx0 c[k%S\KѠ0Static_exception0Jmyrqܒx-8ɞ&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ-Stdlib__Int640q=cT?Q1ˠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ%Subst0=aqT/!p+&Symbol03E?Y7(#Tag0&b rٍ)Targetint0ﲵ+^| y栠.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR2Var_within_closure0``ݗXFR⠠(Variable0?l猵eY(Warnings0Ef{&@0u }Y233_iAՐ|@!a!? ?UAiA@%aLАM5@0ې1F@@=K=OO@0e0Ұ3y3@GGp@*C+!AAvMN6@@@JJ@  C@L°&&>>@@##EE_@@)|)հ78@@@sǰ 8@..}@@3,3:N:@$%N/4/NÐO@  G<<Q6Q@@.//@6Dr@@-d@?@KL L8L^@@55a@@"i"%&L@8Z8@:@D"D@@=P=@iJJ]@B]B@@9$%#@Ȑ*0*OՐP@@@ < @!!ܰ1א2"@@s@ L  ?P+e>?4@R<RRR@@+s33IԐJ@@LQLk@7(7@$'$ðAFAMِN$@O@@" .FGDKK@99g>B>CC°KѐK@9ҰQ/#%#--I@@v*D@ ( pH,H@n,Ԑ-IʐJ@@@56S@@@ !%!!@@'Aʐ0n1&@OO@@ ?)ʐ*#--QQJ@ΐ4N@8/8@"Β"FG'GG@ i ذ9:(:@'a'NNͰSӐTL@)w);ÐQQ@ɰ9:U@2ܐ3%@!!԰55{P`P@Ͱ=6=rI IjQR'@ S 838~@KJK@)*67~JJ?@ @)5)@@ٰ77@E@QOQw@:;e@@,-H99@  *@@@AA@)Ð)ݰMM@WDE@@)@ST:@ :./L@@@IJ@PwP@@@P@@