Caml1999I031&{A6Branch_relaxation_intf!Sr(distances8@@@A#intA@@@@@@@ !asmcomp/branch_relaxation_intf.mlTT'@@A@@A@Ӡ+Cond_brancht@!t|8@@@A@@@@@YY@@@@(AA@#all}$listI@@@@@@@$\%\@@*Su}Ck-Stdlib__Uchar0*Ujmyc6]]W.Stdlib__String0I3UK# +Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b.Stdlib__Printf0!A܏@8j(+Stdlib__Map0kZ,ҷ'V.Stdlib__Lexing01'jh,-k4,Stdlib__Lazy0C 4 "$p1tU/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Digest0aI]2t*x4%".Stdlib__Buffer0K ɦb+Z8)#KH"-Stdlib__Array0b-YOe+Stdlib__Arg0h8ILV_&Stdlib0yӶ~*%Shape0H[DTċwToe@Q#Reg0,7:sHQDH^'Profile0f LPа8)Primitive0յ_9|br$Path0L%SsN|#Ɣj)Parsetree0`ⰧkRE+Outcometree0gCtrG@@I@@0=<<=====@:@AJI@+Cond_branchBoV)2pV)=@@БA(!t C}Y~Y@@8@@@A@@@@@Y@@@@A@@A@@@0]\\]]]]]@[ys@A@#all \\@г$list\ \@г$!t\\ @@ @@@0@$/)@A@@@ @@@ @@@\@@B@@@ 0max_displacementb b@б@гI!tbb@@ @@@0@&C@A@@гŠ(distanceb!b)@@ @@@@@@@@@@@b @@C@ @@.classify_instrr  r  @б@г&Linear0instruction_desc&Linearr  r  @@@@@%0@6K$@A@@гY&option r   r  @г!tr  r  @@ @@@&@@@@@@( @@@$@@)!'@@@$r  @@1F@@@'@A@}@vO@H @@0      @0J@A 0        @@A4V)@5s  @@@7V)+@@3offset_pc_at_branchAx  Bx  @г:(distanceJx  Kx  @@ @@@*0)(()))))@@A@@{@t9@@@%gG@A@@@_x  @@lH@@@*instr_sizej{  k{  @б@г'fundecl&Linearx{  #y{  1@@ @@@+0WVVWWWWW@/B"@A@@б@г0instruction_desc&Linear{  5{  L@@ @@@,@@г(distance{  P{  X@@ @@@-!@@@@@.$@@@*@@/'- @@@{  @@I@@@-0relax_allocation)@ 1 7@ 1 G@б)num_bytesг#intA H YA H \@@ @@@00@H`!@A@@б'dbginfoг)Debuginfo-alloc_dbginfo)DebuginfoB ] lB ] @@@@@@@г0instruction_desc&LinearC  C  @@ @@@(@@&@@+B ] d @@=2@@/A H O @@@@ 1 3@@J@@@6*relax_pollNE  E  @б,return_labelг^&optionF  F  @г#Cmm%label#CmmF  F  @@@@@.0@`w0@A@@@ @@@0 @@г<0instruction_desc&Linear5G  6G  @@ @@@1@@7@@2>F   @@@AE   @@NO@@@!6relax_intop_checkboundOLI  MI  @б@г$unitWJ  XJ  "@@ @@@3065566666@:`@A@@гp0instruction_desc&LineariK # *jK # A@@ @@@4@@@@@5@@@tI   @@P@ @@:relax_intop_imm_checkboundPL B HL B b@б%boundгq#intM c pM c s@@ @@@60kjjkkkkk@6K!@A@@г0instruction_desc&LinearN t {N t @@ @@@7@@#@@8M c j @@@L B D @@Q@@@1relax_specific_opcO  O  @б@г$Arch2specific_operation$ArchO  O  @@@@@0@:Q$@A@@г0instruction_desc&LinearO  O  @@ @@@@@@@@@@@O   @@R@ @@@A@@@@@@I@B@@@{N@G@@0@/I@A0@@AQP  @@@Q@@0@@@@  @S@@0@A@@A@i@b;@4@@@@@@z@s,@%@@@xI@@@*"@@@ H************************************************************************-A@@.A@L@ H 3BMM4BM@ H OCaml 9C:C@ H ?D@D3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt EE44FE4@ H Mark Shinwell, Jane Street Europe KFLF@ H QGRG@ H Copyright 2015 Institut National de Recherche en Informatique et WHXHg@ H en Automatique. ]Ihh^Ih@ H cJdJ@ H All rights reserved. This file is distributed under the terms of iKjKN@ H the GNU Lesser General Public License version 2.1, with the oLOOpLO@ H special exception on linking described in the file LICENSE. uMvM@ H {N|N5@ 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. z  z  @ 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). } Z \  0@@*./ocamlopt"-g)-nostdlib"-I&stdlib"-I1otherlibs/dynlink0-strict-sequence*-principal(-absname"-w>+a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-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(toplevel2-function-sections"-c"-I'asmcomp 3/home/barsac/ci/builds/workspace/step-by-step-build 0/$#"! @0uzF`Cx0@@@$Arch0&s= k&1Ǥ(Asttypes0'$O~7+Backend_var0@3AM_{0 ]'QB35Build_path_prefix_map0xөvĠ8CamlinternalFormatBasics0cEXy*Su}Ck)Targetint0aDFscgjg .Type_immediacy0dV^25b)̓ԆSj%Types0lm?ƈ(Warnings0zdͦkUe$@0 ]'QB3AN@LK@@@@TSLK@@@@@@! @@@@@@@P@C@@A