123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- 99: x,
- .section __ex_table,"a"
- .long 99b - .
- lda $31, $exitin-99b($31)
- .previous
- 99: x,
- .section __ex_table,"a"
- .long 99b - .
- lda $31, $exitout-99b($31)
- .previous
- .set noat
- .align 4
- .globl __copy_user
- .ent __copy_user
-
- __copy_user:
- .prologue 0
- subq $0, 32, $1
- beq $0, $zerolength
- and $6,7,$3
- ble $1, $onebyteloop
- beq $3, $destaligned
- subq $3, 8, $3
- $aligndest:
- EXI( ldbu $1,0($7) )
- addq $6,1,$6
- addq $3,1,$3
- nop
- EXO( stb $1,-1($6) )
- addq $7,1,$7
- subq $0,1,$0
- bne $3, $aligndest
- $destaligned:
- and $7,7,$1
- bic $0,7,$4
- EXI( ldq_u $3,0($7) )
- beq $1,$quadaligned
- $misquad:
- EXI( ldq_u $2,8($7) )
- subq $4,8,$4
- extql $3,$7,$3
- extqh $2,$7,$1
- bis $3,$1,$1
- EXO( stq $1,0($6) )
- addq $7,8,$7
- subq $0,8,$0
- addq $6,8,$6
- bis $2,$2,$3
- nop
- bne $4,$misquad
- nop
- nop
- nop
- beq $0,$zerolength
- EXI ( ldbu $2,0($7) )
- addq $6,1,$6
- nop
- br $31, $dirtyentry
- $quadaligned:
- subq $4, 32, $2
- nop
- nop
- blt $2, $onequad
- $unroll4:
- EXI( ldq $1,0($7) )
- EXI( ldq $2,8($7) )
- subq $4,32,$4
- nop
- addq $7,16,$7
- EXO( stq $1,0($6) )
- EXO( stq $2,8($6) )
- subq $0,16,$0
- addq $6,16,$6
- EXI( ldq $1,0($7) )
- EXI( ldq $2,8($7) )
- subq $4, 32, $3
- EXO( stq $1,0($6) )
- EXO( stq $2,8($6) )
- subq $0,16,$0
- addq $7,16,$7
- nop
- nop
- addq $6,16,$6
- bgt $3,$unroll4
- nop
- nop
- nop
- beq $4, $noquads
- $onequad:
- EXI( ldq $1,0($7) )
- subq $4,8,$4
- addq $7,8,$7
- nop
- EXO( stq $1,0($6) )
- subq $0,8,$0
- addq $6,8,$6
- bne $4,$onequad
- $noquads:
- nop
- nop
- nop
- beq $0,$zerolength
- $onebyteloop:
- EXI ( ldbu $2,0($7) )
- addq $6,1,$6
- nop
- nop
- $dirtyentry:
- EXO ( stb $2,-1($6) )
- addq $7,1,$7
- subq $0,1,$0
- bgt $0,$onebyteloop
- $zerolength:
- $exitin:
- $exitout:
- nop
- nop
- nop
- ret $31,($28),1
- .end __copy_user
- EXPORT_SYMBOL(__copy_user)
|