Caml1999T037rfRbC-StackframegenР$Mach$Mach8asmcomp/stackframegen.mlSS@@ 3@@@@@@#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@@@@A3@@@S@@@3@@@A+/analysis_result!AUU@@;@@6contains_nontail_calls"@@e@@@VV@@GA.frame_required#@@q@@@WW@@HA0extra_stack_used$@@@@@XX@@IA@@A@@@@@UY@@@@FA@#))$V@#@@Ш@г,$boolVV@@43@LB;@@@A@@@@@@@@@@@@;@@@7@#33.W@-@@Ш@г6$boolWW@@>@@A@@@=@#994X @3@@Ш@г<#intX  X@@D(@@G@@+@C@@A@?@@?>@3      @w@@/@@2stackframe_generic[![3@'B&B%BБఠ$self(([>)[B@;KA,[=-[C@@1trap_handler_sizeA@@@@@D@'is_callA@$Mach0instruction_desc@@@D@$boolE@@@ D@@@D@@@D@.frame_requiredA@'fundecl@@@[D@@ @@@TD@@@@!D@@@D@@@D@@@D@'analyzeA@#D@@@@!D@@@D@@@D@@@@D@@D@@D@@D@@@D@3@ ;@@@A&A%KAJlAk{Az@@"C@"@"@"@"@"C@@@@@@@[t@@@@JA#@&@@:@A@64@@@@@Ab@A@^@UO@@@@@@@B@A@z@@@@@@@@@@@@@AC'*undef*C@@@"#@@@@@@@ ;@@@AeAdAAA@@")@"/@"0@"1@"2C@Z@@@@@@A@@@>@@>@@@)selfpat-*)ɱ LA@]@Ȱ``@AШ@гɠ#int ` `@@3@qAA@@@@@`@@Ӱpp@AA࣠@&self-13Aఠ&self-*2A:OA@3%$$%%%%%@ t@.@AҠ/@0@1@ABC@!1@KMAE@ @NNA@@@  PPA@@@@@Ġ#IopLqMq@;#Iop@@@_@)operation@@@M@A@BG@A0asmcomp/mach.mliT  T  @@@ w@Ġ)Icall_indjqkq@;)Icall_ind@@@7@@@CPO@Ann@@@#i@@@  @@#@@@3uttuuuuu@RXN@V@U`O@W@@@@@Ġ)Icall_immqq@;)Icall_imm@7@@@C@ACPO@A6o7o&@@;@@$func@@&stringQ@@@FoGo$@@Qj@@CA@@@@@u@@@EATk@@qq@@"@@@5@@@+@@\@@@9@@J @@`@@@=@Ġ(Iextcallq q@;(IextcallS@o@@@?@AEPO@Anracou @@;@@$func@@8@@@ |ras}ra@@o@&ty_res@@#Cmm(machtype@@@!ss@@p@'ty_args@@$listK'exttype@@@#@@@"ss@@q@%alloc@@$boolE@@@$tt@@r@)stack_ofs@@#intA@@@%uu @@s@@EA@@@@@@@@-CAt@@!q"q@@a@@@@@@j@@@@@@@+q,q@@@@@@@@@@@@@ภ$true7q8q@;@@@M@@@AB@@A@@@ @@@Ġ#IopJr!Kr$@Ġ&IallocSr&Tr,@;&Ialloc@@@@;@AIPO@A} n p} n @@;@@%bytes@@W@@@.} n ~} n @@|@'dbginfo@@)Debuginfo-alloc_dbginfo@@@/"} n #} n @@-}@@IA@@@@@Q@@@AA0~@@r-r.@@0@@@@@@r%r/@@:@@@@@@H@@F@Ġ#Iopr2r5@LĠ%Ipollr7r<@;%Ipoll7@S@@@9@ANPO@ARE  SE  @@;@@,return_label@@&optionL%label@@@6@@@5iE  jE  @@tL@@NA@@@@@@@@@AwM@@r=r>@@)@@@ X@@@r6r?@@@@@ ^@@@A@@_@@@@`@@@ภrCrG@@@@h@Ġ#Ioptt@Ġ&Iintoptt@;&Iintop@1integer_operation@@@0@AJPO@A~  ~  @@@@Ġ+Icheckbound t t@;+Icheckbound@@@@@@LMA@AZz|Zz@@@X@@@tt@@ @@@@@@)@@@@@@Ġ*Iintop_imm't(t@;*Iintop_imm@2@@@1@@@2@BKPO@A    @@@@@Ġ+Icheckbound@tAt@5@@@@I@@@@@ItJt@@@@@@@@(Ot@@@@@@@TtUt@@@@@@@@p@@@@@డ!!ctdt@@&Stdlib#ref!a@@@@i@@h'%field0AA @@@*stdlib.mli@@@@@@5D@$D@ =G@G@ D@@@ E@@ C@@డ'Clflags%debug'Clflags9t@ tt@?@&Stdlib#ref$boolE@@@ =@@@ <@1utils/clflags.mliS [ [S [ o@@'Clflagsm@V@@V<@@@ JH@H@H@@`"@@mI@Ġ&Iraisevv @;&Iraise@&Lambda*raise_kind@@@^@AFBG@A[  [  @@@~@Ġ&Lambdav v @-Raise_notracev v @@;-Raise_notrace&Lambda*raise_kind@@@ }@@@BC@@A1lambda/lambda.mli@@@ @@@@@/@@@ ,@@@8@@@@@ภ%false v  v #@;@@@@B@@A@@@@@@Ġ&Iraisew $ (w $ .@KĠ&Lambda#w $ 0$w $ 6@-Raise_regular(w $ 7)w $ D@@;-Raise_regular=@@@@C@@A5oq6o@@@=@@@ @@c@@@ 1@Ġ&Lambda>w $ G?w $ M@-Raise_reraiseCw $ NDw $ [@@;-Raise_reraiseX@@@AC@@APQ@@@X@@@ @@~@@@ 4@@Rw $ /Sw $ \@@@@@ 5@@@B@@ @@@ภ']w $ `^w $ d@&@@@ @Ġ(Itrywithhy  iy  @;(Itrywith@+instruction@@@\@@@]@BEBG@AZ  Z  @@@(}@@~y  y  @@@@@ 9 @@@@@@ :@@@! @@=@@@ภXy  y  @W@@@;@@z  z  @@K@@@ภz  z  @@@@I%@@A%paramp@@@@@ A@@@`V@@(@@'2@@@@h^@@/@@.@@-D@*@p@@XC  C  @AA࣠@&self-1AఠSA@3@@@@  TA@@@@࣠@!fAC  C  @UA@@t3@@@!@@@@@@  @@.contains_callsAC  C  @VA@@|3@ @@@@@@@@డh"||D  D  @@@@@P@@@@O@@@N@@M@@L'%sequorBA@@@@@@^@@@@@@@H@@@@G@@@F@@E@@D3#""#####@7C@:@;@@@@ఐJ.contains_calls5D  6D  @ @@@@డDFCE  9DE  ;@C@@@@@@[@@@@ZC@@@Y@@X@@W+@@డ!>_E  5`E  6@@!a@@@@@0@@/@@.,%greaterthanBA@@@@@@ T@@@@k@@@4I@l@@@@k@@j@@i]@@డ%Array#getdeE  E  4A@%arrayJ!a@@@@@#intA@@@ @@@@/%array_safe_getBA @@@@)array.mlid::d:r@@-Stdlib__ArrayB@%$A@@"FJ@%@@@'@@@@&@@$@@#@@ఐ!f>E  @@@@k@3fun_num_stack_slotsE  E  0@33fun_num_stack_slotsq@@@j%arrayJk@@@i@@@h@@F3(fun_nameT@@@`@@@@A^  #^  4@@@3(fun_args#Reg!t@@@b@@@a@@A@A_ 5 9_ 5 O@@@3(fun_body-@@@c@@B#@A` P T` P j@@@33fun_codegen_options6&:.codegen_option@@@e@@@d@@C4@Aa k oa k @@@3'fun_dbgG!t@@@f@@D@@Ab  b  @@@3(fun_pollSa.poll_attribute@@@g@@EL@Ac  c  @@@_@Ad  d @@@e@@@@@1K@6K@3 @@@OE  2PE  3@@@@@0K@8K@70@@@@1@@@`E  7aE  8@@J@9<@@@@@@@g@:J@tD@@డwE  VxE  W@@@@@@@ZI@?@@@@>@@=@@<^@@డcdE  <E  UAA@@!J@K@@@M@@@@L@@J@@I}@@ఐ٠!fE  =@@@H@3fun_num_stack_slotsE  >E  Q@ݰ%@@#$@@@WK@\K@Y@@AE  SE  T@@'@@@VK@^K@]@@>=@@6@@@E  XE  Y@@`J@_@@J@@@@@f@`J@G@@Q @@@@@S@aI@e@@@@uD@!D@R@A@A@@@@@@l@@k@@j@@@@@@@u@@t@@s@@rD@n;@ C  .@@ N   N  @AA࣠@&self-1AఠѠ /WA@3        @@@@   2XA@@@@࣠@!fA .N   /N  @ AYA@@3 - , , - - - - -@ @@!@@@@@@  @@@ఠ6contains_nontail_callsԠ CO   DO  @ VZA@@@@@G@@@@G@3 M L L M M M M M@!-@$@%@@@డ#ref ^O   _O  @@!a@@@@g@@f,%makemutableAA@@@ddd@@@@@@*-@@@@@(@@ภz O   O  @y@@@9H@5@@*@@?6@A@ O  @ఠ.contains_callsՠ P   P  @ [A@@0c@@@G@@@@G@O@డ#ref P   P  @L@@@G@@@@@a@@ภ P   P  @@@@#H@n@@@@)o@A@ P  @ఠ+extra_space֠ Q   Q  @ \A@@i@@@G@@@@G@@డK#ref Q   Q  @@@@@@@@@@@@ Q   Q  @@@@@@%@A@ Q  @@Aఠ'analyzeנ R   R  "@ ]A@@@#intA@@@oG@@@@@G@ @@@G@@@@@3        @@@@@\U@V@W@@@࣠@"spA /R  # 0R  %@ B^A@@+3 . - - . . . . .@7@2@,'@@H@@@H@@9@:@@@@@@!iA HR  & IR  '@ [_A@@:3 G F F G G G G G@&G@@@@@@@@ డ ]S * 4 ^S * 5@@@@dG@pG@G@G@G@G@@ @@@@@@@3 m l l m m m m m@'3c@*@+@@@@ఐS"sp S * 1 S * 3@3@@z@@డ+- S * 6 S * 7@*@@@*3K@@@@@@&@@ఐנ+extra_space S * B@@@@@@@L@L@:@@  @@;@@/ @@ g@@@K@B@డ %":= S * T S * V@@Z!a@@@@m@$unitF@@@l@@k@@j*%setfield0BA]@@@@]^@@n@@@@v}J@@@@@@@@@@@@w@@ఐ(+extra_space S * H S * S@Ұ@@@@@K@K@@@ఐܠ"sp S * W S * Y@@@@@@@@@@J@K@@@ S * . @@ @ డ ce T [ n T [ p@b@@@@@@J@@@@@c@@@@@@@@@ఐ.contains_calls <T [ _ =T [ m@@@۠@@@K@K@@@డ SU RT [  ST [ @R@@@@@@@ @@@R@@@@@@@@@డ    mT [ q nT [ r@ @@@  @@@ L@L@@@@@@ @@ఐ.contains_calls T [ @f@@%@@@M@M@@@% @@ @@ ఐ$self T [  T [ @u@@ u1@n T [ @@@ \ R@@6@@ఐo!i T [  T [ @B@@E@$desc T [  T [ @3$descR@@@L t@@@D@@@ 3$next [@@@E@@A@AqK T XrK T j@@ |q@3#arg!t@@@G@@@F@@B@AL k oL k @@ r@3#res#!t@@@I@@@H@@C(@AM  M  @@ s@3#dbg4!t@@@J@@D4@AN  N  @@ t@3$live@#Set!t@@@KA@EB@AO  O  @@ u@@AJ 8 <J 8 S@@ p@\T@@ M@"@@sW@@ @@X@@L@ @@[@@@@@%J@@ఐ⠐!i 'U   (U  @@@@$desc .U   /U  @s @@ @@@(@Ġ$Iend >V   ?V  @;$Iend@@@@BG@AS  S  @@@ v@@@  @@ @@@-3 F E E F F F F F@@@@@ @@@.@@@ภ"() UV   VV  @;  @@@N@@@@A@@A -@@ @ @@G@Ġ#Iop hW   iW  @ Ġ,Istackoffset qW   rW  @;,Istackoffset @e@@@&@AFPO@A !v  "v #@@@ ,u@ఠ%deltaڠ W   W  @ `A@@@@@63        @@@@@@ W   W  @@ =@@@7@@@-@@ G@@@8 @@ J@@@9@@@ఐ'analyze X   X  @q@@@@@@@@3        @:+$@%@&@@@@డ "!+ X   X  @@@@@~@@@@}@@@|@@{@@z'%addintBAW@@@@W0++X0+,@@hn@@@@@@@@@@@@@@@@@@8@@ఐ"sp X   X  @@@E@@ఐt%delta X   X  @O@@=@@@M@M@Y@@ X   X  @@M@^@@ఐР!i X   X @@@m@$next X  X @X @@G@PG@]G@*G@G@G@L@@@@@@Ġ#Iop 7Y  8Y@ Ġ-Itailcall_ind BY CY@;-Itailcall_ind @@@DPO@A p') p'8@@@ l@@@  @@ @@@@@Ġ-Itailcall_imm UY! VY.@;-Itailcall_imm @ @@@A@ADPO@A q9; q9`@@;@@$func@@ @@@ q9P q9^@@ m@@DA@@@@@ C@@@ DA "n@@ xY/ yY0@@ @@@D@@@)@@ *@@@E@@ Y Y1@@ 0@@@F@@@Q@@ :@@@G@@ =@@@H@@@ภ? Y5 Y7@>@@@ @Ġ#Iop Z8> Z8A@ TĠ)Icall_ind Z8C Z8L@ A@@@@ Z@@@O$@Ġ)Icall_imm Z8O Z8X@ 2@ Z8Y Z8Z@@ 4@@@S4@@@ @@ n@@@T8@@ Z8B Z8[@@ t@@@U>@@@,@@ ~@@@VB@@ @@@WE@@@ డ E " [_~ [_@@@@y @@@L@@@@@ @@@@@@@b@@ఐ6contains_nontail_calls [_g [_}@ڰ@@@@@M@M@w@@ภ ְ [_ [_@ @@@+M@@@@@@@@L@@ఐ'analyze \!\@@@@@@@@@@@ఐ"sp1\2\@@@,@@ఐ!i@\A\@ΰ@@1@$nextG\H\@ @@)L@@@-@@6@U@@7@Ġ#IopX]Y]@ @]]^]@@ @@@\@@@ @@ @@@]@@ @@@^@@@ఐp'analyzer^s^@?@@@o@gb@@@@@@ఐW"sp^^@7@@~@@ఐM!i^^@ @@@$next^^@հ @@yL@@@-@@@Ġ'Ireturn__@;'Ireturn ]@@@ABG@A TU   UU  @@@ _x@@@  @@ e@@@b)@@ h@@@c,@@@ภj__@i@@@4@Ġ+Iifthenelse``@;+Iifthenelse @ $test@@@Ni@@@Om@@@P@CABG@A V   V  B@@@ y@@``@@@@@j3@x@@@ఠ$ifso۠``@aA@@@@@k@ఠ%ifnotܠ``@bA@@@@@l@@@=`@@ @@@m"@@ @@@n%@@@ ఐ'analyzea a@@@@@ @@ @@ 3@6/@0@1)"@#@$@@@@ఐ"sp0a1a@@@+@@ఐK$ifso=a>a@@@M@!@@)@@,"@ ఐL'analyzeNaOa#@@@@K@C>@@@@4@@ఐ3"sp_a$`a&@@@ZA@@ఐl%ifnotla'ma,@I@@LM@P@@$@@[Q@ఐy'analyze{a.|a5@H@@@x@pk@@!@@ a@@ఐ`"spa6a8@@@@n@@ఐV!ia9a:@)@@}@$nexta;a?@ް @@L@)@@-@@@[@@@@@@Ġ'Iswitchb@Fb@M@;'Iswitch h@ؠ @@@R@@@Q Z@@@T@@@S@BBBG@A rW C E sW C o@@@ }z@@b@Nb@O@@@@@w@@@v3@j@@@ఠ(branchesݠb@Qb@Y@cA@@% ~@@@y@@@x@@@<b@Z@@ @@@z@@ @@@{@@@ డk%Array$iterc^fc^k@  c^l c^p@@@@!a@l$unitF@@@^@@]@@@@\ @@@[@@Z@@Y@st@@rS@&!@@@@ L@1@@@3@@2@ @@@0@@@/@@.@@-398899999@`Y@Z@[@@@@ఐK'analyzeMc^rNc^y@@@@J@B=@@E@@D@@ఐ2"sp^c^z_c^|@@@Y#@@bc^qcc^}@@@TO@@L(@@ఐ(branchespc^~qc^@2@@YJ@@@?M@PM@N=@@v @@e@@@QL@>C@ఐ'analyzec^c^@W@@@@z@@T@@SS@@ఐo"spc^c^@O@@`@@ఐe!ic^c^@8@@o@$nextc^c^@ @@L@\x@@-@@y@@@z@Ġ&Icatchdd@;&Icatch v@ (rec_flag@@@U @ @@@X@ o@@@Y@@W@@@V t@@@Z@CCBG@A X p r X p @@@{@@dd@@'@@@3@@@@ఠ(handlersޠdd@ dA@@/@.@@@@ @@@@@@@@@ఠ$bodyߠdd@'eA@@ @@@*@@@Zd@@@@@/@@@@@2@@@ డ$List$iter2e3e@ 6e7e@@@@!a@$unitF@@@@@@$listK@@@@@@@@@@@(list.mli@@,Stdlib__ListU@*%@@@@@@@@5L@@FL@@@L@ -@@@ @@ @*@@@'@@@@@@@3vuuvvvvv@ @@oh@i@j@@@@࣠@%param*A@@ee@@,3@@@@@ఠ'handler)ee@hA@@2 @@ee@@@@@;@@ @@ @@ఐ'analyzeee@@@@@@@&@@%3@@%P@@ @@@@ఐ"spee@{@@@@ఐ9'handleree@@@j@@%@@@ee@@@@@@@@M@1M@/R@@ఐ(handlersee@r@@@@@M@7M@3~@@ @@@@@8L@m@ ఐ'analyze f  f@װ@@@@@@<@@;@@ఐ"spff@ϰ@@@@ఐ$body(f)f@@@M@C@@$@@@ఐ5'analyze7g#8g*@@@@4@,'@@G@@F@@ఐ"spHg+Ig-@@@C@@ఐ!iWg.Xg/@@@H@$next^g0_g4@ @@8L@O@@-@@M@[@@N@4@@O@Ġ%Iexitph5;qh5@@;%Iexit$@d@@@[@ADBG@A Y  !Y  @@@+|@@h5Ah5B@@@@@@@@@@9@@@@@<@@@@@@ภ>h5Fh5H@=@@@~@Ġ(ItrywithiIOiIW@ 7ఠ$bodyiIXiI\@fA@@ ?@@@=@ఠ'handleriI^iIe@gA@@ M@@@K@@@iIf@@q@@@P@@t@@@S@@@ ఐΠ'analyzejjrjjy@@@@@@@W@@V3@g6/@0@1)"@#@$@@@@డP.0jj~jj@-@@@@@@c@-@@@b,@@@a@@`@@_ @@ఐՠ"spjj{jj}@@@-@@ ఐ $selfjjjj@@@<@ܰjj@@V@@@nN@sN@rF@@jjzjj@@ N@mK@@ఐ$body,jj-jj@T@@M@tZ@@b@@ [@ ఐ ;'analyze=k>k@ @@@ :@ 2 -@@y@@xm@@ఐ ""spNkOk@ @@ Iz@@ఐ'handler[k\k@@@5M@@@$@@ J@ఐ h'analyzejlkl@ 7@@@ g@ _ Z@@@@@@ఐ O"sp{l|l@ /@@ v@@ఐ E!ill@ @@ {@$nextll@Ͱ @@ L@@@-@@ @[@@ @@@ @Ġ&Iraisemm@ ؠ@mm@@ @@@ ;@@@ @@`@@@ ?@@c@@@ B@@@ภemm@d@@@  J@@@AU  @@ s@@@ t@@@ u@ A@@ @  @@!@@!G@! @@@R  @@ ఐ Ҡ'analyzeoo@ @@@ @@@!@ q@@@! @@@!@@!@@!3@ @@@@@oo@@ @@@!H@!H@!@@ఐ ֠!foo@ @@v @(fun_bodyo o@  @@ @@@!H@!H@!.@@? @@ @@@!G@!4@ະ3p@@@r@@@3ih@@A@Ad@a3^]@@B@AY@V@Aq@n6contains_nontail_calls(p )p!@డРҰ2p$3p%@ϰ@@@Ϡ@@@!F@!@@@!@@!\@@ఐ 6contains_nontail_callsJp;@ *@@@@@!G@!G@!p@@# @@q@5.frame_required[q=B\q=P@ ఐ O$selfhq=Siq=W@=@@=@8mq=f@@@@@@!@@!@@ఐ Q!f|q=g}q=h@ *@@@@డ(*q=iq=j@'@@@'G@!@@@!@@!@@ఐ .contains_callsq=x@ ~@@=@@@!H@!H@!@@  @@@@C @@/@0extra_stack_usedrzrz@డ$Y[rzrz@X@@@X@@@!F@!@@@!@@!@@ఐ +extra_spacerz@ @@q@@@!G@!G@!@@# @@@@@p rz@@Q@@@R@@@S @ [@@T @ A@  A@@@_]@@"@@" @@@@ge@@" @@"@@"D@" @N  @@@<ư[6B@?\@#@AAAA@"<@"A@"@@"?@">o@@"=@@@A@@@"4@@"3@A@A@@@@"7@@"6@@"5@Bװ@A@@@"9@@"8@@@@@@";@@":@AC @@r@o#@. ;@@AAAAAE@"C@"G@"F@"E@"D@@"B@@@@@@@@@@ܠ@@@3;::;;;;;@@@@A@+#@L @@@A@-#@O!;@@A @@@@@@@@@A@0;@@@A@@@@@@@A@@3JIIJJJJJ@;#@;@@@<#@=w@@?#@*A'@@@"d@@"c$A@@@@"T@@@"S@@"b@@"aA@* @@@"K@@@@"P@@@"O@@"`@@"_@@"^A@@@@"J@@"]@@"\@"[@"Z@"Y@"X@@"W@@@A@!@@"I@@"H@A7@A@&@"@@"N@@"M@@"L@B]@A@:6@@"R@@"Q@p@@n@@@"V@@"U@AC@@@#@}Az@@@"x@@"wwA@pm@@@"vj@@@"u@@"t@@"seA@}^@@@"m@Y@@@"r@@@"q@@"p@@"o@@"nTA@K@@@"l@@"k@@"j@"@"@"@"H@@"@@b@A@!@@"z@@"y@A@A@&@"@@"}@@"|@@"{@B@A@:6@@"@@"~@ð@@@@@"@@"@AC;@@@AASANACA3@"i@"h@"g@"f֠@@"e@@@@[@@@X@[@X;@@@AA@@@@"@@@"@@"@@"A@ @@@@"s@@@"@@"@@"@@"A@@@@"@@@"@@"@@" A@@@"@@"@@"@"@"@"@"@@"@@@@@@@@@@-StackframegenD@@@@@@@ H************************************************************************UA@@VA@L@ H [BMM\BM@ H OCaml aCbC@ H gDhD3@ H Xavier Leroy, projet Cambium, INRIA Paris mE44nE4@ H sFtF@ H Copyright 2023 Institut National de Recherche en Informatique et yGzG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ ^ Compute the parameters needed for allocating and managing stack frames in the Emit phase. P77Q@ U Size of an exception handler block on the stack. To be provided for each target. ]EE^y@  Determine if an instruction performs a call that requires the return address to be saved in the stack frame, and a stack frame to be allocated. At a minimum, these instructions include all non-tail calls, both to OCaml functions or to C functions. For exception-raising constructs, we get better stack backtraces by treating them as non-tail calls, even if they are implemented as tail calls. This method can be overridden in [Stackframe] to implement target-specific behaviors. bn@ 4 caml_alloc*, caml_garbage_collection (incl. polls) sHNsH@; caml_ml_array_bound_error uu@ C caml_stash_backtrace; having a frame gives better stack backtrace x e kx e @ Determine if a function requires a stack frame to be allocated. This is the case if it contains calls, but also if it allocates variables on the stack. This method can be overridden in [Stackframe] to implement target-specific behaviors. |  A  @ 6 Analyze the body of a Mach function to determine - whether it contains non-tail-calls to OCaml functions - whether it requires allocating a stack frame and saving the return address - how much extra stack space is needed for exception handlers and for passing parameters to C function on stack. G [ [L  @@*./ocamlopt)-nostdlib"-I(./stdlib"-I1otherlibs/dynlink"-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_events2-function-sections"-c S/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores ?>3210/.-,+*)('&%$#"! @@07sȒNRRh3+**+++++@)@@$Arch0;:1-K^1ʹ*}(Asttypes0>n{T8cئ+Backend_var0G}afTd5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ0r.SU߈#g*Cmi_format0c˯7͗ԩmݠ#Cmm0rhmsT4u%{*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0zV L{YWI*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`&Lambda0z1x]&ZT)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc0( C'~A̠$Misc0ob]6>Vê>+Outcometree0euWS~d栠)Parsetree0Uҩ=p>*%"e$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠'Profile0E.8_~e#Reg0dfǝhO%Shape0oNՄBH͐0F? =pRѧҠ&Stdlib0Lku]8_٠+Stdlib__Arg0اp2/٠r)w-Stdlib__Array0?3$( Q&.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ܚ#G7m|/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V ,Stdlib__List0MYm 7R+Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0s)Targetint0!2JTI ϝ.Type_immediacy0A^abOhՠ%Types0xH+}q)Unit_info0ڀh%((Warnings0mJɒkgr