avcall-sparc.S
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:4k
- #include "asmsparc.h"
- .text
- .align 4
- #ifndef __CHECKER__
- .global C(__builtin_avcall)
- DECLARE_FUNCTION(__builtin_avcall)
- .proc 04
- C(__builtin_avcall:)
- #else
- .global C(chkr.__builtin_avcall)
- DECLARE_FUNCTION(chkr.__builtin_avcall)
- .proc 04
- C(chkr.__builtin_avcall:)
- #endif
- !$PROLOGUE$ 0
- save %sp, -1152, %sp
- !$PROLOGUE$ 1
- ld [%i0+20], %g3
- add %sp, 68, %l2
- add %g3, -40, %g3
- ld [%i0+12], %o7
- sub %g3, %i0, %g3
- cmp %o7, 16
- bne L3
- sra %g3, 2, %l0
- ld [%i0+4], %g3
- andcc %g3, 8, %g0
- bne L87
- cmp %l0, 6
- ld [%i0+8], %g3
- st %g3, [%l2-4]
- L3:
- cmp %l0, 6
- L87:
- ble,a L88
- ld [%i0+12], %g3
- add %l0, -6, %l0
- add %i0, 40, %l1
- mov 24, %o7
- L7:
- ld [%l1+%o7], %g3
- addcc %l0, -1, %l0
- st %g3, [%o7+%l2]
- bne L7
- add %o7, 4, %o7
- ld [%i0+12], %g3
- L88:
- cmp %g3, 16
- bne,a L89
- ld [%i0], %g3
- ld [%i0+4], %g3
- andcc %g3, 16, %g0
- be L9
- sethi %hi(-2117607424), %o7
- ld [%i0+16], %g3
- and %g3, 4095, %g3
- or %o7, 8, %o7
- sethi %hi(-1614774272), %l0
- sethi %hi(16777216), %l1
- sethi %hi(-1341120512), %l2
- sethi %hi(-2115502080), %l3
- st %g3, [%fp-24]
- std %l0, [%fp-32]
- st %l2, [%fp-20]
- st %o7, [%fp-16]
- st %l3, [%fp-12]
- add %fp, -32, %g3
- iflush %g3
- add %fp, -24, %o7
- iflush %o7
- add %fp, -16, %g3
- iflush %g3
- add %fp, -12, %o7
- iflush %o7
- ld [%i0], %g2
- ld [%i0+40], %o0
- ld [%i0+44], %o1
- ld [%i0+48], %o2
- ld [%i0+52], %o3
- ld [%i0+56], %o4
- jmp %fp-32
- ld [%i0+60], %o5
- L9:
- ld [%i0], %g3
- L89:
- ld [%i0+40], %o0
- ld [%i0+44], %o1
- ld [%i0+48], %o2
- ld [%i0+52], %o3
- ld [%i0+56], %o4
- call %g3, 0
- ld [%i0+60], %o5
- mov %o0, %l2
- nop
- ld [%i0+12], %g3
- cmp %g3, 1
- be L11
- cmp %g3, 0
- be L84
- cmp %g3, 2
- be L85
- cmp %g3, 3
- be L85
- cmp %g3, 4
- be L85
- cmp %g3, 5
- be L86
- cmp %g3, 6
- be L86
- cmp %g3, 7
- be L84
- cmp %g3, 8
- be L84
- cmp %g3, 9
- be L84
- cmp %g3, 10
- be,a L90
- ld [%i0+8], %g3
- ld [%i0+12], %o7
- add %o7, -11, %g3
- cmp %g3, 1
- bgu L32
- cmp %o7, 13
- ld [%i0+8], %g3
- st %l2, [%g3]
- ld [%i0+8], %o7
- b L11
- st %o1, [%o7+4]
- L32:
- bne L34
- cmp %o7, 14
- ld [%i0+4], %g3
- andcc %g3, 32, %g0
- bne,a L35
- fdtos %f0, %f0
- L35:
- ld [%i0+8], %g3
- b L11
- st %f0, [%g3]
- L34:
- bne L38
- cmp %o7, 15
- ld [%i0+8], %g3
- b L11
- std %f0, [%g3]
- L38:
- be L84
- cmp %o7, 16
- bne L11
- nop
- ld [%i0+4], %g3
- andcc %g3, 8, %g0
- be L43
- andcc %g3, 1, %g0
- ld [%i0+16], %g3
- cmp %g3, 1
- bne L44
- cmp %g3, 2
- ld [%i0+8], %o7
- ldub [%sp-1], %g3
- b L11
- stb %g3, [%o7]
- L44:
- bne L46
- cmp %g3, 4
- ld [%i0+8], %o7
- lduh [%sp-2], %g3
- b L11
- sth %g3, [%o7]
- L46:
- bne L48
- cmp %g3, 8
- ld [%i0+8], %o7
- ld [%sp-4], %g3
- b L11
- st %g3, [%o7]
- L48:
- bne L50
- andcc %g3, 3, %g0
- ld [%sp-8], %g3
- ld [%i0+8], %o7
- st %g3, [%o7]
- ld [%i0+8], %l0
- ld [%sp-4], %g3
- b L11
- st %g3, [%l0+4]
- L50:
- be L52
- sub %sp, %g3, %o7
- ld [%i0+8], %i0
- cmp %g3, 4
- bleu L53
- mov %g3, %l0
- and %o7, -4, %o7
- L53:
- cmp %g3, 0
- be L11
- nop
- L56:
- ldub [%o7], %g3
- addcc %l0, -1, %l0
- stb %g3, [%i0]
- add %o7, 1, %o7
- bne L56
- add %i0, 1, %i0
- b,a L11
- L52:
- cmp %o7, %sp
- bgeu L11
- ld [%i0+8], %i0
- L61:
- ld [%o7], %g3
- add %o7, 4, %o7
- st %g3, [%i0]
- cmp %o7, %sp
- blu L61
- add %i0, 4, %i0
- b,a L11
- L43:
- be L64
- andcc %g3, 2, %g0
- ld [%i0+16], %g3
- cmp %g3, 1
- bne L65
- cmp %g3, 2
- ld [%i0+8], %o7
- ldub [%l2], %g3
- b L11
- stb %g3, [%o7]
- L65:
- bne L67
- cmp %g3, 4
- ld [%i0+8], %o7
- lduh [%l2], %g3
- b L11
- sth %g3, [%o7]
- L67:
- bne L69
- cmp %g3, 8
- ld [%i0+8], %o7
- ld [%l2], %g3
- b L11
- st %g3, [%o7]
- L69:
- bne L71
- add %g3, 3, %g3
- ld [%l2], %g3
- ld [%i0+8], %o7
- st %g3, [%o7]
- ld [%i0+8], %l0
- ld [%l2+4], %g3
- b L11
- st %g3, [%l0+4]
- L71:
- srl %g3, 2, %l1
- addcc %l1, -1, %l1
- bneg L11
- sll %l1, 2, %l0
- L75:
- ld [%l0+%l2], %o7
- addcc %l1, -1, %l1
- ld [%i0+8], %g3
- st %o7, [%g3+%l0]
- bpos L75
- add %l0, -4, %l0
- b,a L11
- L64:
- be L11
- nop
- ld [%i0+16], %g3
- cmp %g3, 1
- bne L79
- cmp %g3, 2
- L85:
- ld [%i0+8], %g3
- b L11
- stb %l2, [%g3]
- L79:
- bne L81
- cmp %g3, 4
- L86:
- ld [%i0+8], %g3
- b L11
- sth %l2, [%g3]
- L81:
- bne L11
- nop
- L84:
- ld [%i0+8], %g3
- L90:
- st %l2, [%g3]
- L11:
- ret
- restore %g0, 0, %o0