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.