0000: 23 69 6e 63 6c 75 64 65 20 22 61 73 6d 61 72 6d #include "asmarm
0010: 2e 68 22 0a 09 2e 63 70 75 20 61 72 6d 31 30 74 .h"...cpu arm10t
0020: 64 6d 69 0a 09 2e 66 70 75 20 73 6f 66 74 76 66 dmi...fpu softvf
0030: 70 0a 09 2e 66 69 6c 65 09 22 61 76 63 61 6c 6c p...file."avcall
0040: 2d 61 72 6d 65 6c 2e 63 22 0a 09 2e 74 65 78 74 -armel.c"...text
0050: 0a 09 2e 61 6c 69 67 6e 09 32 0a 09 2e 67 6c 6f ...align.2...glo
0060: 62 61 6c 09 5f 5f 62 75 69 6c 74 69 6e 5f 61 76 bal.__builtin_av
0070: 63 61 6c 6c 0a 09 2e 74 79 70 65 09 5f 5f 62 75 call...type.__bu
0080: 69 6c 74 69 6e 5f 61 76 63 61 6c 6c 2c 20 25 66 iltin_avcall, %f
0090: 75 6e 63 74 69 6f 6e 0a 5f 5f 62 75 69 6c 74 69 unction.__builti
00a0: 6e 5f 61 76 63 61 6c 6c 3a 0a 09 40 20 61 72 67 n_avcall:..@ arg
00b0: 73 20 3d 20 30 2c 20 70 72 65 74 65 6e 64 20 3d s = 0, pretend =
00c0: 20 30 2c 20 66 72 61 6d 65 20 3d 20 31 30 32 34 0, frame = 1024
00d0: 0a 09 40 20 66 72 61 6d 65 5f 6e 65 65 64 65 64 ..@ frame_needed
00e0: 20 3d 20 30 2c 20 75 73 65 73 5f 61 6e 6f 6e 79 = 0, uses_anony
00f0: 6d 6f 75 73 5f 61 72 67 73 20 3d 20 30 0a 09 73 mous_args = 0..s
0100: 74 6d 66 64 09 73 70 21 2c 20 7b 72 34 2c 20 6c tmfd.sp!, {r4, l
0110: 72 7d 0a 09 6c 64 72 09 72 33 2c 20 5b 72 30 2c r}..ldr.r3, [r0,
0120: 20 23 32 30 5d 0a 09 6d 6f 76 09 6c 72 2c 20 23 #20]..mov.lr, #
0130: 34 0a 09 72 73 62 09 72 33 2c 20 72 30 2c 20 72 4..rsb.r3, r0, r
0140: 33 0a 09 73 75 62 09 72 33 2c 20 72 33 2c 20 23 3..sub.r3, r3, #
0150: 33 32 0a 09 6d 6f 76 09 69 70 2c 20 72 33 2c 20 32..mov.ip, r3,
0160: 61 73 72 20 23 32 0a 09 73 75 62 09 73 70 2c 20 asr #2..sub.sp,
0170: 73 70 2c 20 23 31 30 32 34 0a 09 63 6d 70 09 6c sp, #1024..cmp.l
0180: 72 2c 20 69 70 0a 09 6d 6f 76 09 72 34 2c 20 72 r, ip..mov.r4, r
0190: 30 0a 09 6d 6f 76 09 72 30 2c 20 73 70 0a 09 62 0..mov.r0, sp..b
01a0: 67 65 09 2e 4c 35 39 0a 2e 4c 37 35 3a 0a 09 6d ge..L59..L75:..m
01b0: 6f 76 09 72 33 2c 20 6c 72 2c 20 61 73 6c 20 23 ov.r3, lr, asl #
01c0: 32 0a 09 61 64 64 09 72 32 2c 20 72 33 2c 20 72 2..add.r2, r3, r
01d0: 34 0a 09 6c 64 72 09 72 31 2c 20 5b 72 32 2c 20 4..ldr.r1, [r2,
01e0: 23 33 32 5d 0a 09 61 64 64 09 6c 72 2c 20 6c 72 #32]..add.lr, lr
01f0: 2c 20 23 31 0a 09 61 64 64 09 72 33 2c 20 72 33 , #1..add.r3, r3
0200: 2c 20 72 30 0a 09 63 6d 70 09 6c 72 2c 20 69 70 , r0..cmp.lr, ip
0210: 0a 09 73 74 72 09 72 31 2c 20 5b 72 33 2c 20 23 ..str.r1, [r3, #
0220: 2d 31 36 5d 0a 09 62 6c 74 09 2e 4c 37 35 0a 2e -16]..blt..L75..
0230: 4c 35 39 3a 0a 09 61 64 64 09 72 30 2c 20 72 34 L59:..add.r0, r4
0240: 2c 20 23 33 32 0a 09 6c 64 6d 69 61 09 72 30 2c , #32..ldmia.r0,
0250: 20 7b 72 30 2c 20 72 31 2c 20 72 32 2c 20 72 33 {r0, r1, r2, r3
0260: 7d 09 40 20 70 68 6f 6c 65 20 6c 64 6d 0a 09 6d }.@ phole ldm..m
0270: 6f 76 09 6c 72 2c 20 70 63 0a 09 6c 64 72 09 70 ov.lr, pc..ldr.p
0280: 63 2c 20 5b 72 34 2c 20 23 30 5d 0a 09 6c 64 72 c, [r4, #0]..ldr
0290: 09 72 32 2c 20 5b 72 34 2c 20 23 31 32 5d 0a 09 .r2, [r4, #12]..
02a0: 6d 6f 76 09 6c 72 2c 20 72 30 0a 09 63 6d 70 09 mov.lr, r0..cmp.
02b0: 72 32 2c 20 23 31 0a 09 62 65 71 09 2e 4c 37 0a r2, #1..beq..L7.
02c0: 09 63 6d 70 09 72 32 2c 20 23 30 0a 09 62 65 71 .cmp.r2, #0..beq
02d0: 09 2e 4c 37 33 0a 09 63 6d 70 09 72 32 2c 20 23 ..L73..cmp.r2, #
02e0: 32 0a 09 62 65 71 09 2e 4c 36 35 0a 09 63 6d 70 2..beq..L65..cmp
02f0: 09 72 32 2c 20 23 33 0a 09 62 65 71 09 2e 4c 36 .r2, #3..beq..L6
0300: 35 0a 09 63 6d 70 09 72 32 2c 20 23 34 0a 09 62 5..cmp.r2, #4..b
0310: 65 71 09 2e 4c 36 35 0a 09 63 6d 70 09 72 32 2c eq..L65..cmp.r2,
0320: 20 23 35 0a 09 62 65 71 09 2e 4c 36 36 0a 09 63 #5..beq..L66..c
0330: 6d 70 09 72 32 2c 20 23 36 0a 09 62 65 71 09 2e mp.r2, #6..beq..
0340: 4c 36 36 0a 09 63 6d 70 09 72 32 2c 20 23 37 0a L66..cmp.r2, #7.
0350: 09 62 65 71 09 2e 4c 37 33 0a 09 63 6d 70 09 72 .beq..L73..cmp.r
0360: 32 2c 20 23 38 0a 09 62 65 71 09 2e 4c 37 33 0a 2, #8..beq..L73.
0370: 09 63 6d 70 09 72 32 2c 20 23 39 0a 09 62 65 71 .cmp.r2, #9..beq
0380: 09 2e 4c 37 33 0a 09 63 6d 70 09 72 32 2c 20 23 ..L73..cmp.r2, #
0390: 31 30 0a 09 62 65 71 09 2e 4c 37 33 0a 09 73 75 10..beq..L73..su
03a0: 62 09 72 33 2c 20 72 32 2c 20 23 31 31 0a 09 63 b.r3, r2, #11..c
03b0: 6d 70 09 72 33 2c 20 23 31 0a 09 62 6c 73 09 2e mp.r3, #1..bls..
03c0: 4c 37 32 0a 09 63 6d 70 09 72 32 2c 20 23 31 33 L72..cmp.r2, #13
03d0: 0a 09 6c 64 72 65 71 09 72 33 2c 20 5b 72 34 2c ..ldreq.r3, [r4,
03e0: 20 23 38 5d 0a 09 73 74 72 65 71 09 72 30 2c 20 #8]..streq.r0,
03f0: 5b 72 33 2c 20 23 30 5d 09 40 20 66 6c 6f 61 74 [r3, #0].@ float
0400: 0a 09 62 65 71 09 2e 4c 37 0a 09 63 6d 70 09 72 ..beq..L7..cmp.r
0410: 32 2c 20 23 31 34 0a 09 62 65 71 09 2e 4c 37 36 2, #14..beq..L76
0420: 0a 09 63 6d 70 09 72 32 2c 20 23 31 35 0a 09 62 ..cmp.r2, #15..b
0430: 65 71 09 2e 4c 37 33 0a 09 63 6d 70 09 72 32 2c eq..L73..cmp.r2,
0440: 20 23 31 36 0a 09 62 6e 65 09 2e 4c 37 0a 09 6c #16..bne..L7..l
0450: 64 72 09 72 33 2c 20 5b 72 34 2c 20 23 34 5d 0a dr.r3, [r4, #4].
0460: 09 74 73 74 09 72 33 2c 20 23 31 0a 09 62 65 71 .tst.r3, #1..beq
0470: 09 2e 4c 33 37 0a 09 6c 64 72 09 72 33 2c 20 5b ..L37..ldr.r3, [
0480: 72 34 2c 20 23 31 36 5d 0a 09 63 6d 70 09 72 33 r4, #16]..cmp.r3
0490: 2c 20 23 31 0a 09 6c 64 72 65 71 09 72 32 2c 20 , #1..ldreq.r2,
04a0: 5b 72 34 2c 20 23 38 5d 0a 09 6c 64 72 65 71 62 [r4, #8]..ldreqb
04b0: 09 72 33 2c 20 5b 72 30 2c 20 23 30 5d 09 40 20 .r3, [r0, #0].@
04c0: 7a 65 72 6f 5f 65 78 74 65 6e 64 71 69 73 69 32 zero_extendqisi2
04d0: 0a 09 73 74 72 65 71 62 09 72 33 2c 20 5b 72 32 ..streqb.r3, [r2
04e0: 2c 20 23 30 5d 0a 09 62 65 71 09 2e 4c 37 0a 09 , #0]..beq..L7..
04f0: 63 6d 70 09 72 33 2c 20 23 32 0a 09 6c 64 72 65 cmp.r3, #2..ldre
0500: 71 09 72 33 2c 20 5b 72 34 2c 20 23 38 5d 0a 09 q.r3, [r4, #8]..
0510: 6c 64 72 65 71 68 09 6c 72 2c 20 5b 72 30 2c 20 ldreqh.lr, [r0,
0520: 23 30 5d 0a 09 62 65 71 09 2e 4c 36 34 0a 09 63 #0]..beq..L64..c
0530: 6d 70 09 72 33 2c 20 23 34 0a 09 6c 64 72 6c 73 mp.r3, #4..ldrls
0540: 09 72 32 2c 20 5b 72 34 2c 20 23 38 5d 0a 09 6c .r2, [r4, #8]..l
0550: 64 72 6c 73 09 72 33 2c 20 5b 6c 72 2c 20 23 30 drls.r3, [lr, #0
0560: 5d 0a 09 73 74 72 6c 73 09 72 33 2c 20 5b 72 32 ]..strls.r3, [r2
0570: 2c 20 23 30 5d 0a 09 62 6c 73 09 2e 4c 37 0a 09 , #0]..bls..L7..
0580: 63 6d 70 09 72 33 2c 20 23 38 0a 09 62 65 71 09 cmp.r3, #8..beq.
0590: 2e 4c 37 37 0a 09 61 64 64 09 72 33 2c 20 72 33 .L77..add.r3, r3
05a0: 2c 20 23 33 0a 09 6d 6f 76 09 72 32 2c 20 72 33 , #3..mov.r2, r3
05b0: 2c 20 6c 73 72 20 23 32 0a 09 73 75 62 73 09 72 , lsr #2..subs.r
05c0: 32 2c 20 72 32 2c 20 23 31 0a 09 62 6d 69 09 2e 2, r2, #1..bmi..
05d0: 4c 37 0a 09 6c 64 72 09 72 30 2c 20 5b 72 34 2c L7..ldr.r0, [r4,
05e0: 20 23 38 5d 0a 2e 4c 34 38 3a 0a 09 6c 64 72 09 #8]..L48:..ldr.
05f0: 72 33 2c 20 5b 6c 72 2c 20 72 32 2c 20 61 73 6c r3, [lr, r2, asl
0600: 20 23 32 5d 0a 09 73 74 72 09 72 33 2c 20 5b 72 #2]..str.r3, [r
0610: 30 2c 20 72 32 2c 20 61 73 6c 20 23 32 5d 0a 09 0, r2, asl #2]..
0620: 73 75 62 73 09 72 32 2c 20 72 32 2c 20 23 31 0a subs.r2, r2, #1.
0630: 09 62 70 6c 09 2e 4c 34 38 0a 2e 4c 37 3a 0a 09 .bpl..L48..L7:..
0640: 6d 6f 76 09 72 30 2c 20 23 30 0a 09 61 64 64 09 mov.r0, #0..add.
0650: 73 70 2c 20 73 70 2c 20 23 31 30 32 34 0a 09 6c sp, sp, #1024..l
0660: 64 6d 66 64 09 73 70 21 2c 20 7b 72 34 2c 20 70 dmfd.sp!, {r4, p
0670: 63 7d 0a 2e 4c 37 33 3a 0a 09 6c 64 72 09 72 33 c}..L73:..ldr.r3
0680: 2c 20 5b 72 34 2c 20 23 38 5d 0a 09 73 74 72 09 , [r4, #8]..str.
0690: 6c 72 2c 20 5b 72 33 2c 20 23 30 5d 0a 09 62 09 lr, [r3, #0]..b.
06a0: 2e 4c 37 0a 2e 4c 36 35 3a 0a 09 6c 64 72 09 72 .L7..L65:..ldr.r
06b0: 33 2c 20 5b 72 34 2c 20 23 38 5d 0a 09 73 74 72 3, [r4, #8]..str
06c0: 62 09 6c 72 2c 20 5b 72 33 2c 20 23 30 5d 0a 09 b.lr, [r3, #0]..
06d0: 62 09 2e 4c 37 0a 2e 4c 36 36 3a 0a 09 6c 64 72 b..L7..L66:..ldr
06e0: 09 72 33 2c 20 5b 72 34 2c 20 23 38 5d 0a 2e 4c .r3, [r4, #8]..L
06f0: 36 34 3a 0a 09 73 74 72 68 09 6c 72 2c 20 5b 72 64:..strh.lr, [r
0700: 33 2c 20 23 30 5d 09 40 20 6d 6f 76 68 69 0a 09 3, #0].@ movhi..
0710: 62 09 2e 4c 37 0a 2e 4c 33 37 3a 0a 09 74 73 74 b..L7..L37:..tst
0720: 09 72 33 2c 20 23 35 31 32 0a 09 62 65 71 09 2e .r3, #512..beq..
0730: 4c 37 0a 09 6c 64 72 09 72 33 2c 20 5b 72 34 2c L7..ldr.r3, [r4,
0740: 20 23 31 36 5d 0a 09 63 6d 70 09 72 33 2c 20 23 #16]..cmp.r3, #
0750: 31 0a 09 62 65 71 09 2e 4c 36 35 0a 09 63 6d 70 1..beq..L65..cmp
0760: 09 72 33 2c 20 23 32 0a 09 62 65 71 09 2e 4c 36 .r3, #2..beq..L6
0770: 36 0a 09 63 6d 70 09 72 33 2c 20 23 34 0a 09 62 6..cmp.r3, #4..b
0780: 6c 73 09 2e 4c 37 33 0a 09 63 6d 70 09 72 33 2c ls..L73..cmp.r3,
0790: 20 23 38 0a 09 62 6e 65 09 2e 4c 37 0a 2e 4c 37 #8..bne..L7..L7
07a0: 32 3a 0a 09 6c 64 72 09 72 33 2c 20 5b 72 34 2c 2:..ldr.r3, [r4,
07b0: 20 23 38 5d 0a 09 73 74 72 09 72 31 2c 20 5b 72 #8]..str.r1, [r
07c0: 33 2c 20 23 34 5d 0a 09 73 74 72 09 6c 72 2c 20 3, #4]..str.lr,
07d0: 5b 72 33 2c 20 23 30 5d 0a 09 62 09 2e 4c 37 0a [r3, #0]..b..L7.
07e0: 2e 4c 37 36 3a 0a 09 6c 64 72 09 72 33 2c 20 5b .L76:..ldr.r3, [
07f0: 72 34 2c 20 23 38 5d 0a 09 73 74 6d 69 61 09 72 r4, #8]..stmia.r
0800: 33 2c 20 7b 72 30 2d 72 31 7d 0a 09 62 09 2e 4c 3, {r0-r1}..b..L
0810: 37 0a 2e 4c 37 37 3a 0a 09 6c 64 72 09 72 33 2c 7..L77:..ldr.r3,
0820: 20 5b 72 34 2c 20 23 38 5d 0a 09 6c 64 72 09 72 [r4, #8]..ldr.r
0830: 32 2c 20 5b 6c 72 2c 20 23 30 5d 0a 09 73 74 72 2, [lr, #0]..str
0840: 09 72 32 2c 20 5b 72 33 2c 20 23 30 5d 0a 09 6c .r2, [r3, #0]..l
0850: 64 72 09 72 31 2c 20 5b 6c 72 2c 20 23 34 5d 0a dr.r1, [lr, #4].
0860: 09 73 74 72 09 72 31 2c 20 5b 72 33 2c 20 23 34 .str.r1, [r3, #4
0870: 5d 0a 09 62 09 2e 4c 37 0a 09 2e 73 69 7a 65 09 ]..b..L7...size.
0880: 5f 5f 62 75 69 6c 74 69 6e 5f 61 76 63 61 6c 6c __builtin_avcall
0890: 2c 20 2e 2d 5f 5f 62 75 69 6c 74 69 6e 5f 61 76 , .-__builtin_av
08a0: 63 61 6c 6c 0a 09 2e 69 64 65 6e 74 09 22 47 43 call...ident."GC
08b0: 43 3a 20 28 47 4e 55 29 20 33 2e 34 2e 34 20 28 C: (GNU) 3.4.4 (
08c0: 72 65 6c 65 61 73 65 29 20 28 43 6f 64 65 53 6f release) (CodeSo
08d0: 75 72 63 65 72 79 20 41 52 4d 20 32 30 30 35 71 urcery ARM 2005q
08e0: 33 2d 32 29 22 0a 3-2)".