in_cksum_arm.S (172614) | in_cksum_arm.S (248361) |
---|---|
1/* $NetBSD: in_cksum_arm.S,v 1.2 2003/09/23 10:01:36 scw Exp $ */ 2 3/*- 4 * Copyright 2003 Wasabi Systems, Inc. 5 * All rights reserved. 6 * 7 * Written by Steve C. Woodford for Wasabi Systems, Inc. 8 * --- 30 unchanged lines hidden (view full) --- 39/* 40 * Hand-optimised in_cksum() and in4_cksum() implementations for ARM/armv5e 41 */ 42 43#include "opt_inet.h" 44 45#include <machine/asm.h> 46#include "assym.s" | 1/* $NetBSD: in_cksum_arm.S,v 1.2 2003/09/23 10:01:36 scw Exp $ */ 2 3/*- 4 * Copyright 2003 Wasabi Systems, Inc. 5 * All rights reserved. 6 * 7 * Written by Steve C. Woodford for Wasabi Systems, Inc. 8 * --- 30 unchanged lines hidden (view full) --- 39/* 40 * Hand-optimised in_cksum() and in4_cksum() implementations for ARM/armv5e 41 */ 42 43#include "opt_inet.h" 44 45#include <machine/asm.h> 46#include "assym.s" |
47__FBSDID("$FreeBSD: head/sys/arm/arm/in_cksum_arm.S 172614 2007-10-13 12:05:03Z cognet $"); | 47__FBSDID("$FreeBSD: head/sys/arm/arm/in_cksum_arm.S 248361 2013-03-16 02:48:49Z andrew $"); |
48 49/* 50 * int in_cksum(struct mbuf *m, int len) 51 * 52 * Entry: 53 * r0 m 54 * r1 len 55 * --- 29 unchanged lines hidden (view full) --- 85 mov r1, #0xff 86 orr r1, r1, #0xff00 87 and r0, r8, r1 88 add r0, r0, r8, lsr #16 89 add r0, r0, r0, lsr #16 90 and r0, r0, r1 91 eor r0, r0, r1 92 ldmfd sp!, {r4-r11,pc} | 48 49/* 50 * int in_cksum(struct mbuf *m, int len) 51 * 52 * Entry: 53 * r0 m 54 * r1 len 55 * --- 29 unchanged lines hidden (view full) --- 85 mov r1, #0xff 86 orr r1, r1, #0xff00 87 and r0, r8, r1 88 add r0, r0, r8, lsr #16 89 add r0, r0, r0, lsr #16 90 and r0, r0, r1 91 eor r0, r0, r1 92 ldmfd sp!, {r4-r11,pc} |
93END(in_cksum) |
|
93 | 94 |
94 | |
95ENTRY(do_cksum) 96 stmfd sp!, {r4-r7, lr} 97 bl L_cksumdata 98 mov r0, r2 99 ldmfd sp!, {r4-r7, pc} | 95ENTRY(do_cksum) 96 stmfd sp!, {r4-r7, lr} 97 bl L_cksumdata 98 mov r0, r2 99 ldmfd sp!, {r4-r7, pc} |
100END(do_cksum) 101 |
|
100/* 101 * The main in*_cksum() workhorse... 102 * 103 * Entry parameters: 104 * r0 Pointer to buffer 105 * r1 Buffer length 106 * lr Return address 107 * --- 224 unchanged lines hidden (view full) --- 332 orreq r3, r3, r4, lsl #8 333 orreq r3, r3, r5, lsl #16 334 orrne r3, r4, r3, lsl #8 335 orrne r3, r3, r5, lsl #24 336#endif 337 adds r2, r2, r3 338 adc r2, r2, #0x00 339 RET | 102/* 103 * The main in*_cksum() workhorse... 104 * 105 * Entry parameters: 106 * r0 Pointer to buffer 107 * r1 Buffer length 108 * lr Return address 109 * --- 224 unchanged lines hidden (view full) --- 334 orreq r3, r3, r4, lsl #8 335 orreq r3, r3, r5, lsl #16 336 orrne r3, r4, r3, lsl #8 337 orrne r3, r3, r5, lsl #24 338#endif 339 adds r2, r2, r3 340 adc r2, r2, #0x00 341 RET |
342END(L_cksumdata) 343 |
|