csumipv6.S 752 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. #include <asm/export.h>
  13. .text
  14. ENTRY(__csum_ipv6_magic)
  15. str lr, [sp, #-4]!
  16. adds ip, r2, r3
  17. ldmia r1, {r1 - r3, lr}
  18. adcs ip, ip, r1
  19. adcs ip, ip, r2
  20. adcs ip, ip, r3
  21. adcs ip, ip, lr
  22. ldmia r0, {r0 - r3}
  23. adcs r0, ip, r0
  24. adcs r0, r0, r1
  25. adcs r0, r0, r2
  26. ldr r2, [sp, #4]
  27. adcs r0, r0, r3
  28. adcs r0, r0, r2
  29. adcs r0, r0, #0
  30. ldmfd sp!, {pc}
  31. ENDPROC(__csum_ipv6_magic)
  32. EXPORT_SYMBOL(__csum_ipv6_magic)