Artifact 92c49a7d52056c2f2bc7f16ae2e0f078f484eb8c:


0000: 3b 20 54 72 61 6d 70 6f 6c 69 6e 65 20 66 6f 72  ; Trampoline for
0010: 20 68 70 70 61 20 43 50 55 0a 0a 3b 0a 3b 20 43   hppa CPU..;.; C
0020: 6f 70 79 72 69 67 68 74 20 31 39 39 37 20 42 72  opyright 1997 Br
0030: 75 6e 6f 20 48 61 69 62 6c 65 2c 20 3c 62 72 75  uno Haible, <bru
0040: 6e 6f 40 63 6c 69 73 70 2e 6f 72 67 3e 0a 3b 0a  no@clisp.org>.;.
0050: 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73  ; This is free s
0060: 6f 66 74 77 61 72 65 20 64 69 73 74 72 69 62 75  oftware distribu
0070: 74 65 64 20 75 6e 64 65 72 20 74 68 65 20 47 4e  ted under the GN
0080: 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  U General Public
0090: 20 4c 69 63 65 6e 63 65 0a 3b 20 64 65 73 63 72   Licence.; descr
00a0: 69 62 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65  ibed in the file
00b0: 20 43 4f 50 59 49 4e 47 2e 20 43 6f 6e 74 61 63   COPYING. Contac
00c0: 74 20 74 68 65 20 61 75 74 68 6f 72 20 69 66 20  t the author if 
00d0: 79 6f 75 20 64 6f 6e 27 74 20 68 61 76 65 20 74  you don't have t
00e0: 68 69 73 0a 3b 20 6f 72 20 63 61 6e 27 74 20 6c  his.; or can't l
00f0: 69 76 65 20 77 69 74 68 20 69 74 2e 20 54 68 65  ive with it. The
0100: 72 65 20 69 73 20 41 42 53 4f 4c 55 54 45 4c 59  re is ABSOLUTELY
0110: 20 4e 4f 20 57 41 52 52 41 4e 54 59 2c 20 65 78   NO WARRANTY, ex
0120: 70 6c 69 63 69 74 20 6f 72 20 69 6d 70 6c 69 65  plicit or implie
0130: 64 2c 0a 3b 20 6f 6e 20 74 68 69 73 20 73 6f 66  d,.; on this sof
0140: 74 77 61 72 65 2e 0a 3b 0a 0a 09 2e 63 6f 64 65  tware..;....code
0150: 0a 09 2e 49 4d 50 4f 52 54 20 24 67 6c 6f 62 61  ...IMPORT $globa
0160: 6c 24 2c 44 41 54 41 0a 09 2e 49 4d 50 4f 52 54  l$,DATA...IMPORT
0170: 20 24 24 64 79 6e 63 61 6c 6c 2c 4d 49 4c 4c 49   $$dyncall,MILLI
0180: 43 4f 44 45 0a 09 2e 63 6f 64 65 0a 0a 09 2e 61  CODE...code....a
0190: 6c 69 67 6e 20 34 0a 09 2e 45 58 50 4f 52 54 20  lign 4...EXPORT 
01a0: 74 72 61 6d 70 2c 45 4e 54 52 59 2c 50 52 49 56  tramp,ENTRY,PRIV
01b0: 5f 4c 45 56 3d 33 2c 41 52 47 57 30 3d 47 52 2c  _LEV=3,ARGW0=GR,
01c0: 41 52 47 57 31 3d 47 52 0a 09 2e 6c 61 62 65 6c  ARGW1=GR...label
01d0: 20 74 72 61 6d 70 0a 09 2e 50 52 4f 43 0a 09 2e   tramp...PROC...
01e0: 43 41 4c 4c 49 4e 46 4f 20 46 52 41 4d 45 3d 30  CALLINFO FRAME=0
01f0: 2c 4e 4f 5f 43 41 4c 4c 53 0a 09 2e 45 4e 54 52  ,NO_CALLS...ENTR
0200: 59 0a 3b 20 54 68 65 20 63 6c 6f 73 75 72 65 20  Y.; The closure 
0210: 70 6f 69 6e 74 65 72 20 69 73 20 61 6c 72 65 61  pointer is alrea
0220: 64 79 20 69 6e 20 72 65 67 69 73 74 65 72 20 25  dy in register %
0230: 72 31 39 2e 0a 3b 20 4d 6f 76 65 20 3c 76 61 72  r19..; Move <var
0240: 69 61 62 6c 65 3e 20 69 6e 74 6f 20 72 65 67 69  iable> into regi
0250: 73 74 65 72 20 25 72 32 30 2e 0a 09 6c 64 77 20  ster %r20...ldw 
0260: 30 28 30 2c 25 72 31 39 29 2c 25 72 32 30 0a 3b  0(0,%r19),%r20.;
0270: 20 4d 6f 76 65 20 3c 64 61 74 61 3e 20 69 6e 74   Move <data> int
0280: 6f 20 72 65 67 69 73 74 65 72 20 25 72 32 32 0a  o register %r22.
0290: 09 6c 64 77 20 34 28 30 2c 25 72 31 39 29 2c 25  .ldw 4(0,%r19),%
02a0: 72 32 32 0a 3b 20 4d 6f 76 65 20 3c 61 64 64 72  r22.; Move <addr
02b0: 65 73 73 3e 20 69 6e 74 6f 20 72 65 67 69 73 74  ess> into regist
02c0: 65 72 20 25 72 32 31 2e 0a 09 6c 64 77 20 38 28  er %r21...ldw 8(
02d0: 30 2c 25 72 31 39 29 2c 25 72 32 31 0a 3b 20 53  0,%r19),%r21.; S
02e0: 74 6f 72 65 20 3c 64 61 74 61 3e 20 69 6e 74 6f  tore <data> into
02f0: 20 3c 76 61 72 69 61 62 6c 65 3e 2e 0a 09 73 74   <variable>...st
0300: 77 20 25 72 32 32 2c 30 28 30 2c 25 72 32 30 29  w %r22,0(0,%r20)
0310: 0a 3b 20 4a 75 6d 70 20 74 6f 20 25 72 32 31 2e  .; Jump to %r21.
0320: 0a 09 62 62 2c 3e 3d 2c 6e 20 25 72 32 31 2c 33  ..bb,>=,n %r21,3
0330: 30 2c 74 72 61 6d 70 5f 32 0a 09 64 65 70 69 20  0,tramp_2..depi 
0340: 30 2c 33 31 2c 32 2c 25 72 32 31 0a 09 6c 64 77  0,31,2,%r21..ldw
0350: 20 34 28 30 2c 25 72 32 31 29 2c 25 72 31 39 0a   4(0,%r21),%r19.
0360: 09 6c 64 77 20 30 28 30 2c 25 72 32 31 29 2c 25  .ldw 0(0,%r21),%
0370: 72 32 31 0a 09 2e 6c 61 62 65 6c 20 74 72 61 6d  r21...label tram
0380: 70 5f 32 0a 09 6c 64 73 69 64 20 28 30 2c 25 72  p_2..ldsid (0,%r
0390: 32 31 29 2c 25 72 31 0a 09 6d 74 73 70 20 25 72  21),%r1..mtsp %r
03a0: 31 2c 25 73 72 30 0a 09 62 65 2c 6e 20 30 28 25  1,%sr0..be,n 0(%
03b0: 73 72 30 2c 25 72 32 31 29 0a 09 6e 6f 70 0a 09  sr0,%r21)..nop..
03c0: 2e 45 58 49 54 0a 09 2e 50 52 4f 43 45 4e 44 0a  .EXIT...PROCEND.