Artifact a6358684420c2959f653092aa0bf7973db9715d1:


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)".