Artifact 660dfc3e1dd56244cc2b4852d60c3b7368cd7451:


0000: 23 69 66 6e 64 65 66 20 5f 61 76 63 61 6c 6c 5f  #ifndef _avcall_
0010: 73 70 61 72 63 36 34 5f 63 09 09 09 09 2f 2a 2d  sparc64_c..../*-
0020: 2a 2d 20 43 20 2d 2a 2d 2a 2f 0a 23 64 65 66 69  *- C -*-*/.#defi
0030: 6e 65 20 5f 61 76 63 61 6c 6c 5f 73 70 61 72 63  ne _avcall_sparc
0040: 36 34 5f 63 0a 2f 2a 2a 0a 20 20 43 6f 70 79 72  64_c./**.  Copyr
0050: 69 67 68 74 20 31 39 39 33 20 42 69 6c 6c 20 54  ight 1993 Bill T
0060: 72 69 67 67 73 2c 20 3c 42 69 6c 6c 2e 54 72 69  riggs, <Bill.Tri
0070: 67 67 73 40 69 6e 72 69 61 6c 70 65 73 2e 66 72  ggs@inrialpes.fr
0080: 3e 0a 20 20 43 6f 70 79 72 69 67 68 74 20 31 39  >.  Copyright 19
0090: 39 35 2d 31 39 39 39 20 42 72 75 6e 6f 20 48 61  95-1999 Bruno Ha
00a0: 69 62 6c 65 2c 20 3c 62 72 75 6e 6f 40 63 6c 69  ible, <bruno@cli
00b0: 73 70 2e 6f 72 67 3e 0a 0a 20 20 54 68 69 73 20  sp.org>..  This 
00c0: 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65  is free software
00d0: 20 64 69 73 74 72 69 62 75 74 65 64 20 75 6e 64   distributed und
00e0: 65 72 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72  er the GNU Gener
00f0: 61 6c 20 50 75 62 6c 69 63 0a 20 20 4c 69 63 65  al Public.  Lice
0100: 6e 63 65 20 64 65 73 63 72 69 62 65 64 20 69 6e  nce described in
0110: 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e   the file COPYIN
0120: 47 2e 20 43 6f 6e 74 61 63 74 20 74 68 65 20 61  G. Contact the a
0130: 75 74 68 6f 72 20 69 66 0a 20 20 79 6f 75 20 64  uthor if.  you d
0140: 6f 6e 27 74 20 68 61 76 65 20 74 68 69 73 20 6f  on't have this o
0150: 72 20 63 61 6e 27 74 20 6c 69 76 65 20 77 69 74  r can't live wit
0160: 68 20 69 74 2e 20 54 68 65 72 65 20 69 73 20 41  h it. There is A
0170: 42 53 4f 4c 55 54 45 4c 59 0a 20 20 4e 4f 20 57  BSOLUTELY.  NO W
0180: 41 52 52 41 4e 54 59 2c 20 65 78 70 6c 69 63 69  ARRANTY, explici
0190: 74 20 6f 72 20 69 6d 70 6c 69 65 64 2c 20 6f 6e  t or implied, on
01a0: 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 2e 0a   this software..
01b0: 2a 2a 2f 0a 2f 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  **/./*----------
01c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 21  ------------.  !
0200: 21 21 20 54 48 49 53 20 52 4f 55 54 49 4e 45 20  !! THIS ROUTINE 
0210: 4d 55 53 54 20 42 45 20 43 4f 4d 50 49 4c 45 44  MUST BE COMPILED
0220: 20 67 63 63 20 2d 4f 20 21 21 21 0a 0a 20 20 46   gcc -O !!!..  F
0230: 6f 72 65 69 67 6e 20 66 75 6e 63 74 69 6f 6e 20  oreign function 
0240: 69 6e 74 65 72 66 61 63 65 20 66 6f 72 20 61 20  interface for a 
0250: 53 70 61 72 63 20 76 39 20 69 6e 20 36 34 2d 62  Sparc v9 in 64-b
0260: 69 74 20 6d 6f 64 65 20 77 69 74 68 20 67 63 63  it mode with gcc
0270: 2e 0a 0a 20 20 54 68 69 73 20 63 61 6c 6c 73 20  ...  This calls 
0280: 61 20 43 20 66 75 6e 63 74 69 6f 6e 20 77 69 74  a C function wit
0290: 68 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 6c 69  h an argument li
02a0: 73 74 20 62 75 69 6c 74 20 75 70 20 75 73 69 6e  st built up usin
02b0: 67 20 6d 61 63 72 6f 73 0a 20 20 64 65 66 69 6e  g macros.  defin
02c0: 65 64 20 69 6e 20 61 76 5f 63 61 6c 6c 2e 68 2e  ed in av_call.h.
02d0: 0a 0a 20 20 53 70 61 72 63 20 36 34 2d 62 69 74  ..  Sparc 64-bit
02e0: 20 41 72 67 75 6d 65 6e 74 20 50 61 73 73 69 6e   Argument Passin
02f0: 67 20 43 6f 6e 76 65 6e 74 69 6f 6e 73 0a 0a 20  g Conventions.. 
0300: 20 54 68 65 20 61 72 67 75 6d 65 6e 74 20 72 65   The argument re
0310: 67 69 73 74 65 72 73 20 61 72 65 20 6c 61 69 64  gisters are laid
0320: 20 6f 75 74 20 61 73 20 61 6e 20 61 72 72 61 79   out as an array
0330: 20 6f 66 20 31 36 20 65 6c 65 6d 65 6e 74 73 0a   of 16 elements.
0340: 20 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20    and arguments 
0350: 61 72 65 20 61 64 64 65 64 20 73 65 71 75 65 6e  are added sequen
0360: 74 69 61 6c 6c 79 2e 20 20 54 68 65 20 66 69 72  tially.  The fir
0370: 73 74 20 36 20 69 6e 74 20 61 72 67 73 20 61 6e  st 6 int args an
0380: 64 20 75 70 20 74 6f 20 74 68 65 0a 20 20 66 69  d up to the.  fi
0390: 72 73 74 20 31 36 20 66 70 20 61 72 67 73 20 28  rst 16 fp args (
03a0: 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 73 69 7a  depending on siz
03b0: 65 29 20 61 72 65 20 70 61 73 73 65 64 20 69 6e  e) are passed in
03c0: 20 72 65 67 73 2e 0a 0a 20 20 53 6c 6f 74 20 20   regs...  Slot  
03d0: 20 20 53 74 61 63 6b 20 20 20 49 6e 74 65 67 72    Stack   Integr
03e0: 61 6c 20 20 20 46 6c 6f 61 74 20 20 20 46 6c 6f  al   Float   Flo
03f0: 61 74 20 69 6e 20 73 74 72 75 63 74 75 72 65 20  at in structure 
0400: 20 20 44 6f 75 62 6c 65 20 20 20 4c 6f 6e 67 20    Double   Long 
0410: 44 6f 75 62 6c 65 0a 20 20 2d 2d 2d 2d 20 20 20  Double.  ----   
0420: 20 2d 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d 2d   -----   -------
0430: 2d 20 20 20 2d 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d  -   -----   ----
0440: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20  --------------  
0450: 20 2d 2d 2d 2d 2d 2d 20 20 20 2d 2d 2d 2d 2d 2d   ------   ------
0460: 2d 2d 2d 2d 2d 0a 20 20 20 31 35 20 20 20 5b 53  -----.   15   [S
0470: 50 2b 32 34 38 5d 20 20 20 20 20 20 20 20 20 20  P+248]          
0480: 20 20 20 20 25 66 33 31 20 20 20 20 20 20 20 25      %f31       %
0490: 66 33 30 2c 25 66 33 31 20 20 20 20 20 20 20 20  f30,%f31        
04a0: 20 25 64 33 30 0a 20 20 20 31 34 20 20 20 5b 53   %d30.   14   [S
04b0: 50 2b 32 34 30 5d 20 20 20 20 20 20 20 20 20 20  P+240]          
04c0: 20 20 20 20 25 66 32 39 20 20 20 20 20 20 20 25      %f29       %
04d0: 66 32 38 2c 25 66 32 39 20 20 20 20 20 20 20 20  f28,%f29        
04e0: 20 25 64 32 38 20 20 20 20 20 20 20 25 71 32 38   %d28       %q28
04f0: 0a 20 20 20 31 33 20 20 20 5b 53 50 2b 32 33 32  .   13   [SP+232
0500: 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25  ]              %
0510: 66 32 37 20 20 20 20 20 20 20 25 66 32 36 2c 25  f27       %f26,%
0520: 66 32 37 20 20 20 20 20 20 20 20 20 25 64 32 36  f27         %d26
0530: 0a 20 20 20 31 32 20 20 20 5b 53 50 2b 32 32 34  .   12   [SP+224
0540: 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25  ]              %
0550: 66 32 35 20 20 20 20 20 20 20 25 66 32 34 2c 25  f25       %f24,%
0560: 66 32 35 20 20 20 20 20 20 20 20 20 25 64 32 34  f25         %d24
0570: 20 20 20 20 20 20 20 25 71 32 34 0a 20 20 20 31         %q24.   1
0580: 31 20 20 20 5b 53 50 2b 32 31 36 5d 20 20 20 20  1   [SP+216]    
0590: 20 20 20 20 20 20 20 20 20 20 25 66 32 33 20 20            %f23  
05a0: 20 20 20 20 20 25 66 32 32 2c 25 66 32 33 20 20       %f22,%f23  
05b0: 20 20 20 20 20 20 20 25 64 32 32 0a 20 20 20 31         %d22.   1
05c0: 30 20 20 20 5b 53 50 2b 32 30 38 5d 20 20 20 20  0   [SP+208]    
05d0: 20 20 20 20 20 20 20 20 20 20 25 66 32 31 20 20            %f21  
05e0: 20 20 20 20 20 25 66 32 30 2c 25 66 32 31 20 20       %f20,%f21  
05f0: 20 20 20 20 20 20 20 25 64 32 30 20 20 20 20 20         %d20     
0600: 20 20 25 71 32 30 0a 20 20 20 20 39 20 20 20 5b    %q20.    9   [
0610: 53 50 2b 32 30 30 5d 20 20 20 20 20 20 20 20 20  SP+200]         
0620: 20 20 20 20 20 25 66 31 39 20 20 20 20 20 20 20       %f19       
0630: 25 66 31 38 2c 25 66 31 39 20 20 20 20 20 20 20  %f18,%f19       
0640: 20 20 25 64 31 38 0a 20 20 20 20 38 20 20 20 5b    %d18.    8   [
0650: 53 50 2b 31 39 32 5d 20 20 20 20 20 20 20 20 20  SP+192]         
0660: 20 20 20 20 20 25 66 31 37 20 20 20 20 20 20 20       %f17       
0670: 25 66 31 36 2c 25 66 31 37 20 20 20 20 20 20 20  %f16,%f17       
0680: 20 20 25 64 31 36 20 20 20 20 20 20 20 25 71 31    %d16       %q1
0690: 36 0a 20 20 20 20 37 20 20 20 5b 53 50 2b 31 38  6.    7   [SP+18
06a0: 34 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  4]              
06b0: 25 66 31 35 20 20 20 20 20 20 20 25 66 31 34 2c  %f15       %f14,
06c0: 25 66 31 35 20 20 20 20 20 20 20 20 20 25 64 31  %f15         %d1
06d0: 34 0a 20 20 20 20 36 20 20 20 5b 53 50 2b 31 37  4.    6   [SP+17
06e0: 36 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20  6]              
06f0: 25 66 31 33 20 20 20 20 20 20 20 25 66 31 32 2c  %f13       %f12,
0700: 25 66 31 33 20 20 20 20 20 20 20 20 20 25 64 31  %f13         %d1
0710: 32 20 20 20 20 20 20 20 25 71 31 32 0a 20 20 20  2       %q12.   
0720: 20 35 20 20 20 5b 53 50 2b 31 36 38 5d 20 20 20   5   [SP+168]   
0730: 20 20 25 6f 35 20 20 20 20 20 20 25 66 31 31 20    %o5      %f11 
0740: 20 20 20 20 20 20 25 66 31 30 2c 25 66 31 31 20        %f10,%f11 
0750: 20 20 20 20 20 20 20 20 25 64 31 30 0a 20 20 20          %d10.   
0760: 20 34 20 20 20 5b 53 50 2b 31 36 30 5d 20 20 20   4   [SP+160]   
0770: 20 20 25 6f 34 20 20 20 20 20 20 20 25 66 39 20    %o4       %f9 
0780: 20 20 20 20 20 20 20 25 66 38 2c 25 66 39 20 20         %f8,%f9  
0790: 20 20 20 20 20 20 20 20 20 25 64 38 20 20 20 20           %d8    
07a0: 20 20 20 20 25 71 38 0a 20 20 20 20 33 20 20 20      %q8.    3   
07b0: 5b 53 50 2b 31 35 32 5d 20 20 20 20 20 25 6f 33  [SP+152]     %o3
07c0: 20 20 20 20 20 20 20 25 66 37 20 20 20 20 20 20         %f7      
07d0: 20 20 25 66 36 2c 25 66 37 20 20 20 20 20 20 20    %f6,%f7       
07e0: 20 20 20 20 25 64 36 0a 20 20 20 20 32 20 20 20      %d6.    2   
07f0: 5b 53 50 2b 31 34 34 5d 20 20 20 20 20 25 6f 32  [SP+144]     %o2
0800: 20 20 20 20 20 20 20 25 66 35 20 20 20 20 20 20         %f5      
0810: 20 20 25 66 34 2c 25 66 35 20 20 20 20 20 20 20    %f4,%f5       
0820: 20 20 20 20 25 64 34 20 20 20 20 20 20 20 20 25      %d4        %
0830: 71 34 0a 20 20 20 20 31 20 20 20 5b 53 50 2b 31  q4.    1   [SP+1
0840: 33 36 5d 20 20 20 20 20 25 6f 31 20 20 20 20 20  36]     %o1     
0850: 20 20 25 66 33 20 20 20 20 20 20 20 20 25 66 32    %f3        %f2
0860: 2c 25 66 33 20 20 20 20 20 20 20 20 20 20 20 25  ,%f3           %
0870: 64 32 0a 20 20 20 20 30 20 20 20 5b 53 50 2b 31  d2.    0   [SP+1
0880: 32 38 5d 20 20 20 20 20 25 6f 30 20 20 20 20 20  28]     %o0     
0890: 20 20 25 66 31 20 20 20 20 20 20 20 20 25 66 30    %f1        %f0
08a0: 2c 25 66 31 20 20 20 20 20 20 20 20 20 20 20 25  ,%f1           %
08b0: 64 30 20 20 20 20 20 20 20 20 25 71 30 0a 0a 20  d0        %q0.. 
08c0: 20 48 65 72 65 20 53 50 20 3d 20 25 73 70 20 69   Here SP = %sp i
08d0: 66 20 2d 6d 6e 6f 2d 73 74 61 63 6b 2d 62 69 61  f -mno-stack-bia
08e0: 73 20 6f 72 20 25 73 70 2b 73 74 61 63 6b 5f 62  s or %sp+stack_b
08f0: 69 61 73 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a  ias otherwise...
0900: 20 20 49 6e 74 65 67 72 61 6c 20 61 72 67 75 6d    Integral argum
0910: 65 6e 74 73 20 61 72 65 20 61 6c 77 61 79 73 20  ents are always 
0920: 70 61 73 73 65 64 20 61 73 20 36 34 20 62 69 74  passed as 64 bit
0930: 20 71 75 61 6e 74 69 74 69 65 73 20 61 70 70 72   quantities appr
0940: 6f 70 72 69 61 74 65 6c 79 0a 20 20 65 78 74 65  opriately.  exte
0950: 6e 64 65 64 2e 0a 0a 20 20 50 61 73 73 69 6e 67  nded...  Passing
0960: 20 6f 66 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69   of floating poi
0970: 6e 74 20 76 61 6c 75 65 73 20 69 73 20 68 61 6e  nt values is han
0980: 64 6c 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 2e  dled as follows.
0990: 0a 20 20 49 66 20 61 20 70 72 6f 74 6f 74 79 70  .  If a prototyp
09a0: 65 20 69 73 20 69 6e 20 73 63 6f 70 65 3a 0a 20  e is in scope:. 
09b0: 20 20 20 49 66 20 74 68 65 20 76 61 6c 75 65 20     If the value 
09c0: 69 73 20 69 6e 20 61 20 6e 61 6d 65 64 20 61 72  is in a named ar
09d0: 67 75 6d 65 6e 74 20 28 69 2e 65 2e 20 6e 6f 74  gument (i.e. not
09e0: 20 61 20 73 74 64 61 72 67 20 66 75 6e 63 74 69   a stdarg functi
09f0: 6f 6e 20 6f 72 20 61 0a 20 20 20 20 76 61 6c 75  on or a.    valu
0a00: 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68  e not part of th
0a10: 65 20 60 2e 2e 2e 27 29 20 74 68 65 6e 20 74 68  e `...') then th
0a20: 65 20 76 61 6c 75 65 20 69 73 20 70 61 73 73 65  e value is passe
0a30: 64 20 69 6e 20 74 68 65 20 61 70 70 72 6f 70 72  d in the appropr
0a40: 69 61 74 65 0a 20 20 20 20 66 70 20 72 65 67 2e  iate.    fp reg.
0a50: 0a 20 20 20 20 49 66 20 74 68 65 20 76 61 6c 75  .    If the valu
0a60: 65 20 69 73 20 70 61 72 74 20 6f 66 20 74 68 65  e is part of the
0a70: 20 60 2e 2e 2e 27 20 61 6e 64 20 69 73 20 70 61   `...' and is pa
0a80: 73 73 65 64 20 69 6e 20 6f 6e 65 20 6f 66 20 74  ssed in one of t
0a90: 68 65 20 66 69 72 73 74 20 36 0a 20 20 20 20 73  he first 6.    s
0aa0: 6c 6f 74 73 20 74 68 65 6e 20 74 68 65 20 76 61  lots then the va
0ab0: 6c 75 65 20 69 73 20 70 61 73 73 65 64 20 69 6e  lue is passed in
0ac0: 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65   the appropriate
0ad0: 20 69 6e 74 20 72 65 67 2e 0a 20 20 20 20 49 66   int reg..    If
0ae0: 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 70 61   the value is pa
0af0: 72 74 20 6f 66 20 74 68 65 20 60 2e 2e 2e 27 20  rt of the `...' 
0b00: 61 6e 64 20 69 73 20 6e 6f 74 20 70 61 73 73 65  and is not passe
0b10: 64 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20  d in one of the 
0b20: 66 69 72 73 74 20 36 0a 20 20 20 20 73 6c 6f 74  first 6.    slot
0b30: 73 20 74 68 65 6e 20 74 68 65 20 76 61 6c 75 65  s then the value
0b40: 20 69 73 20 70 61 73 73 65 64 20 69 6e 20 6d 65   is passed in me
0b50: 6d 6f 72 79 2e 0a 20 20 49 66 20 61 20 70 72 6f  mory..  If a pro
0b60: 74 6f 74 79 70 65 20 69 73 20 6e 6f 74 20 69 6e  totype is not in
0b70: 20 73 63 6f 70 65 3a 0a 20 20 20 20 49 66 20 74   scope:.    If t
0b80: 68 65 20 76 61 6c 75 65 20 69 73 20 6f 6e 65 20  he value is one 
0b90: 6f 66 20 74 68 65 20 66 69 72 73 74 20 36 20 61  of the first 6 a
0ba0: 72 67 75 6d 65 6e 74 73 20 74 68 65 20 76 61 6c  rguments the val
0bb0: 75 65 20 69 73 20 70 61 73 73 65 64 20 69 6e 20  ue is passed in 
0bc0: 74 68 65 0a 20 20 20 20 61 70 70 72 6f 70 72 69  the.    appropri
0bd0: 61 74 65 20 69 6e 74 65 67 65 72 20 72 65 67 20  ate integer reg 
0be0: 61 6e 64 20 74 68 65 20 61 70 70 72 6f 70 72 69  and the appropri
0bf0: 61 74 65 20 66 70 20 72 65 67 2e 0a 20 20 20 20  ate fp reg..    
0c00: 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20  If the value is 
0c10: 6e 6f 74 20 6f 6e 65 20 6f 66 20 74 68 65 20 66  not one of the f
0c20: 69 72 73 74 20 36 20 61 72 67 75 6d 65 6e 74 73  irst 6 arguments
0c30: 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 70 61   the value is pa
0c40: 73 73 65 64 20 69 6e 0a 20 20 20 20 74 68 65 20  ssed in.    the 
0c50: 61 70 70 72 6f 70 72 69 61 74 65 20 66 70 20 72  appropriate fp r
0c60: 65 67 20 61 6e 64 20 69 6e 20 6d 65 6d 6f 72 79  eg and in memory
0c70: 2e 0a 0a 20 20 52 65 6d 61 69 6e 69 6e 67 20 61  ...  Remaining a
0c80: 72 67 75 6d 65 6e 74 73 20 61 72 65 20 70 75 73  rguments are pus
0c90: 68 65 64 20 6f 6e 74 6f 20 74 68 65 20 73 74 61  hed onto the sta
0ca0: 63 6b 20 73 74 61 72 74 69 6e 67 20 61 74 20 61  ck starting at a
0cb0: 20 66 69 78 65 64 20 6f 66 66 73 65 74 0a 20 20   fixed offset.  
0cc0: 53 70 61 63 65 20 69 73 20 6c 65 66 74 20 6f 6e  Space is left on
0cd0: 20 74 68 65 20 73 74 61 63 6b 20 66 72 61 6d 65   the stack frame
0ce0: 20 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 73   for temporary s
0cf0: 74 6f 72 61 67 65 20 6f 66 20 74 68 65 20 72 65  torage of the re
0d00: 67 69 73 74 65 72 0a 20 20 61 72 67 75 6d 65 6e  gister.  argumen
0d10: 74 73 20 61 73 20 77 65 6c 6c 2e 0a 0a 20 20 49  ts as well...  I
0d20: 6e 74 65 67 65 72 73 20 73 68 6f 72 74 65 72 20  ntegers shorter 
0d30: 74 68 61 6e 20 60 6c 6f 6e 67 27 20 61 72 65 20  than `long' are 
0d40: 61 6c 77 61 79 73 20 70 72 6f 6d 6f 74 65 64 20  always promoted 
0d50: 74 6f 20 77 6f 72 64 2d 6c 65 6e 67 74 68 0a 20  to word-length. 
0d60: 20 28 7a 65 72 6f 2d 65 78 74 65 6e 64 65 64 20   (zero-extended 
0d70: 6f 72 20 73 69 67 6e 2d 65 78 74 65 6e 64 65 64  or sign-extended
0d80: 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74  , according to t
0d90: 68 65 69 72 20 74 79 70 65 29 2e 20 53 74 72 75  heir type). Stru
0da0: 63 74 75 72 65 73 0a 20 20 3c 3d 20 31 36 20 62  ctures.  <= 16 b
0db0: 79 74 65 73 20 61 72 65 20 70 61 73 73 65 64 20  ytes are passed 
0dc0: 65 6d 62 65 64 64 65 64 20 69 6e 20 74 68 65 20  embedded in the 
0dd0: 61 72 67 75 6d 65 6e 74 20 73 65 71 75 65 6e 63  argument sequenc
0de0: 65 3b 20 62 69 67 67 65 72 20 73 74 72 75 63 74  e; bigger struct
0df0: 75 72 65 73 0a 20 20 61 72 65 20 70 61 73 73 65  ures.  are passe
0e00: 64 20 62 79 20 72 65 66 65 72 65 6e 63 65 2e 0a  d by reference..
0e10: 0a 20 20 49 6e 74 65 67 65 72 73 20 61 6e 64 20  .  Integers and 
0e20: 70 6f 69 6e 74 65 72 73 20 61 72 65 20 72 65 74  pointers are ret
0e30: 75 72 6e 65 64 20 69 6e 20 6f 30 2c 20 66 6c 6f  urned in o0, flo
0e40: 61 74 73 20 69 6e 20 66 30 2c 20 64 6f 75 62 6c  ats in f0, doubl
0e50: 65 73 20 69 6e 0a 20 20 66 30 2f 66 31 2e 20 20  es in.  f0/f1.  
0e60: 49 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20  If the function 
0e70: 72 65 74 75 72 6e 73 20 61 20 73 74 72 75 63 74  returns a struct
0e80: 75 72 65 20 61 20 70 6f 69 6e 74 65 72 20 74 6f  ure a pointer to
0e90: 20 73 70 61 63 65 0a 20 20 61 6c 6c 6f 63 61 74   space.  allocat
0ea0: 65 64 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72  ed by the caller
0eb0: 20 69 73 20 70 75 73 68 65 64 20 6f 6e 74 6f 20   is pushed onto 
0ec0: 74 68 65 20 73 74 61 63 6b 20 69 6d 6d 65 64 69  the stack immedi
0ed0: 61 74 65 6c 79 0a 20 20 62 65 66 6f 72 65 20 74  ately.  before t
0ee0: 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75  he function argu
0ef0: 6d 65 6e 74 73 2e 20 53 74 72 75 63 74 75 72 65  ments. Structure
0f00: 73 20 3c 3d 20 33 32 20 62 79 74 65 73 20 61 72  s <= 32 bytes ar
0f10: 65 20 72 65 74 75 72 6e 65 64 20 69 6e 0a 20 20  e returned in.  
0f20: 72 65 67 69 73 74 65 72 73 20 28 69 6e 74 65 67  registers (integ
0f30: 65 72 2f 66 6c 6f 61 74 2f 64 6f 75 62 6c 65 20  er/float/double 
0f40: 72 65 67 69 73 74 65 72 73 2c 20 61 73 20 61 70  registers, as ap
0f50: 70 72 6f 70 72 69 61 74 65 29 2e 0a 0a 20 20 4c  propriate)...  L
0f60: 6f 6e 67 20 64 6f 75 62 6c 65 73 20 61 72 65 20  ong doubles are 
0f70: 31 36 2d 62 79 74 65 20 61 6c 69 67 6e 65 64 2c  16-byte aligned,
0f80: 20 62 75 74 20 77 65 20 64 6f 6e 27 74 20 64 65   but we don't de
0f90: 61 6c 20 77 69 74 68 20 74 68 69 73 20 68 65 72  al with this her
0fa0: 65 2c 20 73 6f 0a 20 20 77 65 20 61 73 73 75 6d  e, so.  we assum
0fb0: 65 20 38 2d 62 79 74 65 20 61 6c 69 67 6e 6d 65  e 8-byte alignme
0fc0: 6e 74 20 66 6f 72 20 65 76 65 72 79 74 68 69 6e  nt for everythin
0fd0: 67 2e 0a 0a 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  g...  ----------
0fe0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0ff0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 2f 0a 23  ------------*/.#
1020: 69 6e 63 6c 75 64 65 20 22 61 76 63 61 6c 6c 2e  include "avcall.
1030: 68 2e 69 6e 22 0a 0a 23 64 65 66 69 6e 65 20 52  h.in"..#define R
1040: 45 54 55 52 4e 28 54 59 50 45 2c 56 41 4c 29 09  ETURN(TYPE,VAL).
1050: 28 2a 28 54 59 50 45 2a 29 6c 2d 3e 72 61 64 64  (*(TYPE*)l->radd
1060: 72 20 3d 20 28 54 59 50 45 29 28 56 41 4c 29 29  r = (TYPE)(VAL))
1070: 0a 23 64 65 66 69 6e 65 20 4f 46 46 53 45 54 4f  .#define OFFSETO
1080: 46 28 73 74 72 75 63 74 2c 6d 65 6d 62 65 72 29  F(struct,member)
1090: 20 28 28 69 6e 74 29 26 28 28 28 73 74 72 75 63   ((int)&(((struc
10a0: 74 2a 29 30 29 2d 3e 6d 65 6d 62 65 72 29 29 0a  t*)0)->member)).
10b0: 0a 72 65 67 69 73 74 65 72 20 76 6f 69 64 2a 20  .register void* 
10c0: 63 61 6c 6c 65 65 09 5f 5f 61 73 6d 5f 5f 28 22  callee.__asm__("
10d0: 25 67 32 22 29 3b 20 20 2f 2a 20 61 6e 79 20 67  %g2");  /* any g
10e0: 6c 6f 62 61 6c 20 6f 72 20 6c 6f 63 61 6c 20 72  lobal or local r
10f0: 65 67 69 73 74 65 72 20 2a 2f 0a 72 65 67 69 73  egister */.regis
1100: 74 65 72 20 5f 5f 61 76 77 6f 72 64 20 6f 30 09  ter __avword o0.
1110: 5f 5f 61 73 6d 5f 5f 28 22 25 6f 30 22 29 3b 0a  __asm__("%o0");.
1120: 72 65 67 69 73 74 65 72 20 5f 5f 61 76 77 6f 72  register __avwor
1130: 64 20 6f 31 09 5f 5f 61 73 6d 5f 5f 28 22 25 6f  d o1.__asm__("%o
1140: 31 22 29 3b 0a 72 65 67 69 73 74 65 72 20 5f 5f  1");.register __
1150: 61 76 77 6f 72 64 20 6f 32 09 5f 5f 61 73 6d 5f  avword o2.__asm_
1160: 5f 28 22 25 6f 32 22 29 3b 0a 72 65 67 69 73 74  _("%o2");.regist
1170: 65 72 20 5f 5f 61 76 77 6f 72 64 20 6f 33 09 5f  er __avword o3._
1180: 5f 61 73 6d 5f 5f 28 22 25 6f 33 22 29 3b 0a 72  _asm__("%o3");.r
1190: 65 67 69 73 74 65 72 20 5f 5f 61 76 77 6f 72 64  egister __avword
11a0: 20 6f 34 09 5f 5f 61 73 6d 5f 5f 28 22 25 6f 34   o4.__asm__("%o4
11b0: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 5f 5f 61  ");.register __a
11c0: 76 77 6f 72 64 20 6f 35 09 5f 5f 61 73 6d 5f 5f  vword o5.__asm__
11d0: 28 22 25 6f 35 22 29 3b 0a 0a 69 6e 74 0a 5f 5f  ("%o5");..int.__
11e0: 62 75 69 6c 74 69 6e 5f 61 76 63 61 6c 6c 28 61  builtin_avcall(a
11f0: 76 5f 61 6c 69 73 74 2a 20 6c 29 0a 7b 0a 20 20  v_alist* l).{.  
1200: 72 65 67 69 73 74 65 72 20 5f 5f 61 76 77 6f 72  register __avwor
1210: 64 2a 20 73 70 09 5f 5f 61 73 6d 5f 5f 28 22 25  d* sp.__asm__("%
1220: 73 70 22 29 3b 20 20 2f 2a 20 43 20 6e 61 6d 65  sp");  /* C name
1230: 73 20 66 6f 72 20 72 65 67 69 73 74 65 72 73 20  s for registers 
1240: 2a 2f 0a 20 20 72 65 67 69 73 74 65 72 20 66 6c  */.  register fl
1250: 6f 61 74 20 66 72 65 74 09 5f 5f 61 73 6d 5f 5f  oat fret.__asm__
1260: 28 22 25 66 30 22 29 3b 20 20 2f 2a 20 25 66 30  ("%f0");  /* %f0
1270: 20 2a 2f 0a 20 20 72 65 67 69 73 74 65 72 20 64   */.  register d
1280: 6f 75 62 6c 65 20 64 72 65 74 09 5f 5f 61 73 6d  ouble dret.__asm
1290: 5f 5f 28 22 25 66 30 22 29 3b 20 20 2f 2a 20 25  __("%f0");  /* %
12a0: 66 30 2c 25 66 31 20 2a 2f 0a 0a 20 20 5f 5f 61  f0,%f1 */..  __a
12b0: 76 77 6f 72 64 20 74 72 61 6d 70 6f 6c 69 6e 65  vword trampoline
12c0: 5b 36 5d 3b 09 09 2f 2a 20 72 6f 6f 6d 20 66 6f  [6];../* room fo
12d0: 72 20 61 20 74 72 61 6d 70 6f 6c 69 6e 65 20 2a  r a trampoline *
12e0: 2f 0a 20 20 5f 5f 61 76 77 6f 72 64 20 73 70 61  /.  __avword spa
12f0: 63 65 5b 5f 5f 41 56 5f 41 4c 49 53 54 5f 57 4f  ce[__AV_ALIST_WO
1300: 52 44 53 5d 3b 09 2f 2a 20 73 70 61 63 65 20 66  RDS];./* space f
1310: 6f 72 20 63 61 6c 6c 65 65 27 73 20 73 74 61 63  or callee's stac
1320: 6b 20 66 72 61 6d 65 20 2a 2f 0a 20 20 5f 5f 61  k frame */.  __a
1330: 76 77 6f 72 64 20 2a 61 72 67 66 72 61 6d 65 20  vword *argframe 
1340: 3d 20 73 70 20 2b 20 31 37 3b 09 09 2f 2a 20 73  = sp + 17;../* s
1350: 74 61 63 6b 20 6f 66 66 73 65 74 20 66 6f 72 20  tack offset for 
1360: 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 2a 2f  argument list */
1370: 0a 20 20 69 6e 74 20 61 72 67 6c 65 6e 20 3d 20  .  int arglen = 
1380: 6c 2d 3e 61 70 74 72 20 2d 20 6c 2d 3e 61 72 67  l->aptr - l->arg
1390: 73 3b 0a 20 20 5f 5f 61 76 77 6f 72 64 20 69 3b  s;.  __avword i;
13a0: 0a 0a 20 20 69 66 20 28 6c 2d 3e 66 61 72 67 5f  ..  if (l->farg_
13b0: 6d 61 73 6b 29 20 7b 0a 20 20 20 20 2f 2a 20 70  mask) {.    /* p
13c0: 75 73 68 20 6c 65 61 64 69 6e 67 20 66 6c 6f 61  ush leading floa
13d0: 74 20 61 72 67 73 20 2a 2f 0a 20 20 20 20 69 66  t args */.    if
13e0: 20 28 6c 2d 3e 66 61 72 67 5f 6d 61 73 6b 20 26   (l->farg_mask &
13f0: 20 28 31 3c 3c 30 29 29 0a 20 20 20 20 20 20 5f   (1<<0)).      _
1400: 5f 61 73 6d 5f 5f 28 22 6c 64 20 25 31 28 25 30  _asm__("ld %1(%0
1410: 29 2c 25 25 66 31 22 20 3a 20 3a 20 22 70 22 20  ),%%f1" : : "p" 
1420: 28 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f  (l), "i" OFFSETO
1430: 46 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b  F(av_alist,args[
1440: 30 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d  0]));.    if (l-
1450: 3e 66 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c  >farg_mask & (1<
1460: 3c 31 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  <1)).      __asm
1470: 5f 5f 28 22 6c 64 20 25 31 28 25 30 29 2c 25 25  __("ld %1(%0),%%
1480: 66 33 22 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c  f3" : : "p" (l),
1490: 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28 61 76   "i" OFFSETOF(av
14a0: 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 5d 29 29  _alist,args[1]))
14b0: 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e 66 61 72  ;.    if (l->far
14c0: 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c 32 29 29  g_mask & (1<<2))
14d0: 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f 5f 28 22  .      __asm__("
14e0: 6c 64 20 25 31 28 25 30 29 2c 25 25 66 35 22 20  ld %1(%0),%%f5" 
14f0: 3a 20 3a 20 22 70 22 20 28 6c 29 2c 20 22 69 22  : : "p" (l), "i"
1500: 20 4f 46 46 53 45 54 4f 46 28 61 76 5f 61 6c 69   OFFSETOF(av_ali
1510: 73 74 2c 61 72 67 73 5b 32 5d 29 29 3b 0a 20 20  st,args[2]));.  
1520: 20 20 69 66 20 28 6c 2d 3e 66 61 72 67 5f 6d 61    if (l->farg_ma
1530: 73 6b 20 26 20 28 31 3c 3c 33 29 29 0a 20 20 20  sk & (1<<3)).   
1540: 20 20 20 5f 5f 61 73 6d 5f 5f 28 22 6c 64 20 25     __asm__("ld %
1550: 31 28 25 30 29 2c 25 25 66 37 22 20 3a 20 3a 20  1(%0),%%f7" : : 
1560: 22 70 22 20 28 6c 29 2c 20 22 69 22 20 4f 46 46  "p" (l), "i" OFF
1570: 53 45 54 4f 46 28 61 76 5f 61 6c 69 73 74 2c 61  SETOF(av_alist,a
1580: 72 67 73 5b 33 5d 29 29 3b 0a 20 20 20 20 69 66  rgs[3]));.    if
1590: 20 28 6c 2d 3e 66 61 72 67 5f 6d 61 73 6b 20 26   (l->farg_mask &
15a0: 20 28 31 3c 3c 34 29 29 0a 20 20 20 20 20 20 5f   (1<<4)).      _
15b0: 5f 61 73 6d 5f 5f 28 22 6c 64 20 25 31 28 25 30  _asm__("ld %1(%0
15c0: 29 2c 25 25 66 39 22 20 3a 20 3a 20 22 70 22 20  ),%%f9" : : "p" 
15d0: 28 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f  (l), "i" OFFSETO
15e0: 46 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b  F(av_alist,args[
15f0: 34 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d  4]));.    if (l-
1600: 3e 66 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c  >farg_mask & (1<
1610: 3c 35 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  <5)).      __asm
1620: 5f 5f 28 22 6c 64 20 25 31 28 25 30 29 2c 25 25  __("ld %1(%0),%%
1630: 66 31 31 22 20 3a 20 3a 20 22 70 22 20 28 6c 29  f11" : : "p" (l)
1640: 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28 61  , "i" OFFSETOF(a
1650: 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 35 5d 29  v_alist,args[5])
1660: 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e 66 61  );.    if (l->fa
1670: 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c 36 29  rg_mask & (1<<6)
1680: 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f 5f 28  ).      __asm__(
1690: 22 6c 64 20 25 31 28 25 30 29 2c 25 25 66 31 33  "ld %1(%0),%%f13
16a0: 22 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c 20 22  " : : "p" (l), "
16b0: 69 22 20 4f 46 46 53 45 54 4f 46 28 61 76 5f 61  i" OFFSETOF(av_a
16c0: 6c 69 73 74 2c 61 72 67 73 5b 36 5d 29 29 3b 0a  list,args[6]));.
16d0: 20 20 20 20 69 66 20 28 6c 2d 3e 66 61 72 67 5f      if (l->farg_
16e0: 6d 61 73 6b 20 26 20 28 31 3c 3c 37 29 29 0a 20  mask & (1<<7)). 
16f0: 20 20 20 20 20 5f 5f 61 73 6d 5f 5f 28 22 6c 64       __asm__("ld
1700: 20 25 31 28 25 30 29 2c 25 25 66 31 35 22 20 3a   %1(%0),%%f15" :
1710: 20 3a 20 22 70 22 20 28 6c 29 2c 20 22 69 22 20   : "p" (l), "i" 
1720: 4f 46 46 53 45 54 4f 46 28 61 76 5f 61 6c 69 73  OFFSETOF(av_alis
1730: 74 2c 61 72 67 73 5b 37 5d 29 29 3b 0a 20 20 20  t,args[7]));.   
1740: 20 69 66 20 28 6c 2d 3e 66 61 72 67 5f 6d 61 73   if (l->farg_mas
1750: 6b 20 26 20 28 31 3c 3c 38 29 29 0a 20 20 20 20  k & (1<<8)).    
1760: 20 20 5f 5f 61 73 6d 5f 5f 28 22 6c 64 20 25 31    __asm__("ld %1
1770: 28 25 30 29 2c 25 25 66 31 37 22 20 3a 20 3a 20  (%0),%%f17" : : 
1780: 22 70 22 20 28 6c 29 2c 20 22 69 22 20 4f 46 46  "p" (l), "i" OFF
1790: 53 45 54 4f 46 28 61 76 5f 61 6c 69 73 74 2c 61  SETOF(av_alist,a
17a0: 72 67 73 5b 38 5d 29 29 3b 0a 20 20 20 20 69 66  rgs[8]));.    if
17b0: 20 28 6c 2d 3e 66 61 72 67 5f 6d 61 73 6b 20 26   (l->farg_mask &
17c0: 20 28 31 3c 3c 39 29 29 0a 20 20 20 20 20 20 5f   (1<<9)).      _
17d0: 5f 61 73 6d 5f 5f 28 22 6c 64 20 25 31 28 25 30  _asm__("ld %1(%0
17e0: 29 2c 25 25 66 31 39 22 20 3a 20 3a 20 22 70 22  ),%%f19" : : "p"
17f0: 20 28 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54   (l), "i" OFFSET
1800: 4f 46 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73  OF(av_alist,args
1810: 5b 39 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c  [9]));.    if (l
1820: 2d 3e 66 61 72 67 5f 6d 61 73 6b 20 26 20 28 31  ->farg_mask & (1
1830: 3c 3c 31 30 29 29 0a 20 20 20 20 20 20 5f 5f 61  <<10)).      __a
1840: 73 6d 5f 5f 28 22 6c 64 20 25 31 28 25 30 29 2c  sm__("ld %1(%0),
1850: 25 25 66 32 31 22 20 3a 20 3a 20 22 70 22 20 28  %%f21" : : "p" (
1860: 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46  l), "i" OFFSETOF
1870: 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31  (av_alist,args[1
1880: 30 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d  0]));.    if (l-
1890: 3e 66 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c  >farg_mask & (1<
18a0: 3c 31 31 29 29 0a 20 20 20 20 20 20 5f 5f 61 73  <11)).      __as
18b0: 6d 5f 5f 28 22 6c 64 20 25 31 28 25 30 29 2c 25  m__("ld %1(%0),%
18c0: 25 66 32 33 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f23" : : "p" (l
18d0: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
18e0: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 31  av_alist,args[11
18f0: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
1900: 66 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  farg_mask & (1<<
1910: 31 32 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  12)).      __asm
1920: 5f 5f 28 22 6c 64 20 25 31 28 25 30 29 2c 25 25  __("ld %1(%0),%%
1930: 66 32 35 22 20 3a 20 3a 20 22 70 22 20 28 6c 29  f25" : : "p" (l)
1940: 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28 61  , "i" OFFSETOF(a
1950: 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 32 5d  v_alist,args[12]
1960: 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e 66  ));.    if (l->f
1970: 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c 31  arg_mask & (1<<1
1980: 33 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f  3)).      __asm_
1990: 5f 28 22 6c 64 20 25 31 28 25 30 29 2c 25 25 66  _("ld %1(%0),%%f
19a0: 32 37 22 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c  27" : : "p" (l),
19b0: 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28 61 76   "i" OFFSETOF(av
19c0: 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 33 5d 29  _alist,args[13])
19d0: 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e 66 61  );.    if (l->fa
19e0: 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c 31 34  rg_mask & (1<<14
19f0: 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f 5f  )).      __asm__
1a00: 28 22 6c 64 20 25 31 28 25 30 29 2c 25 25 66 32  ("ld %1(%0),%%f2
1a10: 39 22 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c 20  9" : : "p" (l), 
1a20: 22 69 22 20 4f 46 46 53 45 54 4f 46 28 61 76 5f  "i" OFFSETOF(av_
1a30: 61 6c 69 73 74 2c 61 72 67 73 5b 31 34 5d 29 29  alist,args[14]))
1a40: 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e 66 61 72  ;.    if (l->far
1a50: 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c 31 35 29  g_mask & (1<<15)
1a60: 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f 5f 28  ).      __asm__(
1a70: 22 6c 64 20 25 31 28 25 30 29 2c 25 25 66 33 31  "ld %1(%0),%%f31
1a80: 22 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c 20 22  " : : "p" (l), "
1a90: 69 22 20 4f 46 46 53 45 54 4f 46 28 61 76 5f 61  i" OFFSETOF(av_a
1aa0: 6c 69 73 74 2c 61 72 67 73 5b 31 35 5d 29 29 3b  list,args[15]));
1ab0: 0a 20 20 7d 0a 20 20 69 66 20 28 6c 2d 3e 64 61  .  }.  if (l->da
1ac0: 72 67 5f 6d 61 73 6b 29 20 7b 0a 20 20 20 20 2f  rg_mask) {.    /
1ad0: 2a 20 70 75 73 68 20 6c 65 61 64 69 6e 67 20 64  * push leading d
1ae0: 6f 75 62 6c 65 20 61 72 67 73 20 2a 2f 0a 20 20  ouble args */.  
1af0: 20 20 69 66 20 28 6c 2d 3e 64 61 72 67 5f 6d 61    if (l->darg_ma
1b00: 73 6b 20 26 20 28 31 3c 3c 30 29 29 0a 20 20 20  sk & (1<<0)).   
1b10: 20 20 20 5f 5f 61 73 6d 5f 5f 28 22 6c 64 64 20     __asm__("ldd 
1b20: 25 31 28 25 30 29 2c 25 25 66 30 22 20 3a 20 3a  %1(%0),%%f0" : :
1b30: 20 22 70 22 20 28 6c 29 2c 20 22 69 22 20 4f 46   "p" (l), "i" OF
1b40: 46 53 45 54 4f 46 28 61 76 5f 61 6c 69 73 74 2c  FSETOF(av_alist,
1b50: 61 72 67 73 5b 30 5d 29 29 3b 0a 20 20 20 20 69  args[0]));.    i
1b60: 66 20 28 6c 2d 3e 64 61 72 67 5f 6d 61 73 6b 20  f (l->darg_mask 
1b70: 26 20 28 31 3c 3c 31 29 29 0a 20 20 20 20 20 20  & (1<<1)).      
1b80: 5f 5f 61 73 6d 5f 5f 28 22 6c 64 64 20 25 31 28  __asm__("ldd %1(
1b90: 25 30 29 2c 25 25 66 32 22 20 3a 20 3a 20 22 70  %0),%%f2" : : "p
1ba0: 22 20 28 6c 29 2c 20 22 69 22 20 4f 46 46 53 45  " (l), "i" OFFSE
1bb0: 54 4f 46 28 61 76 5f 61 6c 69 73 74 2c 61 72 67  TOF(av_alist,arg
1bc0: 73 5b 31 5d 29 29 3b 0a 20 20 20 20 69 66 20 28  s[1]));.    if (
1bd0: 6c 2d 3e 64 61 72 67 5f 6d 61 73 6b 20 26 20 28  l->darg_mask & (
1be0: 31 3c 3c 32 29 29 0a 20 20 20 20 20 20 5f 5f 61  1<<2)).      __a
1bf0: 73 6d 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29  sm__("ldd %1(%0)
1c00: 2c 25 25 66 34 22 20 3a 20 3a 20 22 70 22 20 28  ,%%f4" : : "p" (
1c10: 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46  l), "i" OFFSETOF
1c20: 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 32  (av_alist,args[2
1c30: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
1c40: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
1c50: 33 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f  3)).      __asm_
1c60: 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25 25  _("ldd %1(%0),%%
1c70: 66 36 22 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c  f6" : : "p" (l),
1c80: 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28 61 76   "i" OFFSETOF(av
1c90: 5f 61 6c 69 73 74 2c 61 72 67 73 5b 33 5d 29 29  _alist,args[3]))
1ca0: 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e 64 61 72  ;.    if (l->dar
1cb0: 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c 34 29 29  g_mask & (1<<4))
1cc0: 0a 20 20 20 20 20 20 5f 5f 61 73 6d 5f 5f 28 22  .      __asm__("
1cd0: 6c 64 64 20 25 31 28 25 30 29 2c 25 25 66 38 22  ldd %1(%0),%%f8"
1ce0: 20 3a 20 3a 20 22 70 22 20 28 6c 29 2c 20 22 69   : : "p" (l), "i
1cf0: 22 20 4f 46 46 53 45 54 4f 46 28 61 76 5f 61 6c  " OFFSETOF(av_al
1d00: 69 73 74 2c 61 72 67 73 5b 34 5d 29 29 3b 0a 20  ist,args[4]));. 
1d10: 20 20 20 69 66 20 28 6c 2d 3e 64 61 72 67 5f 6d     if (l->darg_m
1d20: 61 73 6b 20 26 20 28 31 3c 3c 35 29 29 0a 20 20  ask & (1<<5)).  
1d30: 20 20 20 20 5f 5f 61 73 6d 5f 5f 28 22 6c 64 64      __asm__("ldd
1d40: 20 25 31 28 25 30 29 2c 25 25 66 31 30 22 20 3a   %1(%0),%%f10" :
1d50: 20 3a 20 22 70 22 20 28 6c 29 2c 20 22 69 22 20   : "p" (l), "i" 
1d60: 4f 46 46 53 45 54 4f 46 28 61 76 5f 61 6c 69 73  OFFSETOF(av_alis
1d70: 74 2c 61 72 67 73 5b 35 5d 29 29 3b 0a 20 20 20  t,args[5]));.   
1d80: 20 69 66 20 28 6c 2d 3e 64 61 72 67 5f 6d 61 73   if (l->darg_mas
1d90: 6b 20 26 20 28 31 3c 3c 36 29 29 0a 20 20 20 20  k & (1<<6)).    
1da0: 20 20 5f 5f 61 73 6d 5f 5f 28 22 6c 64 64 20 25    __asm__("ldd %
1db0: 31 28 25 30 29 2c 25 25 66 31 32 22 20 3a 20 3a  1(%0),%%f12" : :
1dc0: 20 22 70 22 20 28 6c 29 2c 20 22 69 22 20 4f 46   "p" (l), "i" OF
1dd0: 46 53 45 54 4f 46 28 61 76 5f 61 6c 69 73 74 2c  FSETOF(av_alist,
1de0: 61 72 67 73 5b 36 5d 29 29 3b 0a 20 20 20 20 69  args[6]));.    i
1df0: 66 20 28 6c 2d 3e 64 61 72 67 5f 6d 61 73 6b 20  f (l->darg_mask 
1e00: 26 20 28 31 3c 3c 37 29 29 0a 20 20 20 20 20 20  & (1<<7)).      
1e10: 5f 5f 61 73 6d 5f 5f 28 22 6c 64 64 20 25 31 28  __asm__("ldd %1(
1e20: 25 30 29 2c 25 25 66 31 34 22 20 3a 20 3a 20 22  %0),%%f14" : : "
1e30: 70 22 20 28 6c 29 2c 20 22 69 22 20 4f 46 46 53  p" (l), "i" OFFS
1e40: 45 54 4f 46 28 61 76 5f 61 6c 69 73 74 2c 61 72  ETOF(av_alist,ar
1e50: 67 73 5b 37 5d 29 29 3b 0a 20 20 20 20 69 66 20  gs[7]));.    if 
1e60: 28 6c 2d 3e 64 61 72 67 5f 6d 61 73 6b 20 26 20  (l->darg_mask & 
1e70: 28 31 3c 3c 38 29 29 0a 20 20 20 20 20 20 5f 5f  (1<<8)).      __
1e80: 61 73 6d 5f 5f 28 22 6c 64 64 20 25 31 28 25 30  asm__("ldd %1(%0
1e90: 29 2c 25 25 66 31 36 22 20 3a 20 3a 20 22 70 22  ),%%f16" : : "p"
1ea0: 20 28 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54   (l), "i" OFFSET
1eb0: 4f 46 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73  OF(av_alist,args
1ec0: 5b 38 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c  [8]));.    if (l
1ed0: 2d 3e 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31  ->darg_mask & (1
1ee0: 3c 3c 39 29 29 0a 20 20 20 20 20 20 5f 5f 61 73  <<9)).      __as
1ef0: 6d 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c  m__("ldd %1(%0),
1f00: 25 25 66 31 38 22 20 3a 20 3a 20 22 70 22 20 28  %%f18" : : "p" (
1f10: 6c 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46  l), "i" OFFSETOF
1f20: 28 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 39  (av_alist,args[9
1f30: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
1f40: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
1f50: 31 30 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  10)).      __asm
1f60: 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25  __("ldd %1(%0),%
1f70: 25 66 32 30 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f20" : : "p" (l
1f80: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
1f90: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 30  av_alist,args[10
1fa0: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
1fb0: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
1fc0: 31 31 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  11)).      __asm
1fd0: 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25  __("ldd %1(%0),%
1fe0: 25 66 32 32 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f22" : : "p" (l
1ff0: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
2000: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 31  av_alist,args[11
2010: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
2020: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
2030: 31 32 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  12)).      __asm
2040: 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25  __("ldd %1(%0),%
2050: 25 66 32 34 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f24" : : "p" (l
2060: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
2070: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 32  av_alist,args[12
2080: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
2090: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
20a0: 31 33 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  13)).      __asm
20b0: 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25  __("ldd %1(%0),%
20c0: 25 66 32 36 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f26" : : "p" (l
20d0: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
20e0: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 33  av_alist,args[13
20f0: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
2100: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
2110: 31 34 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  14)).      __asm
2120: 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25  __("ldd %1(%0),%
2130: 25 66 32 38 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f28" : : "p" (l
2140: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
2150: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 34  av_alist,args[14
2160: 5d 29 29 3b 0a 20 20 20 20 69 66 20 28 6c 2d 3e  ]));.    if (l->
2170: 64 61 72 67 5f 6d 61 73 6b 20 26 20 28 31 3c 3c  darg_mask & (1<<
2180: 31 35 29 29 0a 20 20 20 20 20 20 5f 5f 61 73 6d  15)).      __asm
2190: 5f 5f 28 22 6c 64 64 20 25 31 28 25 30 29 2c 25  __("ldd %1(%0),%
21a0: 25 66 33 30 22 20 3a 20 3a 20 22 70 22 20 28 6c  %f30" : : "p" (l
21b0: 29 2c 20 22 69 22 20 4f 46 46 53 45 54 4f 46 28  ), "i" OFFSETOF(
21c0: 61 76 5f 61 6c 69 73 74 2c 61 72 67 73 5b 31 35  av_alist,args[15
21d0: 5d 29 29 3b 0a 20 20 7d 0a 0a 20 20 7b 0a 20 20  ]));.  }..  {.  
21e0: 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 66 6f 72    int i;.    for
21f0: 20 28 69 20 3d 20 36 3b 20 69 20 3c 20 61 72 67   (i = 6; i < arg
2200: 6c 65 6e 3b 20 69 2b 2b 29 09 2f 2a 20 70 75 73  len; i++)./* pus
2210: 68 20 65 78 63 65 73 73 20 66 75 6e 63 74 69 6f  h excess functio
2220: 6e 20 61 72 67 73 20 2a 2f 0a 20 20 20 20 20 20  n args */.      
2230: 61 72 67 66 72 61 6d 65 5b 69 5d 20 3d 20 6c 2d  argframe[i] = l-
2240: 3e 61 72 67 73 5b 69 5d 3b 0a 20 20 7d 0a 0a 09  >args[i];.  }...
2250: 09 09 09 09 2f 2a 20 63 61 6c 6c 20 66 75 6e 63  ..../* call func
2260: 74 69 6f 6e 20 77 69 74 68 20 31 73 74 20 36 20  tion with 1st 6 
2270: 61 72 67 73 20 2a 2f 0a 20 20 69 20 3d 20 28 7b  args */.  i = ({
2280: 20 5f 5f 61 76 77 6f 72 64 20 69 72 65 74 3b 09   __avword iret;.
2290: 2f 2a 20 25 6f 30 20 2a 2f 0a 20 20 20 20 20 20  /* %o0 */.      
22a0: 20 20 20 69 72 65 74 20 3d 20 28 2a 6c 2d 3e 66     iret = (*l->f
22b0: 75 6e 63 29 28 6c 2d 3e 61 72 67 73 5b 30 5d 2c  unc)(l->args[0],
22c0: 20 6c 2d 3e 61 72 67 73 5b 31 5d 2c 20 6c 2d 3e   l->args[1], l->
22d0: 61 72 67 73 5b 32 5d 2c 0a 09 09 09 20 20 20 6c  args[2],....   l
22e0: 2d 3e 61 72 67 73 5b 33 5d 2c 20 6c 2d 3e 61 72  ->args[3], l->ar
22f0: 67 73 5b 34 5d 2c 20 6c 2d 3e 61 72 67 73 5b 35  gs[4], l->args[5
2300: 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 61 73 6d  ]);.         asm
2310: 20 28 22 6e 6f 70 22 29 3b 09 2f 2a 20 73 74 72   ("nop");./* str
2320: 75 63 74 20 72 65 74 75 72 6e 69 6e 67 20 66 75  uct returning fu
2330: 6e 63 74 69 6f 6e 73 20 73 6b 69 70 20 74 68 69  nctions skip thi
2340: 73 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 2a 2f  s instruction */
2350: 0a 20 20 20 20 20 20 20 20 20 69 72 65 74 3b 0a  .         iret;.
2360: 20 20 20 20 20 20 20 7d 29 3b 0a 0a 20 20 2f 2a         });..  /*
2370: 20 73 61 76 65 20 72 65 74 75 72 6e 20 76 61 6c   save return val
2380: 75 65 20 2a 2f 0a 20 20 69 66 20 28 6c 2d 3e 72  ue */.  if (l->r
2390: 74 79 70 65 20 3d 3d 20 5f 5f 41 56 76 6f 69 64  type == __AVvoid
23a0: 29 20 7b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 69  ) {.  } else.  i
23b0: 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d 20 5f  f (l->rtype == _
23c0: 5f 41 56 77 6f 72 64 29 20 7b 0a 20 20 20 20 52  _AVword) {.    R
23d0: 45 54 55 52 4e 28 5f 5f 61 76 77 6f 72 64 2c 20  ETURN(__avword, 
23e0: 69 29 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 69  i);.  } else.  i
23f0: 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d 20 5f  f (l->rtype == _
2400: 5f 41 56 63 68 61 72 29 20 7b 0a 20 20 20 20 52  _AVchar) {.    R
2410: 45 54 55 52 4e 28 63 68 61 72 2c 20 69 29 3b 0a  ETURN(char, i);.
2420: 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c    } else.  if (l
2430: 2d 3e 72 74 79 70 65 20 3d 3d 20 5f 5f 41 56 73  ->rtype == __AVs
2440: 63 68 61 72 29 20 7b 0a 20 20 20 20 52 45 54 55  char) {.    RETU
2450: 52 4e 28 73 69 67 6e 65 64 20 63 68 61 72 2c 20  RN(signed char, 
2460: 69 29 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 69  i);.  } else.  i
2470: 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d 20 5f  f (l->rtype == _
2480: 5f 41 56 75 63 68 61 72 29 20 7b 0a 20 20 20 20  _AVuchar) {.    
2490: 52 45 54 55 52 4e 28 75 6e 73 69 67 6e 65 64 20  RETURN(unsigned 
24a0: 63 68 61 72 2c 20 69 29 3b 0a 20 20 7d 20 65 6c  char, i);.  } el
24b0: 73 65 0a 20 20 69 66 20 28 6c 2d 3e 72 74 79 70  se.  if (l->rtyp
24c0: 65 20 3d 3d 20 5f 5f 41 56 73 68 6f 72 74 29 20  e == __AVshort) 
24d0: 7b 0a 20 20 20 20 52 45 54 55 52 4e 28 73 68 6f  {.    RETURN(sho
24e0: 72 74 2c 20 69 29 3b 0a 20 20 7d 20 65 6c 73 65  rt, i);.  } else
24f0: 0a 20 20 69 66 20 28 6c 2d 3e 72 74 79 70 65 20  .  if (l->rtype 
2500: 3d 3d 20 5f 5f 41 56 75 73 68 6f 72 74 29 20 7b  == __AVushort) {
2510: 0a 20 20 20 20 52 45 54 55 52 4e 28 75 6e 73 69  .    RETURN(unsi
2520: 67 6e 65 64 20 73 68 6f 72 74 2c 20 69 29 3b 0a  gned short, i);.
2530: 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c    } else.  if (l
2540: 2d 3e 72 74 79 70 65 20 3d 3d 20 5f 5f 41 56 69  ->rtype == __AVi
2550: 6e 74 29 20 7b 0a 20 20 20 20 52 45 54 55 52 4e  nt) {.    RETURN
2560: 28 69 6e 74 2c 20 69 29 3b 0a 20 20 7d 20 65 6c  (int, i);.  } el
2570: 73 65 0a 20 20 69 66 20 28 6c 2d 3e 72 74 79 70  se.  if (l->rtyp
2580: 65 20 3d 3d 20 5f 5f 41 56 75 69 6e 74 29 20 7b  e == __AVuint) {
2590: 0a 20 20 20 20 52 45 54 55 52 4e 28 75 6e 73 69  .    RETURN(unsi
25a0: 67 6e 65 64 20 69 6e 74 2c 20 69 29 3b 0a 20 20  gned int, i);.  
25b0: 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c 2d 3e  } else.  if (l->
25c0: 72 74 79 70 65 20 3d 3d 20 5f 5f 41 56 6c 6f 6e  rtype == __AVlon
25d0: 67 29 20 7b 0a 20 20 20 20 52 45 54 55 52 4e 28  g) {.    RETURN(
25e0: 6c 6f 6e 67 2c 20 69 29 3b 0a 20 20 7d 20 65 6c  long, i);.  } el
25f0: 73 65 0a 20 20 69 66 20 28 6c 2d 3e 72 74 79 70  se.  if (l->rtyp
2600: 65 20 3d 3d 20 5f 5f 41 56 75 6c 6f 6e 67 29 20  e == __AVulong) 
2610: 7b 0a 20 20 20 20 52 45 54 55 52 4e 28 75 6e 73  {.    RETURN(uns
2620: 69 67 6e 65 64 20 6c 6f 6e 67 2c 20 69 29 3b 0a  igned long, i);.
2630: 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c    } else.  if (l
2640: 2d 3e 72 74 79 70 65 20 3d 3d 20 5f 5f 41 56 6c  ->rtype == __AVl
2650: 6f 6e 67 6c 6f 6e 67 29 20 7b 0a 20 20 20 20 52  onglong) {.    R
2660: 45 54 55 52 4e 28 6c 6f 6e 67 20 6c 6f 6e 67 2c  ETURN(long long,
2670: 20 69 29 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20   i);.  } else.  
2680: 69 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d 20  if (l->rtype == 
2690: 5f 5f 41 56 75 6c 6f 6e 67 6c 6f 6e 67 29 20 7b  __AVulonglong) {
26a0: 0a 20 20 20 20 52 45 54 55 52 4e 28 75 6e 73 69  .    RETURN(unsi
26b0: 67 6e 65 64 20 6c 6f 6e 67 20 6c 6f 6e 67 2c 20  gned long long, 
26c0: 69 29 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 69  i);.  } else.  i
26d0: 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d 20 5f  f (l->rtype == _
26e0: 5f 41 56 66 6c 6f 61 74 29 20 7b 0a 20 20 20 20  _AVfloat) {.    
26f0: 52 45 54 55 52 4e 28 66 6c 6f 61 74 2c 20 66 72  RETURN(float, fr
2700: 65 74 29 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20  et);.  } else.  
2710: 69 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d 20  if (l->rtype == 
2720: 5f 5f 41 56 64 6f 75 62 6c 65 29 20 7b 0a 20 20  __AVdouble) {.  
2730: 20 20 52 45 54 55 52 4e 28 64 6f 75 62 6c 65 2c    RETURN(double,
2740: 20 64 72 65 74 29 3b 0a 20 20 7d 20 65 6c 73 65   dret);.  } else
2750: 0a 20 20 69 66 20 28 6c 2d 3e 72 74 79 70 65 20  .  if (l->rtype 
2760: 3d 3d 20 5f 5f 41 56 76 6f 69 64 70 29 20 7b 0a  == __AVvoidp) {.
2770: 20 20 20 20 52 45 54 55 52 4e 28 76 6f 69 64 2a      RETURN(void*
2780: 2c 20 69 29 3b 0a 20 20 7d 20 65 6c 73 65 0a 20  , i);.  } else. 
2790: 20 69 66 20 28 6c 2d 3e 72 74 79 70 65 20 3d 3d   if (l->rtype ==
27a0: 20 5f 5f 41 56 73 74 72 75 63 74 29 20 7b 0a 20   __AVstruct) {. 
27b0: 20 20 20 69 66 20 28 6c 2d 3e 66 6c 61 67 73 20     if (l->flags 
27c0: 26 20 5f 5f 41 56 5f 50 43 43 5f 53 54 52 55 43  & __AV_PCC_STRUC
27d0: 54 5f 52 45 54 55 52 4e 29 20 7b 0a 20 20 20 20  T_RETURN) {.    
27e0: 20 20 2f 2a 20 70 63 63 20 73 74 72 75 63 74 20    /* pcc struct 
27f0: 72 65 74 75 72 6e 20 63 6f 6e 76 65 6e 74 69 6f  return conventio
2800: 6e 3a 20 6e 65 65 64 20 61 20 20 2a 28 54 59 50  n: need a  *(TYP
2810: 45 2a 29 6c 2d 3e 72 61 64 64 72 20 3d 20 2a 28  E*)l->raddr = *(
2820: 54 59 50 45 2a 29 69 3b 20 20 2a 2f 0a 20 20 20  TYPE*)i;  */.   
2830: 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20     if (l->rsize 
2840: 3d 3d 20 73 69 7a 65 6f 66 28 63 68 61 72 29 29  == sizeof(char))
2850: 20 7b 0a 20 20 20 20 20 20 20 20 52 45 54 55 52   {.        RETUR
2860: 4e 28 63 68 61 72 2c 20 2a 28 63 68 61 72 2a 29  N(char, *(char*)
2870: 69 29 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65  i);.      } else
2880: 0a 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73  .      if (l->rs
2890: 69 7a 65 20 3d 3d 20 73 69 7a 65 6f 66 28 73 68  ize == sizeof(sh
28a0: 6f 72 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20  ort)) {.        
28b0: 52 45 54 55 52 4e 28 73 68 6f 72 74 2c 20 2a 28  RETURN(short, *(
28c0: 73 68 6f 72 74 2a 29 69 29 3b 0a 20 20 20 20 20  short*)i);.     
28d0: 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66   } else.      if
28e0: 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 73 69   (l->rsize == si
28f0: 7a 65 6f 66 28 69 6e 74 29 29 20 7b 0a 20 20 20  zeof(int)) {.   
2900: 20 20 20 20 20 52 45 54 55 52 4e 28 69 6e 74 2c       RETURN(int,
2910: 20 2a 28 69 6e 74 2a 29 69 29 3b 0a 20 20 20 20   *(int*)i);.    
2920: 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 69    } else.      i
2930: 66 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 73  f (l->rsize == s
2940: 69 7a 65 6f 66 28 6c 6f 6e 67 29 29 20 7b 0a 20  izeof(long)) {. 
2950: 20 20 20 20 20 20 20 52 45 54 55 52 4e 28 6c 6f         RETURN(lo
2960: 6e 67 2c 20 2a 28 6c 6f 6e 67 2a 29 69 29 3b 0a  ng, *(long*)i);.
2970: 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20        } else {. 
2980: 20 20 20 20 20 20 20 69 6e 74 20 6e 20 3d 20 28         int n = (
2990: 6c 2d 3e 72 73 69 7a 65 20 2b 20 73 69 7a 65 6f  l->rsize + sizeo
29a0: 66 28 5f 5f 61 76 77 6f 72 64 29 2d 31 29 2f 73  f(__avword)-1)/s
29b0: 69 7a 65 6f 66 28 5f 5f 61 76 77 6f 72 64 29 3b  izeof(__avword);
29c0: 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28  .        while (
29d0: 2d 2d 6e 20 3e 3d 20 30 29 0a 20 20 20 20 20 20  --n >= 0).      
29e0: 20 20 20 20 28 28 5f 5f 61 76 77 6f 72 64 2a 29      ((__avword*)
29f0: 6c 2d 3e 72 61 64 64 72 29 5b 6e 5d 20 3d 20 28  l->raddr)[n] = (
2a00: 28 5f 5f 61 76 77 6f 72 64 2a 29 69 29 5b 6e 5d  (__avword*)i)[n]
2a10: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20  ;.      }.    } 
2a20: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 2f 2a 20  else {.      /* 
2a30: 6e 6f 72 6d 61 6c 20 73 74 72 75 63 74 20 72 65  normal struct re
2a40: 74 75 72 6e 20 63 6f 6e 76 65 6e 74 69 6f 6e 20  turn convention 
2a50: 2a 2f 0a 20 20 20 20 20 20 69 66 20 28 6c 2d 3e  */.      if (l->
2a60: 66 6c 61 67 73 20 26 20 5f 5f 41 56 5f 52 45 47  flags & __AV_REG
2a70: 49 53 54 45 52 5f 53 54 52 55 43 54 5f 52 45 54  ISTER_STRUCT_RET
2a80: 55 52 4e 29 20 7b 0a 20 20 20 20 20 20 20 20 2f  URN) {.        /
2a90: 2a 20 52 65 74 75 72 6e 20 73 74 72 75 63 74 73  * Return structs
2aa0: 20 6f 66 20 73 69 7a 65 20 3c 3d 20 33 32 20 69   of size <= 32 i
2ab0: 6e 20 72 65 67 69 73 74 65 72 73 2e 20 2a 2f 0a  n registers. */.
2ac0: 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72          if (l->r
2ad0: 73 69 7a 65 20 3e 20 30 20 26 26 20 6c 2d 3e 72  size > 0 && l->r
2ae0: 73 69 7a 65 20 3c 3d 20 33 32 29 20 7b 0a 20 20  size <= 32) {.  
2af0: 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72          if (l->r
2b00: 73 69 7a 65 20 3d 3d 20 31 29 20 7b 0a 20 20 20  size == 1) {.   
2b10: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
2b20: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
2b30: 64 64 72 29 5b 30 5d 20 3d 20 28 75 6e 73 69 67  ddr)[0] = (unsig
2b40: 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 35 36 29  ned char)(i>>56)
2b50: 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c  ;.          } el
2b60: 73 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20  se.          if 
2b70: 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 32 29 20  (l->rsize == 2) 
2b80: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28  {.            ((
2b90: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
2ba0: 6c 2d 3e 72 61 64 64 72 29 5b 30 5d 20 3d 20 28  l->raddr)[0] = (
2bb0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 69  unsigned char)(i
2bc0: 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20 20 20  >>56);.         
2bd0: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
2be0: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31  ar *)l->raddr)[1
2bf0: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
2c00: 61 72 29 28 69 3e 3e 34 38 29 3b 0a 20 20 20 20  ar)(i>>48);.    
2c10: 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20        } else.   
2c20: 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73         if (l->rs
2c30: 69 7a 65 20 3d 3d 20 33 29 20 7b 0a 20 20 20 20  ize == 3) {.    
2c40: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
2c50: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
2c60: 64 72 29 5b 30 5d 20 3d 20 28 75 6e 73 69 67 6e  dr)[0] = (unsign
2c70: 65 64 20 63 68 61 72 29 28 69 3e 3e 35 36 29 3b  ed char)(i>>56);
2c80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75  .            ((u
2c90: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c  nsigned char *)l
2ca0: 2d 3e 72 61 64 64 72 29 5b 31 5d 20 3d 20 28 75  ->raddr)[1] = (u
2cb0: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e  nsigned char)(i>
2cc0: 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >48);.          
2cd0: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
2ce0: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 5d  r *)l->raddr)[2]
2cf0: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
2d00: 72 29 28 69 3e 3e 34 30 29 3b 0a 20 20 20 20 20  r)(i>>40);.     
2d10: 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20       } else.    
2d20: 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69        if (l->rsi
2d30: 7a 65 20 3d 3d 20 34 29 20 7b 0a 20 20 20 20 20  ze == 4) {.     
2d40: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
2d50: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
2d60: 72 29 5b 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65  r)[0] = (unsigne
2d70: 64 20 63 68 61 72 29 28 69 3e 3e 35 36 29 3b 0a  d char)(i>>56);.
2d80: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
2d90: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
2da0: 3e 72 61 64 64 72 29 5b 31 5d 20 3d 20 28 75 6e  >raddr)[1] = (un
2db0: 73 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e  signed char)(i>>
2dc0: 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  48);.           
2dd0: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
2de0: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 5d 20   *)l->raddr)[2] 
2df0: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
2e00: 29 28 69 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20  )(i>>40);.      
2e10: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
2e20: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
2e30: 29 5b 33 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  )[3] = (unsigned
2e40: 20 63 68 61 72 29 28 69 3e 3e 33 32 29 3b 0a 20   char)(i>>32);. 
2e50: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a           } else.
2e60: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d            if (l-
2e70: 3e 72 73 69 7a 65 20 3d 3d 20 35 29 20 7b 0a 20  >rsize == 5) {. 
2e80: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
2e90: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
2ea0: 72 61 64 64 72 29 5b 30 5d 20 3d 20 28 75 6e 73  raddr)[0] = (uns
2eb0: 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 35  igned char)(i>>5
2ec0: 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  6);.            
2ed0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
2ee0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31 5d 20 3d  *)l->raddr)[1] =
2ef0: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
2f00: 28 69 3e 3e 34 38 29 3b 0a 20 20 20 20 20 20 20  (i>>48);.       
2f10: 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20       ((unsigned 
2f20: 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29  char *)l->raddr)
2f30: 5b 32 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  [2] = (unsigned 
2f40: 63 68 61 72 29 28 69 3e 3e 34 30 29 3b 0a 20 20  char)(i>>40);.  
2f50: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
2f60: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
2f70: 61 64 64 72 29 5b 33 5d 20 3d 20 28 75 6e 73 69  addr)[3] = (unsi
2f80: 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 33 32  gned char)(i>>32
2f90: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  );.            (
2fa0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
2fb0: 29 6c 2d 3e 72 61 64 64 72 29 5b 34 5d 20 3d 20  )l->raddr)[4] = 
2fc0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
2fd0: 69 3e 3e 32 34 29 3b 0a 20 20 20 20 20 20 20 20  i>>24);.        
2fe0: 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20    } else.       
2ff0: 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20     if (l->rsize 
3000: 3d 3d 20 36 29 20 7b 0a 20 20 20 20 20 20 20 20  == 6) {.        
3010: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
3020: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
3030: 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  0] = (unsigned c
3040: 68 61 72 29 28 69 3e 3e 35 36 29 3b 0a 20 20 20  har)(i>>56);.   
3050: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
3060: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
3070: 64 64 72 29 5b 31 5d 20 3d 20 28 75 6e 73 69 67  ddr)[1] = (unsig
3080: 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 34 38 29  ned char)(i>>48)
3090: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28  ;.            ((
30a0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
30b0: 6c 2d 3e 72 61 64 64 72 29 5b 32 5d 20 3d 20 28  l->raddr)[2] = (
30c0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 69  unsigned char)(i
30d0: 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20  >>40);.         
30e0: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
30f0: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 33  ar *)l->raddr)[3
3100: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
3110: 61 72 29 28 69 3e 3e 33 32 29 3b 0a 20 20 20 20  ar)(i>>32);.    
3120: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
3130: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
3140: 64 72 29 5b 34 5d 20 3d 20 28 75 6e 73 69 67 6e  dr)[4] = (unsign
3150: 65 64 20 63 68 61 72 29 28 69 3e 3e 32 34 29 3b  ed char)(i>>24);
3160: 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75  .            ((u
3170: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c  nsigned char *)l
3180: 2d 3e 72 61 64 64 72 29 5b 35 5d 20 3d 20 28 75  ->raddr)[5] = (u
3190: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e  nsigned char)(i>
31a0: 3e 31 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >16);.          
31b0: 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20  } else.         
31c0: 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d   if (l->rsize ==
31d0: 20 37 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20   7) {.          
31e0: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
31f0: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 30 5d  r *)l->raddr)[0]
3200: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
3210: 72 29 28 69 3e 3e 35 36 29 3b 0a 20 20 20 20 20  r)(i>>56);.     
3220: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
3230: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
3240: 72 29 5b 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65  r)[1] = (unsigne
3250: 64 20 63 68 61 72 29 28 69 3e 3e 34 38 29 3b 0a  d char)(i>>48);.
3260: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
3270: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
3280: 3e 72 61 64 64 72 29 5b 32 5d 20 3d 20 28 75 6e  >raddr)[2] = (un
3290: 73 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e  signed char)(i>>
32a0: 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  40);.           
32b0: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
32c0: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 33 5d 20   *)l->raddr)[3] 
32d0: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
32e0: 29 28 69 3e 3e 33 32 29 3b 0a 20 20 20 20 20 20  )(i>>32);.      
32f0: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
3300: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
3310: 29 5b 34 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  )[4] = (unsigned
3320: 20 63 68 61 72 29 28 69 3e 3e 32 34 29 3b 0a 20   char)(i>>24);. 
3330: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
3340: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
3350: 72 61 64 64 72 29 5b 35 5d 20 3d 20 28 75 6e 73  raddr)[5] = (uns
3360: 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 31  igned char)(i>>1
3370: 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  6);.            
3380: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
3390: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 36 5d 20 3d  *)l->raddr)[6] =
33a0: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
33b0: 28 69 3e 3e 38 29 3b 0a 20 20 20 20 20 20 20 20  (i>>8);.        
33c0: 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20    } else.       
33d0: 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20     if (l->rsize 
33e0: 3e 3d 20 38 20 26 26 20 6c 2d 3e 72 73 69 7a 65  >= 8 && l->rsize
33f0: 20 3c 3d 20 33 32 29 20 7b 0a 20 20 20 20 20 20   <= 32) {.      
3400: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
3410: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
3420: 29 5b 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  )[0] = (unsigned
3430: 20 63 68 61 72 29 28 69 3e 3e 35 36 29 3b 0a 20   char)(i>>56);. 
3440: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
3450: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
3460: 72 61 64 64 72 29 5b 31 5d 20 3d 20 28 75 6e 73  raddr)[1] = (uns
3470: 69 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 34  igned char)(i>>4
3480: 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  8);.            
3490: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
34a0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 5d 20 3d  *)l->raddr)[2] =
34b0: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
34c0: 28 69 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20 20  (i>>40);.       
34d0: 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20       ((unsigned 
34e0: 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29  char *)l->raddr)
34f0: 5b 33 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  [3] = (unsigned 
3500: 63 68 61 72 29 28 69 3e 3e 33 32 29 3b 0a 20 20  char)(i>>32);.  
3510: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
3520: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
3530: 61 64 64 72 29 5b 34 5d 20 3d 20 28 75 6e 73 69  addr)[4] = (unsi
3540: 67 6e 65 64 20 63 68 61 72 29 28 69 3e 3e 32 34  gned char)(i>>24
3550: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  );.            (
3560: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
3570: 29 6c 2d 3e 72 61 64 64 72 29 5b 35 5d 20 3d 20  )l->raddr)[5] = 
3580: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
3590: 69 3e 3e 31 36 29 3b 0a 20 20 20 20 20 20 20 20  i>>16);.        
35a0: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
35b0: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
35c0: 36 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  6] = (unsigned c
35d0: 68 61 72 29 28 69 3e 3e 38 29 3b 0a 20 20 20 20  har)(i>>8);.    
35e0: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
35f0: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
3600: 64 72 29 5b 37 5d 20 3d 20 28 75 6e 73 69 67 6e  dr)[7] = (unsign
3610: 65 64 20 63 68 61 72 29 28 69 29 3b 0a 20 20 20  ed char)(i);.   
3620: 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e           if (l->
3630: 72 73 69 7a 65 20 3d 3d 20 38 29 20 7b 0a 20 20  rsize == 8) {.  
3640: 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65            } else
3650: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20  .            if 
3660: 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 39 29 20  (l->rsize == 9) 
3670: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
3680: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
3690: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 30 5d  *)l->raddr)[8+0]
36a0: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
36b0: 72 29 28 6f 31 3e 3e 35 36 29 3b 0a 20 20 20 20  r)(o1>>56);.    
36c0: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20          } else. 
36d0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
36e0: 2d 3e 72 73 69 7a 65 20 3d 3d 20 31 30 29 20 7b  ->rsize == 10) {
36f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  .              (
3700: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
3710: 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 30 5d 20  )l->raddr)[8+0] 
3720: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
3730: 29 28 6f 31 3e 3e 35 36 29 3b 0a 20 20 20 20 20  )(o1>>56);.     
3740: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
3750: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
3760: 64 64 72 29 5b 38 2b 31 5d 20 3d 20 28 75 6e 73  ddr)[8+1] = (uns
3770: 69 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e  igned char)(o1>>
3780: 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  48);.           
3790: 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20   } else.        
37a0: 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65      if (l->rsize
37b0: 20 3d 3d 20 31 31 29 20 7b 0a 20 20 20 20 20 20   == 11) {.      
37c0: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
37d0: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
37e0: 64 72 29 5b 38 2b 30 5d 20 3d 20 28 75 6e 73 69  dr)[8+0] = (unsi
37f0: 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 35  gned char)(o1>>5
3800: 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  6);.            
3810: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
3820: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b  r *)l->raddr)[8+
3830: 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  1] = (unsigned c
3840: 68 61 72 29 28 6f 31 3e 3e 34 38 29 3b 0a 20 20  har)(o1>>48);.  
3850: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
3860: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
3870: 3e 72 61 64 64 72 29 5b 38 2b 32 5d 20 3d 20 28  >raddr)[8+2] = (
3880: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
3890: 31 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20  1>>40);.        
38a0: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
38b0: 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73         if (l->rs
38c0: 69 7a 65 20 3d 3d 20 31 32 29 20 7b 0a 20 20 20  ize == 12) {.   
38d0: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
38e0: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
38f0: 72 61 64 64 72 29 5b 38 2b 30 5d 20 3d 20 28 75  raddr)[8+0] = (u
3900: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 31  nsigned char)(o1
3910: 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20 20 20  >>56);.         
3920: 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20       ((unsigned 
3930: 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29  char *)l->raddr)
3940: 5b 38 2b 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65  [8+1] = (unsigne
3950: 64 20 63 68 61 72 29 28 6f 31 3e 3e 34 38 29 3b  d char)(o1>>48);
3960: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  .              (
3970: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
3980: 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 32 5d 20  )l->raddr)[8+2] 
3990: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
39a0: 29 28 6f 31 3e 3e 34 30 29 3b 0a 20 20 20 20 20  )(o1>>40);.     
39b0: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
39c0: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
39d0: 64 64 72 29 5b 38 2b 33 5d 20 3d 20 28 75 6e 73  ddr)[8+3] = (uns
39e0: 69 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e  igned char)(o1>>
39f0: 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  32);.           
3a00: 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20   } else.        
3a10: 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65      if (l->rsize
3a20: 20 3d 3d 20 31 33 29 20 7b 0a 20 20 20 20 20 20   == 13) {.      
3a30: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
3a40: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
3a50: 64 72 29 5b 38 2b 30 5d 20 3d 20 28 75 6e 73 69  dr)[8+0] = (unsi
3a60: 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 35  gned char)(o1>>5
3a70: 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  6);.            
3a80: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
3a90: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b  r *)l->raddr)[8+
3aa0: 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  1] = (unsigned c
3ab0: 68 61 72 29 28 6f 31 3e 3e 34 38 29 3b 0a 20 20  har)(o1>>48);.  
3ac0: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
3ad0: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
3ae0: 3e 72 61 64 64 72 29 5b 38 2b 32 5d 20 3d 20 28  >raddr)[8+2] = (
3af0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
3b00: 31 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20  1>>40);.        
3b10: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
3b20: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
3b30: 29 5b 38 2b 33 5d 20 3d 20 28 75 6e 73 69 67 6e  )[8+3] = (unsign
3b40: 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 33 32 29  ed char)(o1>>32)
3b50: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
3b60: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
3b70: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 34 5d  *)l->raddr)[8+4]
3b80: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
3b90: 72 29 28 6f 31 3e 3e 32 34 29 3b 0a 20 20 20 20  r)(o1>>24);.    
3ba0: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20          } else. 
3bb0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
3bc0: 2d 3e 72 73 69 7a 65 20 3d 3d 20 31 34 29 20 7b  ->rsize == 14) {
3bd0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  .              (
3be0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
3bf0: 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 30 5d 20  )l->raddr)[8+0] 
3c00: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
3c10: 29 28 6f 31 3e 3e 35 36 29 3b 0a 20 20 20 20 20  )(o1>>56);.     
3c20: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
3c30: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
3c40: 64 64 72 29 5b 38 2b 31 5d 20 3d 20 28 75 6e 73  ddr)[8+1] = (uns
3c50: 69 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e  igned char)(o1>>
3c60: 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  48);.           
3c70: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
3c80: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38  ar *)l->raddr)[8
3c90: 2b 32 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  +2] = (unsigned 
3ca0: 63 68 61 72 29 28 6f 31 3e 3e 34 30 29 3b 0a 20  char)(o1>>40);. 
3cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75               ((u
3cc0: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c  nsigned char *)l
3cd0: 2d 3e 72 61 64 64 72 29 5b 38 2b 33 5d 20 3d 20  ->raddr)[8+3] = 
3ce0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
3cf0: 6f 31 3e 3e 33 32 29 3b 0a 20 20 20 20 20 20 20  o1>>32);.       
3d00: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
3d10: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
3d20: 72 29 5b 38 2b 34 5d 20 3d 20 28 75 6e 73 69 67  r)[8+4] = (unsig
3d30: 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 32 34  ned char)(o1>>24
3d40: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
3d50: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
3d60: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 35   *)l->raddr)[8+5
3d70: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
3d80: 61 72 29 28 6f 31 3e 3e 31 36 29 3b 0a 20 20 20  ar)(o1>>16);.   
3d90: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a           } else.
3da0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
3db0: 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 31 35 29 20  l->rsize == 15) 
3dc0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
3dd0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
3de0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 30 5d  *)l->raddr)[8+0]
3df0: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
3e00: 72 29 28 6f 31 3e 3e 35 36 29 3b 0a 20 20 20 20  r)(o1>>56);.    
3e10: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
3e20: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
3e30: 61 64 64 72 29 5b 38 2b 31 5d 20 3d 20 28 75 6e  addr)[8+1] = (un
3e40: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e  signed char)(o1>
3e50: 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >48);.          
3e60: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
3e70: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
3e80: 38 2b 32 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  8+2] = (unsigned
3e90: 20 63 68 61 72 29 28 6f 31 3e 3e 34 30 29 3b 0a   char)(o1>>40);.
3ea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28                ((
3eb0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
3ec0: 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 33 5d 20 3d  l->raddr)[8+3] =
3ed0: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
3ee0: 28 6f 31 3e 3e 33 32 29 3b 0a 20 20 20 20 20 20  (o1>>32);.      
3ef0: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
3f00: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
3f10: 64 72 29 5b 38 2b 34 5d 20 3d 20 28 75 6e 73 69  dr)[8+4] = (unsi
3f20: 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 32  gned char)(o1>>2
3f30: 34 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  4);.            
3f40: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
3f50: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b  r *)l->raddr)[8+
3f60: 35 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  5] = (unsigned c
3f70: 68 61 72 29 28 6f 31 3e 3e 31 36 29 3b 0a 20 20  har)(o1>>16);.  
3f80: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
3f90: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
3fa0: 3e 72 61 64 64 72 29 5b 38 2b 36 5d 20 3d 20 28  >raddr)[8+6] = (
3fb0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
3fc0: 31 3e 3e 38 29 3b 0a 20 20 20 20 20 20 20 20 20  1>>8);.         
3fd0: 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20     } else.      
3fe0: 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69        if (l->rsi
3ff0: 7a 65 20 3e 3d 20 31 36 20 26 26 20 6c 2d 3e 72  ze >= 16 && l->r
4000: 73 69 7a 65 20 3c 3d 20 33 32 29 20 7b 0a 20 20  size <= 32) {.  
4010: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
4020: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
4030: 3e 72 61 64 64 72 29 5b 38 2b 30 5d 20 3d 20 28  >raddr)[8+0] = (
4040: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
4050: 31 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20 20  1>>56);.        
4060: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
4070: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
4080: 29 5b 38 2b 31 5d 20 3d 20 28 75 6e 73 69 67 6e  )[8+1] = (unsign
4090: 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 34 38 29  ed char)(o1>>48)
40a0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
40b0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
40c0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 32 5d  *)l->raddr)[8+2]
40d0: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
40e0: 72 29 28 6f 31 3e 3e 34 30 29 3b 0a 20 20 20 20  r)(o1>>40);.    
40f0: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
4100: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
4110: 61 64 64 72 29 5b 38 2b 33 5d 20 3d 20 28 75 6e  addr)[8+3] = (un
4120: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e  signed char)(o1>
4130: 3e 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >32);.          
4140: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
4150: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
4160: 38 2b 34 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  8+4] = (unsigned
4170: 20 63 68 61 72 29 28 6f 31 3e 3e 32 34 29 3b 0a   char)(o1>>24);.
4180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28                ((
4190: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
41a0: 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 35 5d 20 3d  l->raddr)[8+5] =
41b0: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
41c0: 28 6f 31 3e 3e 31 36 29 3b 0a 20 20 20 20 20 20  (o1>>16);.      
41d0: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
41e0: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
41f0: 64 72 29 5b 38 2b 36 5d 20 3d 20 28 75 6e 73 69  dr)[8+6] = (unsi
4200: 67 6e 65 64 20 63 68 61 72 29 28 6f 31 3e 3e 38  gned char)(o1>>8
4210: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
4220: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
4230: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 38 2b 37   *)l->raddr)[8+7
4240: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
4250: 61 72 29 28 6f 31 29 3b 0a 20 20 20 20 20 20 20  ar)(o1);.       
4260: 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73         if (l->rs
4270: 69 7a 65 20 3d 3d 20 31 36 29 20 7b 0a 20 20 20  ize == 16) {.   
4280: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73             } els
4290: 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e.              
42a0: 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20  if (l->rsize == 
42b0: 31 37 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  17) {.          
42c0: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
42d0: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
42e0: 29 5b 31 36 2b 30 5d 20 3d 20 28 75 6e 73 69 67  )[16+0] = (unsig
42f0: 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 35 36  ned char)(o2>>56
4300: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
4310: 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20   } else.        
4320: 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69        if (l->rsi
4330: 7a 65 20 3d 3d 20 31 38 29 20 7b 0a 20 20 20 20  ze == 18) {.    
4340: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
4350: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
4360: 3e 72 61 64 64 72 29 5b 31 36 2b 30 5d 20 3d 20  >raddr)[16+0] = 
4370: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
4380: 6f 32 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20  o2>>56);.       
4390: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
43a0: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
43b0: 64 64 72 29 5b 31 36 2b 31 5d 20 3d 20 28 75 6e  ddr)[16+1] = (un
43c0: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e  signed char)(o2>
43d0: 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >48);.          
43e0: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
43f0: 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e           if (l->
4400: 72 73 69 7a 65 20 3d 3d 20 31 39 29 20 7b 0a 20  rsize == 19) {. 
4410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
4420: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
4430: 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 30 5d  )l->raddr)[16+0]
4440: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
4450: 72 29 28 6f 32 3e 3e 35 36 29 3b 0a 20 20 20 20  r)(o2>>56);.    
4460: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
4470: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
4480: 3e 72 61 64 64 72 29 5b 31 36 2b 31 5d 20 3d 20  >raddr)[16+1] = 
4490: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
44a0: 6f 32 3e 3e 34 38 29 3b 0a 20 20 20 20 20 20 20  o2>>48);.       
44b0: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
44c0: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
44d0: 64 64 72 29 5b 31 36 2b 32 5d 20 3d 20 28 75 6e  ddr)[16+2] = (un
44e0: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e  signed char)(o2>
44f0: 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >40);.          
4500: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
4510: 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e           if (l->
4520: 72 73 69 7a 65 20 3d 3d 20 32 30 29 20 7b 0a 20  rsize == 20) {. 
4530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
4540: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
4550: 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 30 5d  )l->raddr)[16+0]
4560: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
4570: 72 29 28 6f 32 3e 3e 35 36 29 3b 0a 20 20 20 20  r)(o2>>56);.    
4580: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
4590: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
45a0: 3e 72 61 64 64 72 29 5b 31 36 2b 31 5d 20 3d 20  >raddr)[16+1] = 
45b0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
45c0: 6f 32 3e 3e 34 38 29 3b 0a 20 20 20 20 20 20 20  o2>>48);.       
45d0: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
45e0: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
45f0: 64 64 72 29 5b 31 36 2b 32 5d 20 3d 20 28 75 6e  ddr)[16+2] = (un
4600: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e  signed char)(o2>
4610: 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >40);.          
4620: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
4630: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
4640: 29 5b 31 36 2b 33 5d 20 3d 20 28 75 6e 73 69 67  )[16+3] = (unsig
4650: 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 33 32  ned char)(o2>>32
4660: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
4670: 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20   } else.        
4680: 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69        if (l->rsi
4690: 7a 65 20 3d 3d 20 32 31 29 20 7b 0a 20 20 20 20  ze == 21) {.    
46a0: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
46b0: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
46c0: 3e 72 61 64 64 72 29 5b 31 36 2b 30 5d 20 3d 20  >raddr)[16+0] = 
46d0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
46e0: 6f 32 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20  o2>>56);.       
46f0: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
4700: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
4710: 64 64 72 29 5b 31 36 2b 31 5d 20 3d 20 28 75 6e  ddr)[16+1] = (un
4720: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e  signed char)(o2>
4730: 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >48);.          
4740: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
4750: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
4760: 29 5b 31 36 2b 32 5d 20 3d 20 28 75 6e 73 69 67  )[16+2] = (unsig
4770: 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 34 30  ned char)(o2>>40
4780: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
4790: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
47a0: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31  ar *)l->raddr)[1
47b0: 36 2b 33 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  6+3] = (unsigned
47c0: 20 63 68 61 72 29 28 6f 32 3e 3e 33 32 29 3b 0a   char)(o2>>32);.
47d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
47e0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
47f0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 34  *)l->raddr)[16+4
4800: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
4810: 61 72 29 28 6f 32 3e 3e 32 34 29 3b 0a 20 20 20  ar)(o2>>24);.   
4820: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73             } els
4830: 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e.              
4840: 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20  if (l->rsize == 
4850: 32 32 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  22) {.          
4860: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
4870: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
4880: 29 5b 31 36 2b 30 5d 20 3d 20 28 75 6e 73 69 67  )[16+0] = (unsig
4890: 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 35 36  ned char)(o2>>56
48a0: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
48b0: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
48c0: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31  ar *)l->raddr)[1
48d0: 36 2b 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  6+1] = (unsigned
48e0: 20 63 68 61 72 29 28 6f 32 3e 3e 34 38 29 3b 0a   char)(o2>>48);.
48f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4900: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
4910: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 32  *)l->raddr)[16+2
4920: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
4930: 61 72 29 28 6f 32 3e 3e 34 30 29 3b 0a 20 20 20  ar)(o2>>40);.   
4940: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75               ((u
4950: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c  nsigned char *)l
4960: 2d 3e 72 61 64 64 72 29 5b 31 36 2b 33 5d 20 3d  ->raddr)[16+3] =
4970: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
4980: 28 6f 32 3e 3e 33 32 29 3b 0a 20 20 20 20 20 20  (o2>>32);.      
4990: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
49a0: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
49b0: 61 64 64 72 29 5b 31 36 2b 34 5d 20 3d 20 28 75  addr)[16+4] = (u
49c0: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32  nsigned char)(o2
49d0: 3e 3e 32 34 29 3b 0a 20 20 20 20 20 20 20 20 20  >>24);.         
49e0: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
49f0: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
4a00: 72 29 5b 31 36 2b 35 5d 20 3d 20 28 75 6e 73 69  r)[16+5] = (unsi
4a10: 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 31  gned char)(o2>>1
4a20: 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  6);.            
4a30: 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20    } else.       
4a40: 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73         if (l->rs
4a50: 69 7a 65 20 3d 3d 20 32 33 29 20 7b 0a 20 20 20  ize == 23) {.   
4a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75               ((u
4a70: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c  nsigned char *)l
4a80: 2d 3e 72 61 64 64 72 29 5b 31 36 2b 30 5d 20 3d  ->raddr)[16+0] =
4a90: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
4aa0: 28 6f 32 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20  (o2>>56);.      
4ab0: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
4ac0: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
4ad0: 61 64 64 72 29 5b 31 36 2b 31 5d 20 3d 20 28 75  addr)[16+1] = (u
4ae0: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32  nsigned char)(o2
4af0: 3e 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20  >>48);.         
4b00: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
4b10: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
4b20: 72 29 5b 31 36 2b 32 5d 20 3d 20 28 75 6e 73 69  r)[16+2] = (unsi
4b30: 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 34  gned char)(o2>>4
4b40: 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  0);.            
4b50: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
4b60: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
4b70: 31 36 2b 33 5d 20 3d 20 28 75 6e 73 69 67 6e 65  16+3] = (unsigne
4b80: 64 20 63 68 61 72 29 28 6f 32 3e 3e 33 32 29 3b  d char)(o2>>32);
4b90: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4ba0: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
4bb0: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b   *)l->raddr)[16+
4bc0: 34 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  4] = (unsigned c
4bd0: 68 61 72 29 28 6f 32 3e 3e 32 34 29 3b 0a 20 20  har)(o2>>24);.  
4be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28                ((
4bf0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
4c00: 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 35 5d 20  l->raddr)[16+5] 
4c10: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
4c20: 29 28 6f 32 3e 3e 31 36 29 3b 0a 20 20 20 20 20  )(o2>>16);.     
4c30: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
4c40: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
4c50: 72 61 64 64 72 29 5b 31 36 2b 36 5d 20 3d 20 28  raddr)[16+6] = (
4c60: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
4c70: 32 3e 3e 38 29 3b 0a 20 20 20 20 20 20 20 20 20  2>>8);.         
4c80: 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20       } else.    
4c90: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d            if (l-
4ca0: 3e 72 73 69 7a 65 20 3e 3d 20 32 34 20 26 26 20  >rsize >= 24 && 
4cb0: 6c 2d 3e 72 73 69 7a 65 20 3c 3d 20 33 32 29 20  l->rsize <= 32) 
4cc0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
4cd0: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
4ce0: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36  r *)l->raddr)[16
4cf0: 2b 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  +0] = (unsigned 
4d00: 63 68 61 72 29 28 6f 32 3e 3e 35 36 29 3b 0a 20  char)(o2>>56);. 
4d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
4d20: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
4d30: 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 31 5d  )l->raddr)[16+1]
4d40: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
4d50: 72 29 28 6f 32 3e 3e 34 38 29 3b 0a 20 20 20 20  r)(o2>>48);.    
4d60: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
4d70: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
4d80: 3e 72 61 64 64 72 29 5b 31 36 2b 32 5d 20 3d 20  >raddr)[16+2] = 
4d90: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
4da0: 6f 32 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20 20  o2>>40);.       
4db0: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
4dc0: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
4dd0: 64 64 72 29 5b 31 36 2b 33 5d 20 3d 20 28 75 6e  ddr)[16+3] = (un
4de0: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 32 3e  signed char)(o2>
4df0: 3e 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >32);.          
4e00: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
4e10: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
4e20: 29 5b 31 36 2b 34 5d 20 3d 20 28 75 6e 73 69 67  )[16+4] = (unsig
4e30: 6e 65 64 20 63 68 61 72 29 28 6f 32 3e 3e 32 34  ned char)(o2>>24
4e40: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
4e50: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
4e60: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31  ar *)l->raddr)[1
4e70: 36 2b 35 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  6+5] = (unsigned
4e80: 20 63 68 61 72 29 28 6f 32 3e 3e 31 36 29 3b 0a   char)(o2>>16);.
4e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4ea0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
4eb0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 31 36 2b 36  *)l->raddr)[16+6
4ec0: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
4ed0: 61 72 29 28 6f 32 3e 3e 38 29 3b 0a 20 20 20 20  ar)(o2>>8);.    
4ee0: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
4ef0: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
4f00: 3e 72 61 64 64 72 29 5b 31 36 2b 37 5d 20 3d 20  >raddr)[16+7] = 
4f10: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
4f20: 6f 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  o2);.           
4f30: 20 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a       if (l->rsiz
4f40: 65 20 3d 3d 20 32 34 29 20 7b 0a 20 20 20 20 20  e == 24) {.     
4f50: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73             } els
4f60: 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e.              
4f70: 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20 3d    if (l->rsize =
4f80: 3d 20 32 35 29 20 7b 0a 20 20 20 20 20 20 20 20  = 25) {.        
4f90: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
4fa0: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
4fb0: 61 64 64 72 29 5b 32 34 2b 30 5d 20 3d 20 28 75  addr)[24+0] = (u
4fc0: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33  nsigned char)(o3
4fd0: 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20 20 20  >>56);.         
4fe0: 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20         } else.  
4ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
5000: 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 32 36   (l->rsize == 26
5010: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
5020: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
5030: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
5040: 29 5b 32 34 2b 30 5d 20 3d 20 28 75 6e 73 69 67  )[24+0] = (unsig
5050: 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e 35 36  ned char)(o3>>56
5060: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
5070: 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20       ((unsigned 
5080: 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29  char *)l->raddr)
5090: 5b 32 34 2b 31 5d 20 3d 20 28 75 6e 73 69 67 6e  [24+1] = (unsign
50a0: 65 64 20 63 68 61 72 29 28 6f 33 3e 3e 34 38 29  ed char)(o3>>48)
50b0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
50c0: 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20    } else.       
50d0: 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 2d 3e           if (l->
50e0: 72 73 69 7a 65 20 3d 3d 20 32 37 29 20 7b 0a 20  rsize == 27) {. 
50f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5100: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
5110: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b   *)l->raddr)[24+
5120: 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  0] = (unsigned c
5130: 68 61 72 29 28 6f 33 3e 3e 35 36 29 3b 0a 20 20  har)(o3>>56);.  
5140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5150: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
5160: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 31  *)l->raddr)[24+1
5170: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
5180: 61 72 29 28 6f 33 3e 3e 34 38 29 3b 0a 20 20 20  ar)(o3>>48);.   
5190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
51a0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
51b0: 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 32 5d  )l->raddr)[24+2]
51c0: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
51d0: 72 29 28 6f 33 3e 3e 34 30 29 3b 0a 20 20 20 20  r)(o3>>40);.    
51e0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c              } el
51f0: 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  se.             
5200: 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20     if (l->rsize 
5210: 3d 3d 20 32 38 29 20 7b 0a 20 20 20 20 20 20 20  == 28) {.       
5220: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
5230: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
5240: 72 61 64 64 72 29 5b 32 34 2b 30 5d 20 3d 20 28  raddr)[24+0] = (
5250: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
5260: 33 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20 20  3>>56);.        
5270: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
5280: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
5290: 61 64 64 72 29 5b 32 34 2b 31 5d 20 3d 20 28 75  addr)[24+1] = (u
52a0: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33  nsigned char)(o3
52b0: 3e 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20 20  >>48);.         
52c0: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
52d0: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
52e0: 64 64 72 29 5b 32 34 2b 32 5d 20 3d 20 28 75 6e  ddr)[24+2] = (un
52f0: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e  signed char)(o3>
5300: 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >40);.          
5310: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
5320: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
5330: 64 72 29 5b 32 34 2b 33 5d 20 3d 20 28 75 6e 73  dr)[24+3] = (uns
5340: 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e  igned char)(o3>>
5350: 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  32);.           
5360: 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20       } else.    
5370: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
5380: 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20 32 39 29 20  l->rsize == 29) 
5390: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
53a0: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
53b0: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
53c0: 32 34 2b 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65  24+0] = (unsigne
53d0: 64 20 63 68 61 72 29 28 6f 33 3e 3e 35 36 29 3b  d char)(o3>>56);
53e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
53f0: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
5400: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32  ar *)l->raddr)[2
5410: 34 2b 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  4+1] = (unsigned
5420: 20 63 68 61 72 29 28 6f 33 3e 3e 34 38 29 3b 0a   char)(o3>>48);.
5430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5440: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
5450: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34  r *)l->raddr)[24
5460: 2b 32 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  +2] = (unsigned 
5470: 63 68 61 72 29 28 6f 33 3e 3e 34 30 29 3b 0a 20  char)(o3>>40);. 
5480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5490: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
54a0: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b   *)l->raddr)[24+
54b0: 33 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  3] = (unsigned c
54c0: 68 61 72 29 28 6f 33 3e 3e 33 32 29 3b 0a 20 20  har)(o3>>32);.  
54d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
54e0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
54f0: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 34  *)l->raddr)[24+4
5500: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
5510: 61 72 29 28 6f 33 3e 3e 32 34 29 3b 0a 20 20 20  ar)(o3>>24);.   
5520: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65               } e
5530: 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  lse.            
5540: 20 20 20 20 69 66 20 28 6c 2d 3e 72 73 69 7a 65      if (l->rsize
5550: 20 3d 3d 20 33 30 29 20 7b 0a 20 20 20 20 20 20   == 30) {.      
5560: 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e              ((un
5570: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d  signed char *)l-
5580: 3e 72 61 64 64 72 29 5b 32 34 2b 30 5d 20 3d 20  >raddr)[24+0] = 
5590: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28  (unsigned char)(
55a0: 6f 33 3e 3e 35 36 29 3b 0a 20 20 20 20 20 20 20  o3>>56);.       
55b0: 20 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73             ((uns
55c0: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e  igned char *)l->
55d0: 72 61 64 64 72 29 5b 32 34 2b 31 5d 20 3d 20 28  raddr)[24+1] = (
55e0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f  unsigned char)(o
55f0: 33 3e 3e 34 38 29 3b 0a 20 20 20 20 20 20 20 20  3>>48);.        
5600: 20 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69            ((unsi
5610: 67 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72  gned char *)l->r
5620: 61 64 64 72 29 5b 32 34 2b 32 5d 20 3d 20 28 75  addr)[24+2] = (u
5630: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33  nsigned char)(o3
5640: 3e 3e 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20  >>40);.         
5650: 20 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67           ((unsig
5660: 6e 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61  ned char *)l->ra
5670: 64 64 72 29 5b 32 34 2b 33 5d 20 3d 20 28 75 6e  ddr)[24+3] = (un
5680: 73 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e  signed char)(o3>
5690: 3e 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20  >32);.          
56a0: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
56b0: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
56c0: 64 72 29 5b 32 34 2b 34 5d 20 3d 20 28 75 6e 73  dr)[24+4] = (uns
56d0: 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e  igned char)(o3>>
56e0: 32 34 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  24);.           
56f0: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
5700: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
5710: 72 29 5b 32 34 2b 35 5d 20 3d 20 28 75 6e 73 69  r)[24+5] = (unsi
5720: 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e 31  gned char)(o3>>1
5730: 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  6);.            
5740: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
5750: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
5760: 2d 3e 72 73 69 7a 65 20 3d 3d 20 33 31 29 20 7b  ->rsize == 31) {
5770: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
5780: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
5790: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32  ar *)l->raddr)[2
57a0: 34 2b 30 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  4+0] = (unsigned
57b0: 20 63 68 61 72 29 28 6f 33 3e 3e 35 36 29 3b 0a   char)(o3>>56);.
57c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
57d0: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
57e0: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34  r *)l->raddr)[24
57f0: 2b 31 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  +1] = (unsigned 
5800: 63 68 61 72 29 28 6f 33 3e 3e 34 38 29 3b 0a 20  char)(o3>>48);. 
5810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5820: 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72   ((unsigned char
5830: 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b   *)l->raddr)[24+
5840: 32 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63  2] = (unsigned c
5850: 68 61 72 29 28 6f 33 3e 3e 34 30 29 3b 0a 20 20  har)(o3>>40);.  
5860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5870: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
5880: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 33  *)l->raddr)[24+3
5890: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
58a0: 61 72 29 28 6f 33 3e 3e 33 32 29 3b 0a 20 20 20  ar)(o3>>32);.   
58b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
58c0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
58d0: 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 34 5d  )l->raddr)[24+4]
58e0: 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61   = (unsigned cha
58f0: 72 29 28 6f 33 3e 3e 32 34 29 3b 0a 20 20 20 20  r)(o3>>24);.    
5900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28                ((
5910: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
5920: 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 35 5d 20  l->raddr)[24+5] 
5930: 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  = (unsigned char
5940: 29 28 6f 33 3e 3e 31 36 29 3b 0a 20 20 20 20 20  )(o3>>16);.     
5950: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75               ((u
5960: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 6c  nsigned char *)l
5970: 2d 3e 72 61 64 64 72 29 5b 32 34 2b 36 5d 20 3d  ->raddr)[24+6] =
5980: 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29   (unsigned char)
5990: 28 6f 33 3e 3e 38 29 3b 0a 20 20 20 20 20 20 20  (o3>>8);.       
59a0: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a           } else.
59b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
59c0: 69 66 20 28 6c 2d 3e 72 73 69 7a 65 20 3d 3d 20  if (l->rsize == 
59d0: 33 32 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  32) {.          
59e0: 20 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e          ((unsign
59f0: 65 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64  ed char *)l->rad
5a00: 64 72 29 5b 32 34 2b 30 5d 20 3d 20 28 75 6e 73  dr)[24+0] = (uns
5a10: 69 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e  igned char)(o3>>
5a20: 35 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  56);.           
5a30: 20 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65         ((unsigne
5a40: 64 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64  d char *)l->radd
5a50: 72 29 5b 32 34 2b 31 5d 20 3d 20 28 75 6e 73 69  r)[24+1] = (unsi
5a60: 67 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e 34  gned char)(o3>>4
5a70: 38 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  8);.            
5a80: 20 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64        ((unsigned
5a90: 20 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72   char *)l->raddr
5aa0: 29 5b 32 34 2b 32 5d 20 3d 20 28 75 6e 73 69 67  )[24+2] = (unsig
5ab0: 6e 65 64 20 63 68 61 72 29 28 6f 33 3e 3e 34 30  ned char)(o3>>40
5ac0: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
5ad0: 20 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20       ((unsigned 
5ae0: 63 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29  char *)l->raddr)
5af0: 5b 32 34 2b 33 5d 20 3d 20 28 75 6e 73 69 67 6e  [24+3] = (unsign
5b00: 65 64 20 63 68 61 72 29 28 6f 33 3e 3e 33 32 29  ed char)(o3>>32)
5b10: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
5b20: 20 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63      ((unsigned c
5b30: 68 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b  har *)l->raddr)[
5b40: 32 34 2b 34 5d 20 3d 20 28 75 6e 73 69 67 6e 65  24+4] = (unsigne
5b50: 64 20 63 68 61 72 29 28 6f 33 3e 3e 32 34 29 3b  d char)(o3>>24);
5b60: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
5b70: 20 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68     ((unsigned ch
5b80: 61 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32  ar *)l->raddr)[2
5b90: 34 2b 35 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64  4+5] = (unsigned
5ba0: 20 63 68 61 72 29 28 6f 33 3e 3e 31 36 29 3b 0a   char)(o3>>16);.
5bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5bc0: 20 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61    ((unsigned cha
5bd0: 72 20 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34  r *)l->raddr)[24
5be0: 2b 36 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20  +6] = (unsigned 
5bf0: 63 68 61 72 29 28 6f 33 3e 3e 38 29 3b 0a 20 20  char)(o3>>8);.  
5c00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c10: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
5c20: 2a 29 6c 2d 3e 72 61 64 64 72 29 5b 32 34 2b 37  *)l->raddr)[24+7
5c30: 5d 20 3d 20 28 75 6e 73 69 67 6e 65 64 20 63 68  ] = (unsigned ch
5c40: 61 72 29 28 6f 33 29 3b 0a 20 20 20 20 20 20 20  ar)(o3);.       
5c50: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20           }.     
5c60: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20           }.     
5c70: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
5c80: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20     }.        }. 
5c90: 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d       }.    }.  }
5ca0: 0a 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a  .  return 0;.}..
5cb0: 23 65 6e 64 69 66 20 2f 2a 5f 61 76 63 61 6c 6c  #endif /*_avcall
5cc0: 5f 73 70 61 72 63 36 34 5f 63 20 2a 2f 0a        _sparc64_c */.