Artifact d19ada09b85131c70c59a5479b4f8b7f36ec4b37:


0000: 23 69 6e 63 6c 75 64 65 20 22 61 73 6d 6d 69 70  #include "asmmip
0010: 73 2e 68 22 0a 09 2e 66 69 6c 65 09 31 20 22 76  s.h"...file.1 "v
0020: 61 63 61 6c 6c 2d 6d 69 70 73 2e 63 22 0a 09 2e  acall-mips.c"...
0030: 73 65 74 09 6e 6f 62 6f 70 74 0a 09 2e 74 65 78  set.nobopt...tex
0040: 74 0a 09 2e 61 6c 69 67 6e 09 32 0a 09 2e 67 6c  t...align.2...gl
0050: 6f 62 6c 09 5f 5f 76 61 63 61 6c 6c 5f 72 0a 09  obl.__vacall_r..
0060: 44 45 43 4c 41 52 45 5f 46 55 4e 43 54 49 4f 4e  DECLARE_FUNCTION
0070: 28 5f 5f 76 61 63 61 6c 6c 5f 72 29 0a 0a 09 2e  (__vacall_r)....
0080: 74 65 78 74 0a 09 2e 74 65 78 74 0a 09 2e 65 6e  text...text...en
0090: 74 09 5f 5f 76 61 63 61 6c 6c 5f 72 0a 5f 5f 76  t.__vacall_r.__v
00a0: 61 63 61 6c 6c 5f 72 3a 0a 09 2e 66 72 61 6d 65  acall_r:...frame
00b0: 09 24 66 70 2c 38 38 2c 24 33 31 09 09 0a 09 2e  .$fp,88,$31.....
00c0: 6d 61 73 6b 09 30 78 63 30 30 30 30 30 30 30 2c  mask.0xc0000000,
00d0: 2d 34 0a 09 2e 66 6d 61 73 6b 09 30 78 30 30 30  -4...fmask.0x000
00e0: 30 30 30 30 30 2c 30 0a 09 73 75 62 75 09 24 73  00000,0..subu.$s
00f0: 70 2c 24 73 70 2c 38 38 0a 09 73 77 09 24 66 70  p,$sp,88..sw.$fp
0100: 2c 38 30 28 24 73 70 29 0a 09 6d 6f 76 65 09 24  ,80($sp)..move.$
0110: 66 70 2c 24 73 70 0a 09 61 64 64 75 09 24 38 2c  fp,$sp..addu.$8,
0120: 24 66 70 2c 31 30 34 0a 09 73 77 09 24 33 31 2c  $fp,104..sw.$31,
0130: 38 34 28 24 73 70 29 0a 09 73 77 09 24 34 2c 2d  84($sp)..sw.$4,-
0140: 31 36 28 24 38 29 0a 09 61 64 64 75 09 24 34 2c  16($8)..addu.$4,
0150: 24 66 70 2c 38 38 0a 09 73 77 09 24 35 2c 2d 31  $fp,88..sw.$5,-1
0160: 32 28 24 38 29 0a 09 73 77 09 24 36 2c 2d 38 28  2($8)..sw.$6,-8(
0170: 24 38 29 0a 09 73 77 09 24 37 2c 2d 34 28 24 38  $8)..sw.$7,-4($8
0180: 29 0a 09 73 2e 64 09 24 66 31 32 2c 36 34 28 24  )..s.d.$f12,64($
0190: 66 70 29 0a 09 73 2e 64 09 24 66 31 34 2c 37 32  fp)..s.d.$f14,72
01a0: 28 24 66 70 29 0a 09 73 2e 73 09 24 66 31 32 2c  ($fp)..s.s.$f12,
01b0: 35 36 28 24 66 70 29 0a 09 73 2e 73 09 24 66 31  56($fp)..s.s.$f1
01c0: 34 2c 36 30 28 24 66 70 29 0a 09 73 77 09 24 30  4,60($fp)..sw.$0
01d0: 2c 31 36 28 24 66 70 29 0a 09 73 77 09 24 34 2c  ,16($fp)..sw.$4,
01e0: 32 30 28 24 66 70 29 0a 09 73 77 09 24 30 2c 32  20($fp)..sw.$0,2
01f0: 34 28 24 66 70 29 0a 09 73 77 09 24 30 2c 32 38  4($fp)..sw.$0,28
0200: 28 24 66 70 29 0a 09 73 77 09 24 38 2c 34 38 28  ($fp)..sw.$8,48(
0210: 24 66 70 29 0a 09 73 77 09 24 30 2c 35 32 28 24  $fp)..sw.$0,52($
0220: 66 70 29 0a 09 6c 77 09 24 32 35 2c 30 28 24 32  fp)..lw.$25,0($2
0230: 29 0a 09 6c 77 09 24 34 2c 34 28 24 32 29 0a 09  )..lw.$4,4($2)..
0240: 2e 73 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09  .set.noreorder..
0250: 2e 73 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 6a 61  .set.nomacro..ja
0260: 6c 09 24 33 31 2c 24 32 35 0a 09 61 64 64 75 09  l.$31,$25..addu.
0270: 24 35 2c 24 66 70 2c 31 36 0a 09 2e 73 65 74 09  $5,$fp,16...set.
0280: 6d 61 63 72 6f 0a 09 2e 73 65 74 09 72 65 6f 72  macro...set.reor
0290: 64 65 72 0a 0a 09 6c 77 09 24 35 2c 32 38 28 24  der...lw.$5,28($
02a0: 66 70 29 0a 09 0a 09 2e 73 65 74 09 6e 6f 72 65  fp).....set.nore
02b0: 6f 72 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d 61  order...set.noma
02c0: 63 72 6f 0a 09 62 65 71 09 24 35 2c 24 30 2c 24  cro..beq.$5,$0,$
02d0: 4c 34 0a 09 6c 69 09 24 34 2c 31 09 09 09 0a 09  L4..li.$4,1.....
02e0: 2e 73 65 74 09 6d 61 63 72 6f 0a 09 2e 73 65 74  .set.macro...set
02f0: 09 72 65 6f 72 64 65 72 0a 0a 09 2e 73 65 74 09  .reorder....set.
0300: 6e 6f 72 65 6f 72 64 65 72 0a 09 2e 73 65 74 09  noreorder...set.
0310: 6e 6f 6d 61 63 72 6f 0a 09 62 65 71 09 24 35 2c  nomacro..beq.$5,
0320: 24 34 2c 24 4c 34 30 0a 09 6c 69 09 24 34 2c 32  $4,$L40..li.$4,2
0330: 09 09 09 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a  ......set.macro.
0340: 09 2e 73 65 74 09 72 65 6f 72 64 65 72 0a 0a 09  ..set.reorder...
0350: 2e 73 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09  .set.noreorder..
0360: 2e 73 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 62 6e  .set.nomacro..bn
0370: 65 09 24 35 2c 24 34 2c 24 4c 37 0a 09 6c 69 09  e.$5,$4,$L7..li.
0380: 24 34 2c 33 09 09 09 0a 09 2e 73 65 74 09 6d 61  $4,3......set.ma
0390: 63 72 6f 0a 09 2e 73 65 74 09 72 65 6f 72 64 65  cro...set.reorde
03a0: 72 0a 0a 09 6c 62 09 24 32 2c 34 30 28 24 66 70  r...lb.$2,40($fp
03b0: 29 0a 09 6a 09 24 4c 34 0a 24 4c 37 3a 0a 09 2e  )..j.$L4.$L7:...
03c0: 73 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09 2e  set.noreorder...
03d0: 73 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 62 6e 65  set.nomacro..bne
03e0: 09 24 35 2c 24 34 2c 24 4c 39 0a 09 6c 69 09 24  .$5,$4,$L9..li.$
03f0: 34 2c 34 09 09 09 0a 09 2e 73 65 74 09 6d 61 63  4,4......set.mac
0400: 72 6f 0a 09 2e 73 65 74 09 72 65 6f 72 64 65 72  ro...set.reorder
0410: 0a 0a 24 4c 34 30 3a 0a 09 6c 62 75 09 24 32 2c  ..$L40:..lbu.$2,
0420: 34 30 28 24 66 70 29 0a 09 6a 09 24 4c 34 0a 24  40($fp)..j.$L4.$
0430: 4c 39 3a 0a 09 2e 73 65 74 09 6e 6f 72 65 6f 72  L9:...set.noreor
0440: 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d 61 63 72  der...set.nomacr
0450: 6f 0a 09 62 6e 65 09 24 35 2c 24 34 2c 24 4c 31  o..bne.$5,$4,$L1
0460: 31 0a 09 6c 69 09 24 34 2c 35 09 09 09 0a 09 2e  1..li.$4,5......
0470: 73 65 74 09 6d 61 63 72 6f 0a 09 2e 73 65 74 09  set.macro...set.
0480: 72 65 6f 72 64 65 72 0a 0a 09 6c 68 09 24 32 2c  reorder...lh.$2,
0490: 34 30 28 24 66 70 29 0a 09 6a 09 24 4c 34 0a 24  40($fp)..j.$L4.$
04a0: 4c 31 31 3a 0a 09 2e 73 65 74 09 6e 6f 72 65 6f  L11:...set.noreo
04b0: 72 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d 61 63  rder...set.nomac
04c0: 72 6f 0a 09 62 6e 65 09 24 35 2c 24 34 2c 24 4c  ro..bne.$5,$4,$L
04d0: 31 33 0a 09 6c 69 09 24 34 2c 36 09 09 09 0a 09  13..li.$4,6.....
04e0: 2e 73 65 74 09 6d 61 63 72 6f 0a 09 2e 73 65 74  .set.macro...set
04f0: 09 72 65 6f 72 64 65 72 0a 0a 09 6c 68 75 09 24  .reorder...lhu.$
0500: 32 2c 34 30 28 24 66 70 29 0a 09 6a 09 24 4c 34  2,40($fp)..j.$L4
0510: 0a 24 4c 31 33 3a 0a 09 2e 73 65 74 09 6e 6f 72  .$L13:...set.nor
0520: 65 6f 72 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d  eorder...set.nom
0530: 61 63 72 6f 0a 09 62 65 71 09 24 35 2c 24 34 2c  acro..beq.$5,$4,
0540: 24 4c 34 31 0a 09 6c 69 09 24 34 2c 37 09 09 09  $L41..li.$4,7...
0550: 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a 09 2e 73  ...set.macro...s
0560: 65 74 09 72 65 6f 72 64 65 72 0a 0a 09 2e 73 65  et.reorder....se
0570: 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09 2e 73 65  t.noreorder...se
0580: 74 09 6e 6f 6d 61 63 72 6f 0a 09 62 65 71 09 24  t.nomacro..beq.$
0590: 35 2c 24 34 2c 24 4c 34 31 0a 09 6c 69 09 24 34  5,$4,$L41..li.$4
05a0: 2c 38 09 09 09 0a 09 2e 73 65 74 09 6d 61 63 72  ,8......set.macr
05b0: 6f 0a 09 2e 73 65 74 09 72 65 6f 72 64 65 72 0a  o...set.reorder.
05c0: 0a 09 2e 73 65 74 09 6e 6f 72 65 6f 72 64 65 72  ...set.noreorder
05d0: 0a 09 2e 73 65 74 09 6e 6f 6d 61 63 72 6f 0a 09  ...set.nomacro..
05e0: 62 65 71 09 24 35 2c 24 34 2c 24 4c 34 31 0a 09  beq.$5,$4,$L41..
05f0: 6c 69 09 24 34 2c 39 09 09 09 0a 09 2e 73 65 74  li.$4,9......set
0600: 09 6d 61 63 72 6f 0a 09 2e 73 65 74 09 72 65 6f  .macro...set.reo
0610: 72 64 65 72 0a 0a 09 2e 73 65 74 09 6e 6f 72 65  rder....set.nore
0620: 6f 72 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d 61  order...set.noma
0630: 63 72 6f 0a 09 62 65 71 09 24 35 2c 24 34 2c 24  cro..beq.$5,$4,$
0640: 4c 34 31 0a 09 61 64 64 75 09 24 34 2c 24 35 2c  L41..addu.$4,$5,
0650: 2d 31 30 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a  -10...set.macro.
0660: 09 2e 73 65 74 09 72 65 6f 72 64 65 72 0a 0a 09  ..set.reorder...
0670: 73 6c 74 75 09 24 34 2c 24 34 2c 32 0a 09 2e 73  sltu.$4,$4,2...s
0680: 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09 2e 73  et.noreorder...s
0690: 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 62 65 71 09  et.nomacro..beq.
06a0: 24 34 2c 24 30 2c 24 4c 32 33 0a 09 6c 69 09 24  $4,$0,$L23..li.$
06b0: 34 2c 31 32 09 09 09 0a 09 2e 73 65 74 09 6d 61  4,12......set.ma
06c0: 63 72 6f 0a 09 2e 73 65 74 09 72 65 6f 72 64 65  cro...set.reorde
06d0: 72 0a 0a 09 6c 77 09 24 32 2c 34 30 28 24 66 70  r...lw.$2,40($fp
06e0: 29 0a 09 6c 77 09 24 33 2c 34 34 28 24 66 70 29  )..lw.$3,44($fp)
06f0: 0a 09 6a 09 24 4c 34 0a 24 4c 32 33 3a 0a 09 6c  ..j.$L4.$L23:..l
0700: 77 09 24 35 2c 32 38 28 24 66 70 29 0a 09 0a 09  w.$5,28($fp)....
0710: 2e 73 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09  .set.noreorder..
0720: 2e 73 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 62 6e  .set.nomacro..bn
0730: 65 09 24 35 2c 24 34 2c 24 4c 32 35 0a 09 6c 69  e.$5,$4,$L25..li
0740: 09 24 34 2c 31 33 09 09 09 0a 09 2e 73 65 74 09  .$4,13......set.
0750: 6d 61 63 72 6f 0a 09 2e 73 65 74 09 72 65 6f 72  macro...set.reor
0760: 64 65 72 0a 0a 09 6c 2e 73 09 24 66 30 2c 34 30  der...l.s.$f0,40
0770: 28 24 66 70 29 0a 09 6a 09 24 4c 34 0a 24 4c 32  ($fp)..j.$L4.$L2
0780: 35 3a 0a 09 2e 73 65 74 09 6e 6f 72 65 6f 72 64  5:...set.noreord
0790: 65 72 0a 09 2e 73 65 74 09 6e 6f 6d 61 63 72 6f  er...set.nomacro
07a0: 0a 09 62 6e 65 09 24 35 2c 24 34 2c 24 4c 32 37  ..bne.$5,$4,$L27
07b0: 0a 09 6c 69 09 24 34 2c 31 34 09 09 09 0a 09 2e  ..li.$4,14......
07c0: 73 65 74 09 6d 61 63 72 6f 0a 09 2e 73 65 74 09  set.macro...set.
07d0: 72 65 6f 72 64 65 72 0a 0a 09 6c 2e 64 09 24 66  reorder...l.d.$f
07e0: 30 2c 34 30 28 24 66 70 29 0a 09 6a 09 24 4c 34  0,40($fp)..j.$L4
07f0: 0a 24 4c 32 37 3a 0a 09 2e 73 65 74 09 6e 6f 72  .$L27:...set.nor
0800: 65 6f 72 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d  eorder...set.nom
0810: 61 63 72 6f 0a 09 62 6e 65 09 24 35 2c 24 34 2c  acro..bne.$5,$4,
0820: 24 4c 32 39 0a 09 6c 69 09 24 34 2c 31 35 09 09  $L29..li.$4,15..
0830: 09 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a 09 2e  ....set.macro...
0840: 73 65 74 09 72 65 6f 72 64 65 72 0a 0a 24 4c 34  set.reorder..$L4
0850: 31 3a 0a 09 6c 77 09 24 32 2c 34 30 28 24 66 70  1:..lw.$2,40($fp
0860: 29 0a 09 6a 09 24 4c 34 0a 24 4c 32 39 3a 0a 09  )..j.$L4.$L29:..
0870: 62 6e 65 09 24 35 2c 24 34 2c 24 4c 34 0a 09 6c  bne.$5,$4,$L4..l
0880: 77 09 24 35 2c 31 36 28 24 66 70 29 0a 09 0a 09  w.$5,16($fp)....
0890: 61 6e 64 69 09 24 34 2c 24 35 2c 30 78 31 0a 09  andi.$4,$5,0x1..
08a0: 2e 73 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09  .set.noreorder..
08b0: 2e 73 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 62 65  .set.nomacro..be
08c0: 71 09 24 34 2c 24 30 2c 24 4c 33 32 0a 09 61 6e  q.$4,$0,$L32..an
08d0: 64 69 09 24 34 2c 24 35 2c 30 78 32 0a 09 2e 73  di.$4,$5,0x2...s
08e0: 65 74 09 6d 61 63 72 6f 0a 09 2e 73 65 74 09 72  et.macro...set.r
08f0: 65 6f 72 64 65 72 0a 0a 09 6c 77 09 24 32 2c 32  eorder...lw.$2,2
0900: 34 28 24 66 70 29 0a 09 6a 09 24 4c 34 0a 24 4c  4($fp)..j.$L4.$L
0910: 33 32 3a 0a 09 2e 73 65 74 09 6e 6f 72 65 6f 72  32:...set.noreor
0920: 64 65 72 0a 09 2e 73 65 74 09 6e 6f 6d 61 63 72  der...set.nomacr
0930: 6f 0a 09 62 65 71 09 24 34 2c 24 30 2c 24 4c 34  o..beq.$4,$0,$L4
0940: 0a 09 6c 69 09 24 34 2c 31 09 09 09 0a 09 2e 73  ..li.$4,1......s
0950: 65 74 09 6d 61 63 72 6f 0a 09 2e 73 65 74 09 72  et.macro...set.r
0960: 65 6f 72 64 65 72 0a 0a 09 6c 77 09 24 35 2c 33  eorder...lw.$5,3
0970: 32 28 24 66 70 29 0a 09 0a 09 2e 73 65 74 09 6e  2($fp).....set.n
0980: 6f 72 65 6f 72 64 65 72 0a 09 2e 73 65 74 09 6e  oreorder...set.n
0990: 6f 6d 61 63 72 6f 0a 09 62 6e 65 09 24 35 2c 24  omacro..bne.$5,$
09a0: 34 2c 24 4c 33 35 0a 09 6c 69 09 24 34 2c 32 09  4,$L35..li.$4,2.
09b0: 09 09 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a 09  .....set.macro..
09c0: 2e 73 65 74 09 72 65 6f 72 64 65 72 0a 0a 09 6c  .set.reorder...l
09d0: 77 09 24 34 2c 32 34 28 24 66 70 29 0a 09 0a 09  w.$4,24($fp)....
09e0: 6c 62 75 09 24 32 2c 30 28 24 34 29 0a 09 6a 09  lbu.$2,0($4)..j.
09f0: 24 4c 34 0a 24 4c 33 35 3a 0a 09 2e 73 65 74 09  $L4.$L35:...set.
0a00: 6e 6f 72 65 6f 72 64 65 72 0a 09 2e 73 65 74 09  noreorder...set.
0a10: 6e 6f 6d 61 63 72 6f 0a 09 62 6e 65 09 24 35 2c  nomacro..bne.$5,
0a20: 24 34 2c 24 4c 33 37 0a 09 6c 69 09 24 34 2c 34  $4,$L37..li.$4,4
0a30: 09 09 09 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a  ......set.macro.
0a40: 09 2e 73 65 74 09 72 65 6f 72 64 65 72 0a 0a 09  ..set.reorder...
0a50: 6c 77 09 24 34 2c 32 34 28 24 66 70 29 0a 09 0a  lw.$4,24($fp)...
0a60: 09 6c 68 75 09 24 32 2c 30 28 24 34 29 0a 09 6a  .lhu.$2,0($4)..j
0a70: 09 24 4c 34 0a 24 4c 33 37 3a 0a 09 62 6e 65 09  .$L4.$L37:..bne.
0a80: 24 35 2c 24 34 2c 24 4c 34 0a 09 6c 77 09 24 34  $5,$4,$L4..lw.$4
0a90: 2c 32 34 28 24 66 70 29 0a 09 0a 09 6c 77 09 24  ,24($fp)....lw.$
0aa0: 32 2c 30 28 24 34 29 0a 24 4c 34 3a 0a 09 6d 6f  2,0($4).$L4:..mo
0ab0: 76 65 09 24 73 70 2c 24 66 70 0a 09 6c 77 09 24  ve.$sp,$fp..lw.$
0ac0: 33 31 2c 38 34 28 24 73 70 29 0a 09 6c 77 09 24  31,84($sp)..lw.$
0ad0: 66 70 2c 38 30 28 24 73 70 29 0a 09 0a 09 2e 73  fp,80($sp).....s
0ae0: 65 74 09 6e 6f 72 65 6f 72 64 65 72 0a 09 2e 73  et.noreorder...s
0af0: 65 74 09 6e 6f 6d 61 63 72 6f 0a 09 6a 09 24 33  et.nomacro..j.$3
0b00: 31 0a 09 61 64 64 75 09 24 73 70 2c 24 73 70 2c  1..addu.$sp,$sp,
0b10: 38 38 0a 09 2e 73 65 74 09 6d 61 63 72 6f 0a 09  88...set.macro..
0b20: 2e 73 65 74 09 72 65 6f 72 64 65 72 0a 0a 09 2e  .set.reorder....
0b30: 65 6e 64 09 5f 5f 76 61 63 61 6c 6c 5f 72 0a     end.__vacall_r.