csumipv6.S 696 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * linux/arch/arm/lib/csumipv6.S
  3. *
  4. * Copyright (C) 1995-1998 Russell King
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. */
  10. #include <linux/linkage.h>
  11. #include <asm/assembler.h>
  12. .text
  13. ENTRY(__csum_ipv6_magic)
  14. str lr, [sp, #-4]!
  15. adds ip, r2, r3
  16. ldmia r1, {r1 - r3, lr}
  17. adcs ip, ip, r1
  18. adcs ip, ip, r2
  19. adcs ip, ip, r3
  20. adcs ip, ip, lr
  21. ldmia r0, {r0 - r3}
  22. adcs r0, ip, r0
  23. adcs r0, r0, r1
  24. adcs r0, r0, r2
  25. ldr r2, [sp, #4]
  26. adcs r0, r0, r3
  27. adcs r0, r0, r2
  28. adcs r0, r0, #0
  29. ldmfd sp!, {pc}
  30. ENDPROC(__csum_ipv6_magic)