csumipv6.S 550 B

123456789101112131415161718192021222324252627282930
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * linux/arch/arm/lib/csumipv6.S
  4. *
  5. * Copyright (C) 1995-1998 Russell King
  6. */
  7. #include <linux/linkage.h>
  8. #include <asm/assembler.h>
  9. .text
  10. ENTRY(__csum_ipv6_magic)
  11. str lr, [sp, #-4]!
  12. adds ip, r2, r3
  13. ldmia r1, {r1 - r3, lr}
  14. adcs ip, ip, r1
  15. adcs ip, ip, r2
  16. adcs ip, ip, r3
  17. adcs ip, ip, lr
  18. ldmia r0, {r0 - r3}
  19. adcs r0, ip, r0
  20. adcs r0, r0, r1
  21. adcs r0, r0, r2
  22. ldr r2, [sp, #4]
  23. adcs r0, r0, r3
  24. adcs r0, r0, r2
  25. adcs r0, r0, #0
  26. ldmfd sp!, {pc}
  27. ENDPROC(__csum_ipv6_magic)