Caml1999I036,(S6Branch_relaxation_intf!Sy(distancez;@@@A#intA@@@@@@@ "asmcomp/branch_relaxation_intf.mliTT'@@A@@@A@Ӡ+Cond_branch{@!t;@@@A@@@@@YY@@@@*A@A@#all$listK@@@@@@@%\&\@@>B@@0max_displacement@@@@A@@@@@@7b8b)@@PC@@.classify_instr@&Linear0instruction_desc@@@&optionL0@@@@@@@@@Tr  Ur  @@mF@@@@XV)+Ys  @qG@@@3offset_pc_at_branch|.@@@@dx  ex  @@}H@@*instr_size}@-'fundecl@@@@50instruction_desc@@@J@@@@@@@@{  {  X@@I@@0relax_allocation~)num_bytes@@@'dbginfo)Debuginfo-alloc_dbginfo@@@[0instruction_desc@@@@@@@@@ 1 3C  @@J@@*relax_poll,return_labelf#Cmm%label@@@@@@{0instruction_desc@@@@@@E  G  @@P@@6relax_intop_checkbound@$unitF@@@0instruction_desc@@@@@@I  K # A@@Q@@:relax_intop_imm_checkbound%bound@@@0instruction_desc@@@@@@L B DN t @@ R@@1relax_specific_op@$Arch2specific_operation@@@0instruction_desc@@@@@@ O   O  @@#S@@@@QP  @'T@@@R6Branch_relaxation_intf0mҘݭ'f5SS'X86_ast0GϯH Gr2A$(Warnings0;w.Q=1)Unit_info08a AnMͼ %Types0#`O(ߍLF.Type_immediacy0GuQT@<=)Targetint0k}Z62%Subst09,+bmT-Stdlib__Uchar0d"W-x9.Stdlib__Domain0iW',P6wz.Stdlib__Digest0 Jjrڵ6.Stdlib__Buffer0_?K|/V>O}~Nࠠ+Stdlib__Arg033PұIPWm堠&Stdlib0y{x!O!%Shape0OĸT>b#Reg0HF p3D7)Primitive0{mV|{J $Path09{ְZsv)Parsetree0Z<4$PC+Outcometree0yl4>Yfܠ$Misc0  =73 Z $Mach0 LFVzP)Longident0@#j,6.Nt蠠(Location0nݹV 2f-V )Load_path02&9Q҄;L&Linear0}~k4xE&Lambda0 [, U(Z,Identifiable0XnAZ4eҠ%Ident0y43a$+*Format_doc0Mv9630A #Env0؞X:Fݗ))Debuginfo0.6硏]fSvi*Data_types0-k(.I7#Cmm0 3̽=Gľk*Cmi_format0KuEB젠0CamlinternalLazy0;x#5䢜hLm8CamlinternalFormatBasics0oZ2t,ݠ5Build_path_prefix_map0gMOBnM`+Backend_var0yyoR=@@=@9@;@@a@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib;@@@A@@@@@@@@@@@@A@@@@3@}@A@+Cond_branchBV)2V)=@G@@БA+!tCYY@@;@@A@@@@@Y@@@@A@@@A@@@3@@A@#all\\@г2$list\ \@г$!t\\ @@ @@@3@$/)@A@@@ @@@ @@@\@@B@@@@ 0max_displacementb b@б@гI!t b b@@ @@@3@&C@A@@г (distanceb!b)@@ @@@@@@@@@@@&b @@3C@@ @@.classify_instr1r  2r  @б@г&Linear0instruction_desc&LinearBr  Cr  @ Fr  Gr  @@@@@@ 3$##$$$$$@<Q*@A @@г&optionVr  Wr  @г!t`r  ar  @@ @@@!@@@@@@# @@@$@@$!,@@@pr  @@}F@@@@'@A@@|U@N @@3SRRSSSSS@0P@A 3VUUVVVVV@@AV)@s  @@@V)+@@3offset_pc_at_branch x  x  @г(distancex  x  @@ @@@%3srrsssss@@A@@@z9@@@%@A@@@x  @@H@@@@*instr_size!{  {  @б@г'fundecl&Linear{  #{  )@ {  *{  1@@@@@@&3@4G(@A @@б@г0instruction_desc&Linear{  5{  ;@ {  <{  L@@@@@@' @@гߠ(distance{  P{  X@@ @@@('@@@@@)*@@@0@@*-8 @@@{  @@ I@@@@30relax_allocation0 @ 1 7 @ 1 G@б)num_bytesг#intA H YA H \@@ @@@+3@Nl!@A@@б'dbginfoг)Debuginfo-alloc_dbginfo)Debuginfo/B ] l0B ] u@ 3B ] v4B ] @@@@@@ @@г0instruction_desc&LinearEC  FC  @ IC  JC  @@@@@@4 @@2@@7SB ] d @@I>@@;WA H O@@@Z@ 1 3@@gJ@@@@B*relax_pollUeE  fE  @б,return_labelг&optionrF  sF  @г#Cmm%label#CmmF  F  @ F  F  @@@@@@/3dccddddd@r6@A @@@$ @@@1!@@г_0instruction_desc&LinearG  G  @ G  G  @@@@@@2 @@C@@3 F   @@@E   @@P@@@@'6relax_intop_checkboundVI  I  @б@гL$unitJ  J  "@@ @@@43@@l@A@@г0instruction_desc&LinearK # *K # 0@ K # 1K # A@@@@@@5 @@@@@6! @@@I   @@Q@@@@!:relax_intop_imm_checkboundWL B HL B b@б%boundг䠐#intM c pM c s@@ @@@73@<Q!@A@@г0instruction_desc&LinearN t {N t @ N t N t @@@@@@8 @@)@@9"M c j @@@%L B D @@2R@@@@"1relax_specific_opj0O  1O  @б@г$Arch2specific_operation$ArchAO  BO  @ EO  FO  @@@@@@3#""#####@F]*@A @@г0instruction_desc&LinearYO  ZO  @ ]O  ^O  @@@@@@ @@@@@& @@@iO   @@vS@@@@!@a[A@@@@@@y@r@@@Z@S@@3WVVWWWWW@5U@A3ZYYZZZZZ@W@AQP  @@@Q@3`__`````@]@A@@ @@@3feefffff@dA@@A@@{@t3@@@@@@@O@H@@@H@@@)@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt E44E4@ H Mark Shinwell, Jane Street Europe FF@ H GG@ H Copyright 2015 Institut National de Recherche en Informatique et HHg@ H en Automatique. IhhIh@ H JJ@ H All rights reserved. This file is distributed under the terms of KKN@ H the GNU Lesser General Public License version 2.1, with the LOOLO@ H special exception on linking described in the file LICENSE. MM@ H NN5@ H************************************************************************O66O6@ s The distance between two instructions, in arbitrary units (typically the natural word size of instructions).  RS@ b The various types of conditional branches for a given target that may require relaxation. WDHX@ 6 All values of type [t] that the emitter may produce. [[@ If [max_displacement branch] is [n] then [branch] is assumed to reach any address in the range [pc - n, pc + n] (inclusive), after the [pc] of the branch has been adjusted by [offset_pc_at_branch] (see below). ^ a@  Which variety of conditional branch may be produced by the emitter for a given instruction description. For the moment we assume that only one such variety per instruction description is needed. N.B. The only instructions supported are the following: - Lop (Ialloc _) - Lop (Ipoll _) - Lop (Iintop Icheckbound) - Lop (Iintop_imm (Icheckbound, _)) - Lop (Ispecific _) - Lcondbranch (_, _) - Lcondbranch3 (_, _, _) [classify_instr] is expected to return [None] when called on any instruction not in this list. %d+/&q  @ The value to be added to the program counter (in [distance] units) when it is at a branch instruction, prior to calculating the distance to a branch target. +u  ,w  @ * The maximum size of a given instruction. 1z  2z  @ Insertion of target-specific code to relax operations that cannot be relaxed generically. It is assumed that these rewrites do not change the size of out-of-line code (cf. branch_relaxation.mli). 7} Z \8  0@@-./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"-ctu S/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores >10/.-,+*)('&%$#"! @@0uzF`Cx3jiijjjjj@g@@$Arch0!̗eQ\T.󄠠(Asttypes0E\eǥ]k6e+Backend_var0yyoR=Yfܠ)Parsetree0Z<4$PC$Path09{ְZsv)Primitive0{mV|{J #Reg0HF p3D7%Shape0OĸT>b&Stdlib0y{x!O!+Stdlib__Arg033PұIPWm堠.Stdlib__Buffer0_?K|/V>O}~Nࠠ.Stdlib__Digest0 Jjrڵ6.Stdlib__Domain0iW',P6wz.Stdlib__Either0FԤ) 4'>.Stdlib__Format0)n[-Ob/Stdlib__Hashtbl0^iaxG$+,Stdlib__Lazy0OM>x9