Artifact 7a3499cb39ee147db5c3a0fc91c61c0ea03e06a2:


0000: 2f 2a 20 76 61 63 61 6c 6c 20 66 75 6e 63 74 69  /* vacall functi
0010: 6f 6e 20 66 6f 72 20 6d 69 70 73 20 43 50 55 20  on for mips CPU 
0020: 2a 2f 0a 0a 2f 2a 0a 20 2a 20 43 6f 70 79 72 69  */../*. * Copyri
0030: 67 68 74 20 31 39 39 35 2d 32 30 30 34 20 42 72  ght 1995-2004 Br
0040: 75 6e 6f 20 48 61 69 62 6c 65 2c 20 3c 62 72 75  uno Haible, <bru
0050: 6e 6f 40 63 6c 69 73 70 2e 6f 72 67 3e 0a 20 2a  no@clisp.org>. *
0060: 0a 20 2a 20 54 68 69 73 20 69 73 20 66 72 65 65  . * This is free
0070: 20 73 6f 66 74 77 61 72 65 20 64 69 73 74 72 69   software distri
0080: 62 75 74 65 64 20 75 6e 64 65 72 20 74 68 65 20  buted under the 
0090: 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c  GNU General Publ
00a0: 69 63 20 4c 69 63 65 6e 63 65 0a 20 2a 20 64 65  ic Licence. * de
00b0: 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 66  scribed in the f
00c0: 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 43 6f 6e  ile COPYING. Con
00d0: 74 61 63 74 20 74 68 65 20 61 75 74 68 6f 72 20  tact the author 
00e0: 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 68 61 76  if you don't hav
00f0: 65 20 74 68 69 73 0a 20 2a 20 6f 72 20 63 61 6e  e this. * or can
0100: 27 74 20 6c 69 76 65 20 77 69 74 68 20 69 74 2e  't live with it.
0110: 20 54 68 65 72 65 20 69 73 20 41 42 53 4f 4c 55   There is ABSOLU
0120: 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59  TELY NO WARRANTY
0130: 2c 20 65 78 70 6c 69 63 69 74 20 6f 72 20 69 6d  , explicit or im
0140: 70 6c 69 65 64 2c 0a 20 2a 20 6f 6e 20 74 68 69  plied,. * on thi
0150: 73 20 73 6f 66 74 77 61 72 65 2e 0a 20 2a 2f 0a  s software.. */.
0160: 0a 23 69 66 6e 64 65 66 20 52 45 45 4e 54 52 41  .#ifndef REENTRA
0170: 4e 54 0a 23 69 6e 63 6c 75 64 65 20 22 76 61 63  NT.#include "vac
0180: 61 6c 6c 2e 68 2e 69 6e 22 0a 23 65 6c 73 65 20  all.h.in".#else 
0190: 2f 2a 20 52 45 45 4e 54 52 41 4e 54 20 2a 2f 0a  /* REENTRANT */.
01a0: 23 69 6e 63 6c 75 64 65 20 22 76 61 63 61 6c 6c  #include "vacall
01b0: 5f 72 2e 68 2e 69 6e 22 0a 23 65 6e 64 69 66 0a  _r.h.in".#endif.
01c0: 0a 23 69 66 6e 64 65 66 20 52 45 45 4e 54 52 41  .#ifndef REENTRA
01d0: 4e 54 0a 74 79 70 65 64 65 66 20 76 6f 69 64 20  NT.typedef void 
01e0: 28 2a 66 75 6e 63 5f 70 6f 69 6e 74 65 72 29 28  (*func_pointer)(
01f0: 76 61 5f 61 6c 69 73 74 29 3b 0a 23 65 6c 73 65  va_alist);.#else
0200: 20 2f 2a 20 52 45 45 4e 54 52 41 4e 54 20 2a 2f   /* REENTRANT */
0210: 0a 23 64 65 66 69 6e 65 20 5f 5f 76 61 63 61 6c  .#define __vacal
0220: 6c 20 5f 5f 76 61 63 61 6c 6c 5f 72 0a 74 79 70  l __vacall_r.typ
0230: 65 64 65 66 20 76 6f 69 64 20 28 2a 66 75 6e 63  edef void (*func
0240: 5f 70 6f 69 6e 74 65 72 29 28 76 6f 69 64 2a 2c  _pointer)(void*,
0250: 76 61 5f 61 6c 69 73 74 29 3b 0a 72 65 67 69 73  va_alist);.regis
0260: 74 65 72 20 73 74 72 75 63 74 20 7b 20 66 75 6e  ter struct { fun
0270: 63 5f 70 6f 69 6e 74 65 72 20 76 61 63 61 6c 6c  c_pointer vacall
0280: 5f 66 75 6e 63 74 69 6f 6e 3b 20 76 6f 69 64 2a  _function; void*
0290: 20 61 72 67 3b 20 7d 0a 20 20 20 20 20 20 20 20   arg; }.        
02a0: 20 2a 09 09 65 6e 76 09 5f 5f 61 73 6d 5f 5f 28   *..env.__asm__(
02b0: 22 24 32 22 29 3b 0a 23 65 6e 64 69 66 0a 72 65  "$2");.#endif.re
02c0: 67 69 73 74 65 72 20 66 75 6e 63 5f 70 6f 69 6e  gister func_poin
02d0: 74 65 72 09 74 39 09 5f 5f 61 73 6d 5f 5f 28 22  ter.t9.__asm__("
02e0: 24 32 35 22 29 3b 0a 72 65 67 69 73 74 65 72 20  $25");.register 
02f0: 76 6f 69 64 2a 09 09 73 70 09 5f 5f 61 73 6d 5f  void*..sp.__asm_
0300: 5f 28 22 24 73 70 22 29 3b 0a 72 65 67 69 73 74  _("$sp");.regist
0310: 65 72 20 5f 5f 76 61 77 6f 72 64 09 69 61 72 67  er __vaword.iarg
0320: 30 09 5f 5f 61 73 6d 5f 5f 28 22 24 34 22 29 3b  0.__asm__("$4");
0330: 0a 72 65 67 69 73 74 65 72 20 5f 5f 76 61 77 6f  .register __vawo
0340: 72 64 09 69 61 72 67 31 09 5f 5f 61 73 6d 5f 5f  rd.iarg1.__asm__
0350: 28 22 24 35 22 29 3b 0a 72 65 67 69 73 74 65 72  ("$5");.register
0360: 20 5f 5f 76 61 77 6f 72 64 09 69 61 72 67 32 09   __vaword.iarg2.
0370: 5f 5f 61 73 6d 5f 5f 28 22 24 36 22 29 3b 0a 72  __asm__("$6");.r
0380: 65 67 69 73 74 65 72 20 5f 5f 76 61 77 6f 72 64  egister __vaword
0390: 09 69 61 72 67 33 09 5f 5f 61 73 6d 5f 5f 28 22  .iarg3.__asm__("
03a0: 24 37 22 29 3b 0a 72 65 67 69 73 74 65 72 20 5f  $7");.register _
03b0: 5f 76 61 77 6f 72 64 09 69 61 72 67 34 09 5f 5f  _vaword.iarg4.__
03c0: 61 73 6d 5f 5f 28 22 24 38 22 29 3b 0a 72 65 67  asm__("$8");.reg
03d0: 69 73 74 65 72 20 5f 5f 76 61 77 6f 72 64 09 69  ister __vaword.i
03e0: 61 72 67 35 09 5f 5f 61 73 6d 5f 5f 28 22 24 39  arg5.__asm__("$9
03f0: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 5f 5f 76  ");.register __v
0400: 61 77 6f 72 64 09 69 61 72 67 36 09 5f 5f 61 73  aword.iarg6.__as
0410: 6d 5f 5f 28 22 24 31 30 22 29 3b 0a 72 65 67 69  m__("$10");.regi
0420: 73 74 65 72 20 5f 5f 76 61 77 6f 72 64 09 69 61  ster __vaword.ia
0430: 72 67 37 09 5f 5f 61 73 6d 5f 5f 28 22 24 31 31  rg7.__asm__("$11
0440: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 66 6c 6f  ");.register flo
0450: 61 74 09 09 66 61 72 67 30 09 5f 5f 61 73 6d 5f  at..farg0.__asm_
0460: 5f 28 22 24 66 31 32 22 29 3b 0a 72 65 67 69 73  _("$f12");.regis
0470: 74 65 72 20 66 6c 6f 61 74 09 09 66 61 72 67 31  ter float..farg1
0480: 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 31 33 22 29  .__asm__("$f13")
0490: 3b 0a 72 65 67 69 73 74 65 72 20 66 6c 6f 61 74  ;.register float
04a0: 09 09 66 61 72 67 32 09 5f 5f 61 73 6d 5f 5f 28  ..farg2.__asm__(
04b0: 22 24 66 31 34 22 29 3b 0a 72 65 67 69 73 74 65  "$f14");.registe
04c0: 72 20 66 6c 6f 61 74 09 09 66 61 72 67 33 09 5f  r float..farg3._
04d0: 5f 61 73 6d 5f 5f 28 22 24 66 31 35 22 29 3b 0a  _asm__("$f15");.
04e0: 72 65 67 69 73 74 65 72 20 66 6c 6f 61 74 09 09  register float..
04f0: 66 61 72 67 34 09 5f 5f 61 73 6d 5f 5f 28 22 24  farg4.__asm__("$
0500: 66 31 36 22 29 3b 0a 72 65 67 69 73 74 65 72 20  f16");.register 
0510: 66 6c 6f 61 74 09 09 66 61 72 67 35 09 5f 5f 61  float..farg5.__a
0520: 73 6d 5f 5f 28 22 24 66 31 37 22 29 3b 0a 72 65  sm__("$f17");.re
0530: 67 69 73 74 65 72 20 66 6c 6f 61 74 09 09 66 61  gister float..fa
0540: 72 67 36 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 31  rg6.__asm__("$f1
0550: 38 22 29 3b 0a 72 65 67 69 73 74 65 72 20 66 6c  8");.register fl
0560: 6f 61 74 09 09 66 61 72 67 37 09 5f 5f 61 73 6d  oat..farg7.__asm
0570: 5f 5f 28 22 24 66 31 39 22 29 3b 0a 72 65 67 69  __("$f19");.regi
0580: 73 74 65 72 20 64 6f 75 62 6c 65 09 09 64 61 72  ster double..dar
0590: 67 30 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 31 32  g0.__asm__("$f12
05a0: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 64 6f 75  ");.register dou
05b0: 62 6c 65 09 09 64 61 72 67 31 09 5f 5f 61 73 6d  ble..darg1.__asm
05c0: 5f 5f 28 22 24 66 31 33 22 29 3b 0a 72 65 67 69  __("$f13");.regi
05d0: 73 74 65 72 20 64 6f 75 62 6c 65 09 09 64 61 72  ster double..dar
05e0: 67 32 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 31 34  g2.__asm__("$f14
05f0: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 64 6f 75  ");.register dou
0600: 62 6c 65 09 09 64 61 72 67 33 09 5f 5f 61 73 6d  ble..darg3.__asm
0610: 5f 5f 28 22 24 66 31 35 22 29 3b 0a 72 65 67 69  __("$f15");.regi
0620: 73 74 65 72 20 64 6f 75 62 6c 65 09 09 64 61 72  ster double..dar
0630: 67 34 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 31 36  g4.__asm__("$f16
0640: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 64 6f 75  ");.register dou
0650: 62 6c 65 09 09 64 61 72 67 35 09 5f 5f 61 73 6d  ble..darg5.__asm
0660: 5f 5f 28 22 24 66 31 37 22 29 3b 0a 72 65 67 69  __("$f17");.regi
0670: 73 74 65 72 20 64 6f 75 62 6c 65 09 09 64 61 72  ster double..dar
0680: 67 36 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 31 38  g6.__asm__("$f18
0690: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 64 6f 75  ");.register dou
06a0: 62 6c 65 09 09 64 61 72 67 37 09 5f 5f 61 73 6d  ble..darg7.__asm
06b0: 5f 5f 28 22 24 66 31 39 22 29 3b 0a 72 65 67 69  __("$f19");.regi
06c0: 73 74 65 72 20 5f 5f 76 61 77 6f 72 64 09 69 72  ster __vaword.ir
06d0: 65 74 09 5f 5f 61 73 6d 5f 5f 28 22 24 32 22 29  et.__asm__("$2")
06e0: 3b 0a 72 65 67 69 73 74 65 72 20 5f 5f 76 61 77  ;.register __vaw
06f0: 6f 72 64 09 69 72 65 74 32 09 5f 5f 61 73 6d 5f  ord.iret2.__asm_
0700: 5f 28 22 24 33 22 29 3b 0a 72 65 67 69 73 74 65  _("$3");.registe
0710: 72 20 66 6c 6f 61 74 09 09 66 72 65 74 09 5f 5f  r float..fret.__
0720: 61 73 6d 5f 5f 28 22 24 66 30 22 29 3b 0a 72 65  asm__("$f0");.re
0730: 67 69 73 74 65 72 20 66 6c 6f 61 74 09 09 66 72  gister float..fr
0740: 65 74 32 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 32  et2.__asm__("$f2
0750: 22 29 3b 0a 72 65 67 69 73 74 65 72 20 64 6f 75  ");.register dou
0760: 62 6c 65 09 09 64 72 65 74 09 5f 5f 61 73 6d 5f  ble..dret.__asm_
0770: 5f 28 22 24 66 30 22 29 3b 0a 72 65 67 69 73 74  _("$f0");.regist
0780: 65 72 20 64 6f 75 62 6c 65 09 09 64 72 65 74 32  er double..dret2
0790: 09 5f 5f 61 73 6d 5f 5f 28 22 24 66 32 22 29 3b  .__asm__("$f2");
07a0: 0a 0a 76 6f 69 64 20 2f 2a 20 74 68 65 20 72 65  ..void /* the re
07b0: 74 75 72 6e 20 74 79 70 65 20 69 73 20 76 61 72  turn type is var
07c0: 69 61 62 6c 65 2c 20 6e 6f 74 20 76 6f 69 64 21  iable, not void!
07d0: 20 2a 2f 0a 5f 5f 76 61 63 61 6c 6c 20 28 5f 5f   */.__vacall (__
07e0: 76 61 77 6f 72 64 20 77 6f 72 64 31 2c 20 5f 5f  vaword word1, __
07f0: 76 61 77 6f 72 64 20 77 6f 72 64 32 2c 20 5f 5f  vaword word2, __
0800: 76 61 77 6f 72 64 20 77 6f 72 64 33 2c 20 5f 5f  vaword word3, __
0810: 76 61 77 6f 72 64 20 77 6f 72 64 34 2c 0a 20 20  vaword word4,.  
0820: 20 20 20 20 20 20 20 20 5f 5f 76 61 77 6f 72 64          __vaword
0830: 20 77 6f 72 64 35 2c 20 5f 5f 76 61 77 6f 72 64   word5, __vaword
0840: 20 77 6f 72 64 36 2c 20 5f 5f 76 61 77 6f 72 64   word6, __vaword
0850: 20 77 6f 72 64 37 2c 20 5f 5f 76 61 77 6f 72 64   word7, __vaword
0860: 20 77 6f 72 64 38 2c 0a 20 20 20 20 20 20 20 20   word8,.        
0870: 20 20 5f 5f 76 61 77 6f 72 64 20 66 69 72 73 74    __vaword first
0880: 77 6f 72 64 29 0a 7b 0a 20 20 2f 2a 20 67 63 63  word).{.  /* gcc
0890: 2d 32 2e 39 35 20 64 6f 65 73 20 6e 6f 74 20 61  -2.95 does not a
08a0: 6c 6c 6f 63 61 74 65 20 73 74 61 63 6b 20 73 70  llocate stack sp
08b0: 61 63 65 20 66 6f 72 20 77 6f 72 64 31 2c 2e 2e  ace for word1,..
08c0: 2e 2c 77 6f 72 64 38 2e 20 2a 2f 0a 20 20 2f 2a  .,word8. */.  /*
08d0: 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61   The following a
08e0: 63 63 6f 75 6e 74 20 66 6f 72 20 74 68 65 20 73  ccount for the s
08f0: 74 61 63 6b 20 66 72 61 6d 65 20 69 6e 63 72 65  tack frame incre
0900: 61 73 65 20 66 72 6f 6d 20 31 39 32 20 74 6f 20  ase from 192 to 
0910: 32 35 36 20 62 79 74 65 73 0a 20 20 20 2a 20 64  256 bytes.   * d
0920: 6f 6e 65 20 62 79 20 70 6f 73 74 70 72 6f 63 65  one by postproce
0930: 73 73 69 6e 67 2e 20 2a 2f 0a 23 64 65 66 69 6e  ssing. */.#defin
0940: 65 20 66 69 72 73 74 77 6f 72 64 20 28 2a 28 26  e firstword (*(&
0950: 66 69 72 73 74 77 6f 72 64 2b 38 29 29 0a 20 20  firstword+8)).  
0960: 2f 2a 20 4d 6f 76 65 20 74 68 65 20 61 72 67 75  /* Move the argu
0970: 6d 65 6e 74 73 20 70 61 73 73 65 64 20 69 6e 20  ments passed in 
0980: 72 65 67 69 73 74 65 72 73 20 74 6f 20 74 68 65  registers to the
0990: 69 72 20 73 74 61 63 6b 20 6c 6f 63 61 74 69 6f  ir stack locatio
09a0: 6e 73 2e 20 2a 2f 0a 20 20 28 26 66 69 72 73 74  ns. */.  (&first
09b0: 77 6f 72 64 29 5b 2d 38 5d 20 3d 20 69 61 72 67  word)[-8] = iarg
09c0: 30 3b 20 2f 2a 20 77 6f 72 64 31 20 2a 2f 0a 20  0; /* word1 */. 
09d0: 20 28 26 66 69 72 73 74 77 6f 72 64 29 5b 2d 37   (&firstword)[-7
09e0: 5d 20 3d 20 69 61 72 67 31 3b 20 2f 2a 20 77 6f  ] = iarg1; /* wo
09f0: 72 64 32 20 2a 2f 0a 20 20 28 26 66 69 72 73 74  rd2 */.  (&first
0a00: 77 6f 72 64 29 5b 2d 36 5d 20 3d 20 69 61 72 67  word)[-6] = iarg
0a10: 32 3b 20 2f 2a 20 77 6f 72 64 33 20 2a 2f 0a 20  2; /* word3 */. 
0a20: 20 28 26 66 69 72 73 74 77 6f 72 64 29 5b 2d 35   (&firstword)[-5
0a30: 5d 20 3d 20 69 61 72 67 33 3b 20 2f 2a 20 77 6f  ] = iarg3; /* wo
0a40: 72 64 34 20 2a 2f 0a 20 20 28 26 66 69 72 73 74  rd4 */.  (&first
0a50: 77 6f 72 64 29 5b 2d 34 5d 20 3d 20 69 61 72 67  word)[-4] = iarg
0a60: 34 3b 20 2f 2a 20 77 6f 72 64 35 20 2a 2f 0a 20  4; /* word5 */. 
0a70: 20 28 26 66 69 72 73 74 77 6f 72 64 29 5b 2d 33   (&firstword)[-3
0a80: 5d 20 3d 20 69 61 72 67 35 3b 20 2f 2a 20 77 6f  ] = iarg5; /* wo
0a90: 72 64 36 20 2a 2f 0a 20 20 28 26 66 69 72 73 74  rd6 */.  (&first
0aa0: 77 6f 72 64 29 5b 2d 32 5d 20 3d 20 69 61 72 67  word)[-2] = iarg
0ab0: 36 3b 20 2f 2a 20 77 6f 72 64 37 20 2a 2f 0a 20  6; /* word7 */. 
0ac0: 20 28 26 66 69 72 73 74 77 6f 72 64 29 5b 2d 31   (&firstword)[-1
0ad0: 5d 20 3d 20 69 61 72 67 37 3b 20 2f 2a 20 77 6f  ] = iarg7; /* wo
0ae0: 72 64 38 20 2a 2f 0a 20 7b 5f 5f 76 61 5f 61 6c  rd8 */. {__va_al
0af0: 69 73 74 20 6c 69 73 74 3b 0a 20 20 6c 69 73 74  ist list;.  list
0b00: 2e 64 61 72 67 5b 30 5d 20 3d 20 64 61 72 67 30  .darg[0] = darg0
0b10: 3b 0a 20 20 6c 69 73 74 2e 64 61 72 67 5b 31 5d  ;.  list.darg[1]
0b20: 20 3d 20 64 61 72 67 31 3b 0a 20 20 6c 69 73 74   = darg1;.  list
0b30: 2e 64 61 72 67 5b 32 5d 20 3d 20 64 61 72 67 32  .darg[2] = darg2
0b40: 3b 0a 20 20 6c 69 73 74 2e 64 61 72 67 5b 33 5d  ;.  list.darg[3]
0b50: 20 3d 20 64 61 72 67 33 3b 0a 20 20 6c 69 73 74   = darg3;.  list
0b60: 2e 64 61 72 67 5b 34 5d 20 3d 20 64 61 72 67 34  .darg[4] = darg4
0b70: 3b 0a 20 20 6c 69 73 74 2e 64 61 72 67 5b 35 5d  ;.  list.darg[5]
0b80: 20 3d 20 64 61 72 67 35 3b 0a 20 20 6c 69 73 74   = darg5;.  list
0b90: 2e 64 61 72 67 5b 36 5d 20 3d 20 64 61 72 67 36  .darg[6] = darg6
0ba0: 3b 0a 20 20 6c 69 73 74 2e 64 61 72 67 5b 37 5d  ;.  list.darg[7]
0bb0: 20 3d 20 64 61 72 67 37 3b 0a 20 20 6c 69 73 74   = darg7;.  list
0bc0: 2e 66 61 72 67 5b 30 5d 20 3d 20 66 61 72 67 30  .farg[0] = farg0
0bd0: 3b 0a 20 20 6c 69 73 74 2e 66 61 72 67 5b 31 5d  ;.  list.farg[1]
0be0: 20 3d 20 66 61 72 67 31 3b 0a 20 20 6c 69 73 74   = farg1;.  list
0bf0: 2e 66 61 72 67 5b 32 5d 20 3d 20 66 61 72 67 32  .farg[2] = farg2
0c00: 3b 0a 20 20 6c 69 73 74 2e 66 61 72 67 5b 33 5d  ;.  list.farg[3]
0c10: 20 3d 20 66 61 72 67 33 3b 0a 20 20 6c 69 73 74   = farg3;.  list
0c20: 2e 66 61 72 67 5b 34 5d 20 3d 20 66 61 72 67 34  .farg[4] = farg4
0c30: 3b 0a 20 20 6c 69 73 74 2e 66 61 72 67 5b 35 5d  ;.  list.farg[5]
0c40: 20 3d 20 66 61 72 67 35 3b 0a 20 20 6c 69 73 74   = farg5;.  list
0c50: 2e 66 61 72 67 5b 36 5d 20 3d 20 66 61 72 67 36  .farg[6] = farg6
0c60: 3b 0a 20 20 6c 69 73 74 2e 66 61 72 67 5b 37 5d  ;.  list.farg[7]
0c70: 20 3d 20 66 61 72 67 37 3b 0a 20 20 2f 2a 20 50   = farg7;.  /* P
0c80: 72 65 70 61 72 65 20 74 68 65 20 76 61 5f 61 6c  repare the va_al
0c90: 69 73 74 2e 20 2a 2f 0a 20 20 6c 69 73 74 2e 66  ist. */.  list.f
0ca0: 6c 61 67 73 20 3d 20 30 3b 0a 20 20 6c 69 73 74  lags = 0;.  list
0cb0: 2e 61 70 74 72 20 3d 20 28 6c 6f 6e 67 29 28 26  .aptr = (long)(&
0cc0: 66 69 72 73 74 77 6f 72 64 20 2d 20 38 29 3b 0a  firstword - 8);.
0cd0: 20 20 6c 69 73 74 2e 72 61 64 64 72 20 3d 20 28    list.raddr = (
0ce0: 76 6f 69 64 2a 29 30 3b 0a 20 20 6c 69 73 74 2e  void*)0;.  list.
0cf0: 72 74 79 70 65 20 3d 20 5f 5f 56 41 76 6f 69 64  rtype = __VAvoid
0d00: 3b 0a 20 20 6c 69 73 74 2e 6d 65 6d 61 72 67 70  ;.  list.memargp
0d10: 74 72 20 3d 20 28 6c 6f 6e 67 29 26 66 69 72 73  tr = (long)&firs
0d20: 74 77 6f 72 64 3b 0a 20 20 6c 69 73 74 2e 61 6e  tword;.  list.an
0d30: 75 6d 20 3d 20 30 3b 0a 20 20 2f 2a 20 43 61 6c  um = 0;.  /* Cal
0d40: 6c 20 76 61 63 61 6c 6c 5f 66 75 6e 63 74 69 6f  l vacall_functio
0d50: 6e 2e 20 54 68 65 20 6d 61 63 72 6f 73 20 64 6f  n. The macros do
0d60: 20 61 6c 6c 20 74 68 65 20 72 65 73 74 2e 20 2a   all the rest. *
0d70: 2f 0a 23 69 66 6e 64 65 66 20 52 45 45 4e 54 52  /.#ifndef REENTR
0d80: 41 4e 54 0a 20 20 28 2a 28 74 39 20 3d 20 76 61  ANT.  (*(t9 = va
0d90: 63 61 6c 6c 5f 66 75 6e 63 74 69 6f 6e 29 29 20  call_function)) 
0da0: 28 26 6c 69 73 74 29 3b 0a 23 65 6c 73 65 20 2f  (&list);.#else /
0db0: 2a 20 52 45 45 4e 54 52 41 4e 54 20 2a 2f 0a 20  * REENTRANT */. 
0dc0: 20 28 2a 28 74 39 20 3d 20 65 6e 76 2d 3e 76 61   (*(t9 = env->va
0dd0: 63 61 6c 6c 5f 66 75 6e 63 74 69 6f 6e 29 29 20  call_function)) 
0de0: 28 65 6e 76 2d 3e 61 72 67 2c 26 6c 69 73 74 29  (env->arg,&list)
0df0: 3b 0a 23 65 6e 64 69 66 0a 20 20 2f 2a 20 50 75  ;.#endif.  /* Pu
0e00: 74 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69  t return value i
0e10: 6e 74 6f 20 70 72 6f 70 65 72 20 72 65 67 69 73  nto proper regis
0e20: 74 65 72 2e 20 2a 2f 0a 20 20 69 66 20 28 6c 69  ter. */.  if (li
0e30: 73 74 2e 72 74 79 70 65 20 3d 3d 20 5f 5f 56 41  st.rtype == __VA
0e40: 76 6f 69 64 29 20 7b 0a 20 20 7d 20 65 6c 73 65  void) {.  } else
0e50: 0a 20 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70  .  if (list.rtyp
0e60: 65 20 3d 3d 20 5f 5f 56 41 63 68 61 72 29 20 7b  e == __VAchar) {
0e70: 0a 20 20 20 20 69 72 65 74 20 3d 20 6c 69 73 74  .    iret = list
0e80: 2e 74 6d 70 2e 5f 63 68 61 72 3b 0a 20 20 7d 20  .tmp._char;.  } 
0e90: 65 6c 73 65 0a 20 20 69 66 20 28 6c 69 73 74 2e  else.  if (list.
0ea0: 72 74 79 70 65 20 3d 3d 20 5f 5f 56 41 73 63 68  rtype == __VAsch
0eb0: 61 72 29 20 7b 0a 20 20 20 20 69 72 65 74 20 3d  ar) {.    iret =
0ec0: 20 6c 69 73 74 2e 74 6d 70 2e 5f 73 63 68 61 72   list.tmp._schar
0ed0: 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20  ;.  } else.  if 
0ee0: 28 6c 69 73 74 2e 72 74 79 70 65 20 3d 3d 20 5f  (list.rtype == _
0ef0: 5f 56 41 75 63 68 61 72 29 20 7b 0a 20 20 20 20  _VAuchar) {.    
0f00: 69 72 65 74 20 3d 20 6c 69 73 74 2e 74 6d 70 2e  iret = list.tmp.
0f10: 5f 75 63 68 61 72 3b 0a 20 20 7d 20 65 6c 73 65  _uchar;.  } else
0f20: 0a 20 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70  .  if (list.rtyp
0f30: 65 20 3d 3d 20 5f 5f 56 41 73 68 6f 72 74 29 20  e == __VAshort) 
0f40: 7b 0a 20 20 20 20 69 72 65 74 20 3d 20 6c 69 73  {.    iret = lis
0f50: 74 2e 74 6d 70 2e 5f 73 68 6f 72 74 3b 0a 20 20  t.tmp._short;.  
0f60: 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c 69 73  } else.  if (lis
0f70: 74 2e 72 74 79 70 65 20 3d 3d 20 5f 5f 56 41 75  t.rtype == __VAu
0f80: 73 68 6f 72 74 29 20 7b 0a 20 20 20 20 69 72 65  short) {.    ire
0f90: 74 20 3d 20 6c 69 73 74 2e 74 6d 70 2e 5f 75 73  t = list.tmp._us
0fa0: 68 6f 72 74 3b 0a 20 20 7d 20 65 6c 73 65 0a 20  hort;.  } else. 
0fb0: 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70 65 20   if (list.rtype 
0fc0: 3d 3d 20 5f 5f 56 41 69 6e 74 29 20 7b 0a 20 20  == __VAint) {.  
0fd0: 20 20 69 72 65 74 20 3d 20 6c 69 73 74 2e 74 6d    iret = list.tm
0fe0: 70 2e 5f 69 6e 74 3b 0a 20 20 7d 20 65 6c 73 65  p._int;.  } else
0ff0: 0a 20 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70  .  if (list.rtyp
1000: 65 20 3d 3d 20 5f 5f 56 41 75 69 6e 74 29 20 7b  e == __VAuint) {
1010: 0a 20 20 20 20 69 72 65 74 20 3d 20 6c 69 73 74  .    iret = list
1020: 2e 74 6d 70 2e 5f 75 69 6e 74 3b 0a 20 20 7d 20  .tmp._uint;.  } 
1030: 65 6c 73 65 0a 20 20 69 66 20 28 6c 69 73 74 2e  else.  if (list.
1040: 72 74 79 70 65 20 3d 3d 20 5f 5f 56 41 6c 6f 6e  rtype == __VAlon
1050: 67 29 20 7b 0a 20 20 20 20 69 72 65 74 20 3d 20  g) {.    iret = 
1060: 6c 69 73 74 2e 74 6d 70 2e 5f 6c 6f 6e 67 3b 0a  list.tmp._long;.
1070: 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c    } else.  if (l
1080: 69 73 74 2e 72 74 79 70 65 20 3d 3d 20 5f 5f 56  ist.rtype == __V
1090: 41 75 6c 6f 6e 67 29 20 7b 0a 20 20 20 20 69 72  Aulong) {.    ir
10a0: 65 74 20 3d 20 6c 69 73 74 2e 74 6d 70 2e 5f 75  et = list.tmp._u
10b0: 6c 6f 6e 67 3b 0a 20 20 7d 20 65 6c 73 65 0a 20  long;.  } else. 
10c0: 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70 65 20   if (list.rtype 
10d0: 3d 3d 20 5f 5f 56 41 6c 6f 6e 67 6c 6f 6e 67 29  == __VAlonglong)
10e0: 20 7b 0a 20 20 20 20 69 72 65 74 20 3d 20 6c 69   {.    iret = li
10f0: 73 74 2e 74 6d 70 2e 5f 6c 6f 6e 67 6c 6f 6e 67  st.tmp._longlong
1100: 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20  ;.  } else.  if 
1110: 28 6c 69 73 74 2e 72 74 79 70 65 20 3d 3d 20 5f  (list.rtype == _
1120: 5f 56 41 75 6c 6f 6e 67 6c 6f 6e 67 29 20 7b 0a  _VAulonglong) {.
1130: 20 20 20 20 69 72 65 74 20 3d 20 6c 69 73 74 2e      iret = list.
1140: 74 6d 70 2e 5f 75 6c 6f 6e 67 6c 6f 6e 67 3b 0a  tmp._ulonglong;.
1150: 20 20 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c    } else.  if (l
1160: 69 73 74 2e 72 74 79 70 65 20 3d 3d 20 5f 5f 56  ist.rtype == __V
1170: 41 66 6c 6f 61 74 29 20 7b 0a 20 20 20 20 66 72  Afloat) {.    fr
1180: 65 74 20 3d 20 6c 69 73 74 2e 74 6d 70 2e 5f 66  et = list.tmp._f
1190: 6c 6f 61 74 3b 0a 20 20 7d 20 65 6c 73 65 0a 20  loat;.  } else. 
11a0: 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70 65 20   if (list.rtype 
11b0: 3d 3d 20 5f 5f 56 41 64 6f 75 62 6c 65 29 20 7b  == __VAdouble) {
11c0: 0a 20 20 20 20 64 72 65 74 20 3d 20 6c 69 73 74  .    dret = list
11d0: 2e 74 6d 70 2e 5f 64 6f 75 62 6c 65 3b 0a 20 20  .tmp._double;.  
11e0: 7d 20 65 6c 73 65 0a 20 20 69 66 20 28 6c 69 73  } else.  if (lis
11f0: 74 2e 72 74 79 70 65 20 3d 3d 20 5f 5f 56 41 76  t.rtype == __VAv
1200: 6f 69 64 70 29 20 7b 0a 20 20 20 20 69 72 65 74  oidp) {.    iret
1210: 20 3d 20 28 6c 6f 6e 67 29 6c 69 73 74 2e 74 6d   = (long)list.tm
1220: 70 2e 5f 70 74 72 3b 0a 20 20 7d 20 65 6c 73 65  p._ptr;.  } else
1230: 0a 20 20 69 66 20 28 6c 69 73 74 2e 72 74 79 70  .  if (list.rtyp
1240: 65 20 3d 3d 20 5f 5f 56 41 73 74 72 75 63 74 29  e == __VAstruct)
1250: 20 7b 0a 20 20 20 20 69 66 20 28 6c 69 73 74 2e   {.    if (list.
1260: 66 6c 61 67 73 20 26 20 5f 5f 56 41 5f 50 43 43  flags & __VA_PCC
1270: 5f 53 54 52 55 43 54 5f 52 45 54 55 52 4e 29 20  _STRUCT_RETURN) 
1280: 7b 0a 20 20 20 20 20 20 2f 2a 20 70 63 63 20 73  {.      /* pcc s
1290: 74 72 75 63 74 20 72 65 74 75 72 6e 20 63 6f 6e  truct return con
12a0: 76 65 6e 74 69 6f 6e 20 2a 2f 0a 20 20 20 20 20  vention */.     
12b0: 20 69 72 65 74 20 3d 20 28 5f 5f 76 61 77 6f 72   iret = (__vawor
12c0: 64 29 20 6c 69 73 74 2e 72 61 64 64 72 3b 0a 20  d) list.raddr;. 
12d0: 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20     } else {.    
12e0: 20 20 2f 2a 20 6e 6f 72 6d 61 6c 20 73 74 72 75    /* normal stru
12f0: 63 74 20 72 65 74 75 72 6e 20 63 6f 6e 76 65 6e  ct return conven
1300: 74 69 6f 6e 20 2a 2f 0a 20 20 20 20 20 20 69 66  tion */.      if
1310: 20 28 6c 69 73 74 2e 66 6c 61 67 73 20 26 20 5f   (list.flags & _
1320: 5f 56 41 5f 52 45 47 49 53 54 45 52 5f 53 54 52  _VA_REGISTER_STR
1330: 55 43 54 5f 52 45 54 55 52 4e 29 20 7b 0a 20 20  UCT_RETURN) {.  
1340: 20 20 20 20 20 20 69 66 20 28 6c 69 73 74 2e 66        if (list.f
1350: 6c 61 67 73 20 26 20 5f 5f 56 41 5f 47 43 43 5f  lags & __VA_GCC_
1360: 53 54 52 55 43 54 5f 52 45 54 55 52 4e 29 20 7b  STRUCT_RETURN) {
1370: 0a 20 20 20 20 20 20 20 20 20 20 2f 2a 20 67 63  .          /* gc
1380: 63 20 72 65 74 75 72 6e 73 20 73 74 72 75 63 74  c returns struct
1390: 73 20 6f 66 20 73 69 7a 65 20 31 2c 32 2c 34 2c  s of size 1,2,4,
13a0: 38 20 69 6e 20 72 65 67 69 73 74 65 72 73 2e 20  8 in registers. 
13b0: 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 69 66 20  */.          if 
13c0: 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 73  (list.rsize == s
13d0: 69 7a 65 6f 66 28 63 68 61 72 29 29 20 7b 0a 20  izeof(char)) {. 
13e0: 20 20 20 20 20 20 20 20 20 20 20 69 72 65 74 20             iret 
13f0: 3d 20 2a 28 75 6e 73 69 67 6e 65 64 20 63 68 61  = *(unsigned cha
1400: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 3b  r *) list.raddr;
1410: 0a 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73  .          } els
1420: 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 28  e.          if (
1430: 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 73 69  list.rsize == si
1440: 7a 65 6f 66 28 73 68 6f 72 74 29 29 20 7b 0a 20  zeof(short)) {. 
1450: 20 20 20 20 20 20 20 20 20 20 20 69 72 65 74 20             iret 
1460: 3d 20 2a 28 75 6e 73 69 67 6e 65 64 20 73 68 6f  = *(unsigned sho
1470: 72 74 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72  rt *) list.raddr
1480: 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c  ;.          } el
1490: 73 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20  se.          if 
14a0: 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 73  (list.rsize == s
14b0: 69 7a 65 6f 66 28 69 6e 74 29 29 20 7b 0a 20 20  izeof(int)) {.  
14c0: 20 20 20 20 20 20 20 20 20 20 69 72 65 74 20 3d            iret =
14d0: 20 2a 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20   *(unsigned int 
14e0: 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 3b 0a 20  *) list.raddr;. 
14f0: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a           } else.
1500: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 69            if (li
1510: 73 74 2e 72 73 69 7a 65 20 3d 3d 20 73 69 7a 65  st.rsize == size
1520: 6f 66 28 6c 6f 6e 67 20 6c 6f 6e 67 29 29 20 7b  of(long long)) {
1530: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 72 65  .            ire
1540: 74 20 3d 20 2a 28 75 6e 73 69 67 6e 65 64 20 6c  t = *(unsigned l
1550: 6f 6e 67 20 6c 6f 6e 67 20 2a 29 20 6c 69 73 74  ong long *) list
1560: 2e 72 61 64 64 72 3b 0a 20 20 20 20 20 20 20 20  .raddr;.        
1570: 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c    }.        } el
1580: 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 2f  se {.          /
1590: 2a 20 63 63 20 72 65 74 75 72 6e 73 20 73 74 72  * cc returns str
15a0: 75 63 74 73 20 6f 66 20 73 69 7a 65 20 3c 3d 20  ucts of size <= 
15b0: 31 36 20 69 6e 20 72 65 67 69 73 74 65 72 73 2e  16 in registers.
15c0: 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 2f 2a   */.          /*
15d0: 20 4d 61 79 62 65 20 74 68 69 73 20 62 69 67 20   Maybe this big 
15e0: 69 66 20 63 61 73 63 61 64 65 20 63 6f 75 6c 64  if cascade could
15f0: 20 62 65 20 72 65 70 6c 61 63 65 64 20 77 69 74   be replaced wit
1600: 68 0a 20 20 20 20 20 20 20 20 20 20 20 2a 20 69  h.           * i
1610: 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3e 20  f (list.rsize > 
1620: 30 20 26 26 20 6c 69 73 74 2e 72 73 69 7a 65 20  0 && list.rsize 
1630: 3c 3d 20 31 36 29 0a 20 20 20 20 20 20 20 20 20  <= 16).         
1640: 20 20 2a 20 20 20 5f 5f 61 73 6d 5f 5f 20 28 22    *   __asm__ ("
1650: 6c 64 6c 20 24 32 2c 25 30 20 3b 20 6c 64 72 20  ldl $2,%0 ; ldr 
1660: 24 32 2c 25 31 22 0a 20 20 20 20 20 20 20 20 20  $2,%1".         
1670: 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 3a    *            :
1680: 20 3a 20 22 6d 22 20 28 28 28 75 6e 73 69 67 6e   : "m" (((unsign
1690: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
16a0: 72 61 64 64 72 29 5b 30 5d 29 2c 0a 20 20 20 20  raddr)[0]),.    
16b0: 20 20 20 20 20 20 20 2a 20 20 20 20 20 20 20 20         *        
16c0: 20 20 20 20 20 20 20 20 22 6d 22 20 28 28 28 75          "m" (((u
16d0: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
16e0: 6c 69 73 74 2e 72 61 64 64 72 29 5b 37 5d 29 29  list.raddr)[7]))
16f0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 2a 2f 0a  ;.           */.
1700: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 69            if (li
1710: 73 74 2e 72 73 69 7a 65 20 3e 20 30 20 26 26 20  st.rsize > 0 && 
1720: 6c 69 73 74 2e 72 73 69 7a 65 20 3c 3d 20 31 36  list.rsize <= 16
1730: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
1740: 69 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d  if (list.rsize =
1750: 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20  = 1) {.         
1760: 20 20 20 20 20 69 72 65 74 20 3d 20 20 20 28 5f       iret =   (_
1770: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
1780: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
1790: 72 61 64 64 72 29 5b 30 5d 20 3c 3c 20 35 36 3b  raddr)[0] << 56;
17a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65  .            } e
17b0: 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  lse.            
17c0: 69 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d  if (list.rsize =
17d0: 3d 20 32 29 20 7b 0a 20 20 20 20 20 20 20 20 20  = 2) {.         
17e0: 20 20 20 20 20 69 72 65 74 20 3d 20 20 28 28 5f       iret =  ((_
17f0: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
1800: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
1810: 72 61 64 64 72 29 5b 30 5d 20 3c 3c 20 35 36 29  raddr)[0] << 56)
1820: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1830: 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72       | ((__vawor
1840: 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61  d)((unsigned cha
1850: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29  r *) list.raddr)
1860: 5b 31 5d 20 3c 3c 20 34 38 29 3b 0a 20 20 20 20  [1] << 48);.    
1870: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20          } else. 
1880: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
1890: 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 33 29 20  ist.rsize == 3) 
18a0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
18b0: 69 72 65 74 20 3d 20 20 28 28 5f 5f 76 61 77 6f  iret =  ((__vawo
18c0: 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68  rd)((unsigned ch
18d0: 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72  ar *) list.raddr
18e0: 29 5b 30 5d 20 3c 3c 20 35 36 29 0a 20 20 20 20  )[0] << 56).    
18f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1900: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
1910: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
1920: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 5d 20 3c  list.raddr)[1] <
1930: 3c 20 34 38 29 0a 20 20 20 20 20 20 20 20 20 20  < 48).          
1940: 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f            | ((__
1950: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
1960: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
1970: 61 64 64 72 29 5b 32 5d 20 3c 3c 20 34 30 29 3b  addr)[2] << 40);
1980: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65  .            } e
1990: 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  lse.            
19a0: 69 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d  if (list.rsize =
19b0: 3d 20 34 29 20 7b 0a 20 20 20 20 20 20 20 20 20  = 4) {.         
19c0: 20 20 20 20 20 69 72 65 74 20 3d 20 20 28 28 5f       iret =  ((_
19d0: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
19e0: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
19f0: 72 61 64 64 72 29 5b 30 5d 20 3c 3c 20 35 36 29  raddr)[0] << 56)
1a00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1a10: 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72       | ((__vawor
1a20: 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61  d)((unsigned cha
1a30: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29  r *) list.raddr)
1a40: 5b 31 5d 20 3c 3c 20 34 38 29 0a 20 20 20 20 20  [1] << 48).     
1a50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c                 |
1a60: 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e   ((__vaword)((un
1a70: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c  signed char *) l
1a80: 69 73 74 2e 72 61 64 64 72 29 5b 32 5d 20 3c 3c  ist.raddr)[2] <<
1a90: 20 34 30 29 0a 20 20 20 20 20 20 20 20 20 20 20   40).           
1aa0: 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76           | ((__v
1ab0: 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64  aword)((unsigned
1ac0: 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61   char *) list.ra
1ad0: 64 64 72 29 5b 33 5d 20 3c 3c 20 33 32 29 3b 0a  ddr)[3] << 32);.
1ae0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c              } el
1af0: 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  se.            i
1b00: 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d  f (list.rsize ==
1b10: 20 35 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20   5) {.          
1b20: 20 20 20 20 69 72 65 74 20 3d 20 20 28 28 5f 5f      iret =  ((__
1b30: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
1b40: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
1b50: 61 64 64 72 29 5b 30 5d 20 3c 3c 20 35 36 29 0a  addr)[0] << 56).
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b70: 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64      | ((__vaword
1b80: 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  )((unsigned char
1b90: 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b   *) list.raddr)[
1ba0: 31 5d 20 3c 3c 20 34 38 29 0a 20 20 20 20 20 20  1] << 48).      
1bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
1bc0: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
1bd0: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
1be0: 73 74 2e 72 61 64 64 72 29 5b 32 5d 20 3c 3c 20  st.raddr)[2] << 
1bf0: 34 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  40).            
1c00: 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61          | ((__va
1c10: 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20  word)((unsigned 
1c20: 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64  char *) list.rad
1c30: 64 72 29 5b 33 5d 20 3c 3c 20 33 32 29 0a 20 20  dr)[3] << 32).  
1c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c50: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
1c60: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
1c70: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 34 5d  ) list.raddr)[4]
1c80: 20 3c 3c 20 32 34 29 3b 0a 20 20 20 20 20 20 20   << 24);.       
1c90: 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20       } else.    
1ca0: 20 20 20 20 20 20 20 20 69 66 20 28 6c 69 73 74          if (list
1cb0: 2e 72 73 69 7a 65 20 3d 3d 20 36 29 20 7b 0a 20  .rsize == 6) {. 
1cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 72 65               ire
1cd0: 74 20 3d 20 20 28 28 5f 5f 76 61 77 6f 72 64 29  t =  ((__vaword)
1ce0: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
1cf0: 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 30  *) list.raddr)[0
1d00: 5d 20 3c 3c 20 35 36 29 0a 20 20 20 20 20 20 20  ] << 56).       
1d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 28               | (
1d20: 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69  (__vaword)((unsi
1d30: 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73  gned char *) lis
1d40: 74 2e 72 61 64 64 72 29 5b 31 5d 20 3c 3c 20 34  t.raddr)[1] << 4
1d50: 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  8).             
1d60: 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77         | ((__vaw
1d70: 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63  ord)((unsigned c
1d80: 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64  har *) list.radd
1d90: 72 29 5b 32 5d 20 3c 3c 20 34 30 29 0a 20 20 20  r)[2] << 40).   
1da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db0: 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28   | ((__vaword)((
1dc0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
1dd0: 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 33 5d 20   list.raddr)[3] 
1de0: 3c 3c 20 33 32 29 0a 20 20 20 20 20 20 20 20 20  << 32).         
1df0: 20 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f             | ((_
1e00: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
1e10: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
1e20: 72 61 64 64 72 29 5b 34 5d 20 3c 3c 20 32 34 29  raddr)[4] << 24)
1e30: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1e40: 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72       | ((__vawor
1e50: 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61  d)((unsigned cha
1e60: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29  r *) list.raddr)
1e70: 5b 35 5d 20 3c 3c 20 31 36 29 3b 0a 20 20 20 20  [5] << 16);.    
1e80: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20          } else. 
1e90: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
1ea0: 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 37 29 20  ist.rsize == 7) 
1eb0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
1ec0: 69 72 65 74 20 3d 20 20 28 28 5f 5f 76 61 77 6f  iret =  ((__vawo
1ed0: 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68  rd)((unsigned ch
1ee0: 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72  ar *) list.raddr
1ef0: 29 5b 30 5d 20 3c 3c 20 35 36 29 0a 20 20 20 20  )[0] << 56).    
1f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f10: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
1f20: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
1f30: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 5d 20 3c  list.raddr)[1] <
1f40: 3c 20 34 38 29 0a 20 20 20 20 20 20 20 20 20 20  < 48).          
1f50: 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f            | ((__
1f60: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
1f70: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
1f80: 61 64 64 72 29 5b 32 5d 20 3c 3c 20 34 30 29 0a  addr)[2] << 40).
1f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fa0: 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64      | ((__vaword
1fb0: 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  )((unsigned char
1fc0: 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b   *) list.raddr)[
1fd0: 33 5d 20 3c 3c 20 33 32 29 0a 20 20 20 20 20 20  3] << 32).      
1fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
1ff0: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
2000: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
2010: 73 74 2e 72 61 64 64 72 29 5b 34 5d 20 3c 3c 20  st.raddr)[4] << 
2020: 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  24).            
2030: 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61          | ((__va
2040: 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20  word)((unsigned 
2050: 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64  char *) list.rad
2060: 64 72 29 5b 35 5d 20 3c 3c 20 31 36 29 0a 20 20  dr)[5] << 16).  
2070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2080: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
2090: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
20a0: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 36 5d  ) list.raddr)[6]
20b0: 20 3c 3c 20 38 29 3b 0a 20 20 20 20 20 20 20 20   << 8);.        
20c0: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
20d0: 20 20 20 20 20 20 20 69 66 20 28 6c 69 73 74 2e         if (list.
20e0: 72 73 69 7a 65 20 3e 3d 20 38 20 26 26 20 6c 69  rsize >= 8 && li
20f0: 73 74 2e 72 73 69 7a 65 20 3c 3d 20 31 36 29 20  st.rsize <= 16) 
2100: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
2110: 69 72 65 74 20 3d 20 20 28 28 5f 5f 76 61 77 6f  iret =  ((__vawo
2120: 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68  rd)((unsigned ch
2130: 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72  ar *) list.raddr
2140: 29 5b 30 5d 20 3c 3c 20 35 36 29 0a 20 20 20 20  )[0] << 56).    
2150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2160: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
2170: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
2180: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 5d 20 3c  list.raddr)[1] <
2190: 3c 20 34 38 29 0a 20 20 20 20 20 20 20 20 20 20  < 48).          
21a0: 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f            | ((__
21b0: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
21c0: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
21d0: 61 64 64 72 29 5b 32 5d 20 3c 3c 20 34 30 29 0a  addr)[2] << 40).
21e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
21f0: 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64      | ((__vaword
2200: 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  )((unsigned char
2210: 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b   *) list.raddr)[
2220: 33 5d 20 3c 3c 20 33 32 29 0a 20 20 20 20 20 20  3] << 32).      
2230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
2240: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
2250: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
2260: 73 74 2e 72 61 64 64 72 29 5b 34 5d 20 3c 3c 20  st.raddr)[4] << 
2270: 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  24).            
2280: 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61          | ((__va
2290: 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20  word)((unsigned 
22a0: 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64  char *) list.rad
22b0: 64 72 29 5b 35 5d 20 3c 3c 20 31 36 29 0a 20 20  dr)[5] << 16).  
22c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
22d0: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
22e0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
22f0: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 36 5d  ) list.raddr)[6]
2300: 20 3c 3c 20 38 29 0a 20 20 20 20 20 20 20 20 20   << 8).         
2310: 20 20 20 20 20 20 20 20 20 20 20 7c 20 20 28 5f             |  (_
2320: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
2330: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
2340: 72 61 64 64 72 29 5b 37 5d 3b 0a 20 20 20 20 20  raddr)[7];.     
2350: 20 20 20 20 20 20 20 20 20 2f 2a 20 4d 61 79 62           /* Mayb
2360: 65 20 74 68 69 73 20 62 69 67 20 69 66 20 63 61  e this big if ca
2370: 73 63 61 64 65 20 63 6f 75 6c 64 20 62 65 20 72  scade could be r
2380: 65 70 6c 61 63 65 64 20 77 69 74 68 0a 20 20 20  eplaced with.   
2390: 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 69 66              * if
23a0: 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3e 20 38   (list.rsize > 8
23b0: 20 26 26 20 6c 69 73 74 2e 72 73 69 7a 65 20 3c   && list.rsize <
23c0: 3d 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20  = 16).          
23d0: 20 20 20 20 20 2a 20 20 20 5f 5f 61 73 6d 5f 5f       *   __asm__
23e0: 20 28 22 6c 64 6c 20 24 33 2c 25 30 20 3b 20 6c   ("ldl $3,%0 ; l
23f0: 64 72 20 24 33 2c 25 31 22 0a 20 20 20 20 20 20  dr $3,%1".      
2400: 20 20 20 20 20 20 20 20 20 2a 20 20 20 20 20 20           *      
2410: 20 20 20 20 20 20 3a 20 3a 20 22 6d 22 20 28 28        : : "m" ((
2420: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
2430: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 38 5d  ) list.raddr)[8]
2440: 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ),.             
2450: 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20    *             
2460: 20 20 20 22 6d 22 20 28 28 28 75 6e 73 69 67 6e     "m" (((unsign
2470: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
2480: 72 61 64 64 72 29 5b 31 35 5d 29 29 3b 0a 20 20  raddr)[15]));.  
2490: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 2f 0a               */.
24a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
24b0: 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20   (list.rsize == 
24c0: 38 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  8) {.           
24d0: 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20     } else.      
24e0: 20 20 20 20 20 20 20 20 69 66 20 28 6c 69 73 74          if (list
24f0: 2e 72 73 69 7a 65 20 3d 3d 20 39 29 20 7b 0a 20  .rsize == 9) {. 
2500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
2510: 72 65 74 32 20 3d 20 20 20 28 5f 5f 76 61 77 6f  ret2 =   (__vawo
2520: 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68  rd)((unsigned ch
2530: 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72  ar *) list.raddr
2540: 29 5b 38 5d 20 3c 3c 20 35 36 3b 0a 20 20 20 20  )[8] << 56;.    
2550: 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65            } else
2560: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69  .              i
2570: 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d  f (list.rsize ==
2580: 20 31 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20   10) {.         
2590: 20 20 20 20 20 20 20 69 72 65 74 32 20 3d 20 20         iret2 =  
25a0: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
25b0: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
25c0: 73 74 2e 72 61 64 64 72 29 5b 38 5d 20 3c 3c 20  st.raddr)[8] << 
25d0: 35 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  56).            
25e0: 20 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f             | ((_
25f0: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
2600: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
2610: 72 61 64 64 72 29 5b 39 5d 20 3c 3c 20 34 38 29  raddr)[9] << 48)
2620: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
2630: 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20  } else.         
2640: 20 20 20 20 20 69 66 20 28 6c 69 73 74 2e 72 73       if (list.rs
2650: 69 7a 65 20 3d 3d 20 31 31 29 20 7b 0a 20 20 20  ize == 11) {.   
2660: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 72 65               ire
2670: 74 32 20 3d 20 20 28 28 5f 5f 76 61 77 6f 72 64  t2 =  ((__vaword
2680: 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  )((unsigned char
2690: 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b   *) list.raddr)[
26a0: 38 5d 20 3c 3c 20 35 36 29 0a 20 20 20 20 20 20  8] << 56).      
26b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
26c0: 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28   | ((__vaword)((
26d0: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29  unsigned char *)
26e0: 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 39 5d 20   list.raddr)[9] 
26f0: 3c 3c 20 34 38 29 0a 20 20 20 20 20 20 20 20 20  << 48).         
2700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
2710: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
2720: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
2730: 73 74 2e 72 61 64 64 72 29 5b 31 30 5d 20 3c 3c  st.raddr)[10] <<
2740: 20 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20   40);.          
2750: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
2760: 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 69 73           if (lis
2770: 74 2e 72 73 69 7a 65 20 3d 3d 20 31 32 29 20 7b  t.rsize == 12) {
2780: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2790: 20 69 72 65 74 32 20 3d 20 20 28 28 5f 5f 76 61   iret2 =  ((__va
27a0: 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20  word)((unsigned 
27b0: 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64  char *) list.rad
27c0: 64 72 29 5b 38 5d 20 3c 3c 20 35 36 29 0a 20 20  dr)[8] << 56).  
27d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
27e0: 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72       | ((__vawor
27f0: 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61  d)((unsigned cha
2800: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29  r *) list.raddr)
2810: 5b 39 5d 20 3c 3c 20 34 38 29 0a 20 20 20 20 20  [9] << 48).     
2820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2830: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
2840: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
2850: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 30  ) list.raddr)[10
2860: 5d 20 3c 3c 20 34 30 29 0a 20 20 20 20 20 20 20  ] << 40).       
2870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2880: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
2890: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
28a0: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 31 5d 20  list.raddr)[11] 
28b0: 3c 3c 20 33 32 29 3b 0a 20 20 20 20 20 20 20 20  << 32);.        
28c0: 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20        } else.   
28d0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
28e0: 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 31 33 29  ist.rsize == 13)
28f0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
2900: 20 20 20 69 72 65 74 32 20 3d 20 20 28 28 5f 5f     iret2 =  ((__
2910: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
2920: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
2930: 61 64 64 72 29 5b 38 5d 20 3c 3c 20 35 36 29 0a  addr)[8] << 56).
2940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2950: 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77         | ((__vaw
2960: 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63  ord)((unsigned c
2970: 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64  har *) list.radd
2980: 72 29 5b 39 5d 20 3c 3c 20 34 38 29 0a 20 20 20  r)[9] << 48).   
2990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29a0: 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64      | ((__vaword
29b0: 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  )((unsigned char
29c0: 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b   *) list.raddr)[
29d0: 31 30 5d 20 3c 3c 20 34 30 29 0a 20 20 20 20 20  10] << 40).     
29e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29f0: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
2a00: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
2a10: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 31  ) list.raddr)[11
2a20: 5d 20 3c 3c 20 33 32 29 0a 20 20 20 20 20 20 20  ] << 32).       
2a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a40: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
2a50: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
2a60: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 32 5d 20  list.raddr)[12] 
2a70: 3c 3c 20 32 34 29 3b 0a 20 20 20 20 20 20 20 20  << 24);.        
2a80: 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20        } else.   
2a90: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c             if (l
2aa0: 69 73 74 2e 72 73 69 7a 65 20 3d 3d 20 31 34 29  ist.rsize == 14)
2ab0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
2ac0: 20 20 20 69 72 65 74 32 20 3d 20 20 28 28 5f 5f     iret2 =  ((__
2ad0: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
2ae0: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
2af0: 61 64 64 72 29 5b 38 5d 20 3c 3c 20 35 36 29 0a  addr)[8] << 56).
2b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b10: 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77         | ((__vaw
2b20: 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63  ord)((unsigned c
2b30: 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64  har *) list.radd
2b40: 72 29 5b 39 5d 20 3c 3c 20 34 38 29 0a 20 20 20  r)[9] << 48).   
2b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b60: 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64      | ((__vaword
2b70: 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  )((unsigned char
2b80: 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b   *) list.raddr)[
2b90: 31 30 5d 20 3c 3c 20 34 30 29 0a 20 20 20 20 20  10] << 40).     
2ba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2bb0: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
2bc0: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
2bd0: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 31  ) list.raddr)[11
2be0: 5d 20 3c 3c 20 33 32 29 0a 20 20 20 20 20 20 20  ] << 32).       
2bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c00: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
2c10: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
2c20: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 32 5d 20  list.raddr)[12] 
2c30: 3c 3c 20 32 34 29 0a 20 20 20 20 20 20 20 20 20  << 24).         
2c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
2c50: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
2c60: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
2c70: 73 74 2e 72 61 64 64 72 29 5b 31 33 5d 20 3c 3c  st.raddr)[13] <<
2c80: 20 31 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20   16);.          
2c90: 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20      } else.     
2ca0: 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 69 73           if (lis
2cb0: 74 2e 72 73 69 7a 65 20 3d 3d 20 31 35 29 20 7b  t.rsize == 15) {
2cc0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2cd0: 20 69 72 65 74 32 20 3d 20 20 28 28 5f 5f 76 61   iret2 =  ((__va
2ce0: 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20  word)((unsigned 
2cf0: 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64  char *) list.rad
2d00: 64 72 29 5b 38 5d 20 3c 3c 20 35 36 29 0a 20 20  dr)[8] << 56).  
2d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d20: 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72       | ((__vawor
2d30: 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61  d)((unsigned cha
2d40: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29  r *) list.raddr)
2d50: 5b 39 5d 20 3c 3c 20 34 38 29 0a 20 20 20 20 20  [9] << 48).     
2d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d70: 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28    | ((__vaword)(
2d80: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
2d90: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 30  ) list.raddr)[10
2da0: 5d 20 3c 3c 20 34 30 29 0a 20 20 20 20 20 20 20  ] << 40).       
2db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2dc0: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
2dd0: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
2de0: 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 31 5d 20  list.raddr)[11] 
2df0: 3c 3c 20 33 32 29 0a 20 20 20 20 20 20 20 20 20  << 32).         
2e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
2e10: 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73  ((__vaword)((uns
2e20: 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69  igned char *) li
2e30: 73 74 2e 72 61 64 64 72 29 5b 31 32 5d 20 3c 3c  st.raddr)[12] <<
2e40: 20 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 20   24).           
2e50: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 28 28              | ((
2e60: 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67  __vaword)((unsig
2e70: 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74  ned char *) list
2e80: 2e 72 61 64 64 72 29 5b 31 33 5d 20 3c 3c 20 31  .raddr)[13] << 1
2e90: 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  6).             
2ea0: 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f            | ((__
2eb0: 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65  vaword)((unsigne
2ec0: 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72  d char *) list.r
2ed0: 61 64 64 72 29 5b 31 34 5d 20 3c 3c 20 38 29 3b  addr)[14] << 8);
2ee0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d  .              }
2ef0: 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20   else.          
2f00: 20 20 20 20 69 66 20 28 6c 69 73 74 2e 72 73 69      if (list.rsi
2f10: 7a 65 20 3d 3d 20 31 36 29 20 7b 0a 20 20 20 20  ze == 16) {.    
2f20: 20 20 20 20 20 20 20 20 20 20 20 20 69 72 65 74              iret
2f30: 32 20 3d 20 20 28 28 5f 5f 76 61 77 6f 72 64 29  2 =  ((__vaword)
2f40: 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  ((unsigned char 
2f50: 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 38  *) list.raddr)[8
2f60: 5d 20 3c 3c 20 35 36 29 0a 20 20 20 20 20 20 20  ] << 56).       
2f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f80: 7c 20 28 28 5f 5f 76 61 77 6f 72 64 29 28 28 75  | ((__vaword)((u
2f90: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 29 20  nsigned char *) 
2fa0: 6c 69 73 74 2e 72 61 64 64 72 29 5b 39 5d 20 3c  list.raddr)[9] <
2fb0: 3c 20 34 38 29 0a 20 20 20 20 20 20 20 20 20 20  < 48).          
2fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 28               | (
2fd0: 28 5f 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69  (__vaword)((unsi
2fe0: 67 6e 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73  gned char *) lis
2ff0: 74 2e 72 61 64 64 72 29 5b 31 30 5d 20 3c 3c 20  t.raddr)[10] << 
3000: 34 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  40).            
3010: 20 20 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f             | ((_
3020: 5f 76 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e  _vaword)((unsign
3030: 65 64 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e  ed char *) list.
3040: 72 61 64 64 72 29 5b 31 31 5d 20 3c 3c 20 33 32  raddr)[11] << 32
3050: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ).              
3060: 20 20 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76           | ((__v
3070: 61 77 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64  aword)((unsigned
3080: 20 63 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61   char *) list.ra
3090: 64 64 72 29 5b 31 32 5d 20 3c 3c 20 32 34 29 0a  ddr)[12] << 24).
30a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30b0: 20 20 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77         | ((__vaw
30c0: 6f 72 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63  ord)((unsigned c
30d0: 68 61 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64  har *) list.radd
30e0: 72 29 5b 31 33 5d 20 3c 3c 20 31 36 29 0a 20 20  r)[13] << 16).  
30f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3100: 20 20 20 20 20 7c 20 28 28 5f 5f 76 61 77 6f 72       | ((__vawor
3110: 64 29 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61  d)((unsigned cha
3120: 72 20 2a 29 20 6c 69 73 74 2e 72 61 64 64 72 29  r *) list.raddr)
3130: 5b 31 34 5d 20 3c 3c 20 38 29 0a 20 20 20 20 20  [14] << 8).     
3140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3150: 20 20 7c 20 20 28 5f 5f 76 61 77 6f 72 64 29 28    |  (__vaword)(
3160: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a  (unsigned char *
3170: 29 20 6c 69 73 74 2e 72 61 64 64 72 29 5b 31 35  ) list.raddr)[15
3180: 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ];.             
3190: 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d   }.            }
31a0: 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20  .          }.   
31b0: 20 20 20 20 20 20 20 69 66 20 28 6c 69 73 74 2e         if (list.
31c0: 66 6c 61 67 73 20 26 20 5f 5f 56 41 5f 52 45 47  flags & __VA_REG
31d0: 49 53 54 45 52 5f 46 4c 4f 41 54 53 54 52 55 43  ISTER_FLOATSTRUC
31e0: 54 5f 52 45 54 55 52 4e 29 20 7b 0a 20 20 20 20  T_RETURN) {.    
31f0: 20 20 20 20 20 20 20 20 69 66 20 28 6c 69 73 74          if (list
3200: 2e 72 73 69 7a 65 20 3d 3d 20 73 69 7a 65 6f 66  .rsize == sizeof
3210: 28 66 6c 6f 61 74 29 29 20 7b 0a 20 20 20 20 20  (float)) {.     
3220: 20 20 20 20 20 20 20 20 20 66 72 65 74 20 3d 20           fret = 
3230: 2a 28 66 6c 6f 61 74 2a 29 6c 69 73 74 2e 72 61  *(float*)list.ra
3240: 64 64 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20  ddr;.           
3250: 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20   } else.        
3260: 20 20 20 20 69 66 20 28 6c 69 73 74 2e 72 73 69      if (list.rsi
3270: 7a 65 20 3d 3d 20 32 2a 73 69 7a 65 6f 66 28 66  ze == 2*sizeof(f
3280: 6c 6f 61 74 29 29 20 7b 0a 20 20 20 20 20 20 20  loat)) {.       
3290: 20 20 20 20 20 20 20 66 72 65 74 20 3d 20 2a 28         fret = *(
32a0: 66 6c 6f 61 74 2a 29 6c 69 73 74 2e 72 61 64 64  float*)list.radd
32b0: 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  r;.             
32c0: 20 66 72 65 74 32 20 3d 20 2a 28 66 6c 6f 61 74   fret2 = *(float
32d0: 2a 29 28 28 63 68 61 72 2a 29 6c 69 73 74 2e 72  *)((char*)list.r
32e0: 61 64 64 72 20 2b 20 34 29 3b 0a 20 20 20 20 20  addr + 4);.     
32f0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
3300: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 69     }.          i
3310: 66 20 28 6c 69 73 74 2e 66 6c 61 67 73 20 26 20  f (list.flags & 
3320: 5f 5f 56 41 5f 52 45 47 49 53 54 45 52 5f 44 4f  __VA_REGISTER_DO
3330: 55 42 4c 45 53 54 52 55 43 54 5f 52 45 54 55 52  UBLESTRUCT_RETUR
3340: 4e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  N) {.           
3350: 20 69 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20   if (list.rsize 
3360: 3d 3d 20 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65  == sizeof(double
3370: 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  )) {.           
3380: 20 20 20 64 72 65 74 20 3d 20 2a 28 64 6f 75 62     dret = *(doub
3390: 6c 65 2a 29 6c 69 73 74 2e 72 61 64 64 72 3b 0a  le*)list.raddr;.
33a0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c              } el
33b0: 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  se.            i
33c0: 66 20 28 6c 69 73 74 2e 72 73 69 7a 65 20 3d 3d  f (list.rsize ==
33d0: 20 32 2a 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65   2*sizeof(double
33e0: 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  )) {.           
33f0: 20 20 20 64 72 65 74 20 3d 20 2a 28 64 6f 75 62     dret = *(doub
3400: 6c 65 2a 29 6c 69 73 74 2e 72 61 64 64 72 3b 0a  le*)list.raddr;.
3410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 72                dr
3420: 65 74 32 20 3d 20 2a 28 64 6f 75 62 6c 65 2a 29  et2 = *(double*)
3430: 28 28 63 68 61 72 2a 29 6c 69 73 74 2e 72 61 64  ((char*)list.rad
3440: 64 72 20 2b 20 38 29 3b 0a 20 20 20 20 20 20 20  dr + 8);.       
3450: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20       }.         
3460: 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20   }.        }.   
3470: 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d     }.    }.  }.}
3480: 7d 0a                                            }.