memcmp.S 622 B

12345678910111213141516171819202122232425262728
  1. /* $Id: memcmp.S,v 1.3 2000/03/23 07:51:08 davem Exp $
  2. * Sparc64 optimized memcmp code.
  3. *
  4. * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  5. * Copyright (C) 2000 David S. Miller (davem@redhat.com)
  6. */
  7. .text
  8. .align 32
  9. .globl __memcmp, memcmp
  10. __memcmp:
  11. memcmp:
  12. cmp %o2, 0 ! IEU1 Group
  13. loop: be,pn %icc, ret_0 ! CTI
  14. nop ! IEU0
  15. ldub [%o0], %g7 ! LSU Group
  16. ldub [%o1], %g3 ! LSU Group
  17. sub %o2, 1, %o2 ! IEU0
  18. add %o0, 1, %o0 ! IEU1
  19. add %o1, 1, %o1 ! IEU0 Group
  20. subcc %g7, %g3, %g3 ! IEU1 Group
  21. be,pt %icc, loop ! CTI
  22. cmp %o2, 0 ! IEU1 Group
  23. ret_n0: retl
  24. mov %g3, %o0
  25. ret_0: retl
  26. mov 0, %o0