Module Name: src
Committed By: joerg
Date: Thu Dec 19 23:48:44 UTC 2013
Modified Files:
src/sys/arch/arm/arm: cpu_in_cksum.S
Log Message:
Use explicit register pairs as arguments for ldrd.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/arm/cpu_in_cksum.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/arm/cpu_in_cksum.S
diff -u src/sys/arch/arm/arm/cpu_in_cksum.S:1.6 src/sys/arch/arm/arm/cpu_in_cksum.S:1.7
--- src/sys/arch/arm/arm/cpu_in_cksum.S:1.6 Sun Aug 18 15:58:19 2013
+++ src/sys/arch/arm/arm/cpu_in_cksum.S Thu Dec 19 23:48:44 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu_in_cksum.S,v 1.6 2013/08/18 15:58:19 matt Exp $ */
+/* $NetBSD: cpu_in_cksum.S,v 1.7 2013/12/19 23:48:44 joerg Exp $ */
/*
* Copyright 2003 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
*/
#include <machine/asm.h>
-RCSID("$NetBSD: cpu_in_cksum.S,v 1.6 2013/08/18 15:58:19 matt Exp $")
+RCSID("$NetBSD: cpu_in_cksum.S,v 1.7 2013/12/19 23:48:44 joerg Exp $")
#include "assym.h"
@@ -227,37 +227,37 @@ ASENTRY_NP(.L_cksumdata)
* setting r6 to zero to avoid stalling for results in the
* loop. (r7 is live, from above).
*/
- ldrd r4, [r0], #0x08
+ ldrd r4, r5, [r0], #0x08
mov r6, #0x00
.Lcksumdata_bigloop:
pld [r0, #0x18]
adds r2, r2, r6
adcs r2, r2, r7
- ldrd r6, [r0], #0x08
+ ldrd r6, r7, [r0], #0x08
adcs r2, r2, r4
adcs r2, r2, r5
- ldrd r4, [r0], #0x08
+ ldrd r4, r5, [r0], #0x08
adcs r2, r2, r6
adcs r2, r2, r7
- ldrd r6, [r0], #0x08
+ ldrd r6, r7, [r0], #0x08
adcs r2, r2, r4
adcs r2, r2, r5
- ldrd r4, [r0], #0x08
+ ldrd r4, r5, [r0], #0x08
adcs r2, r2, r6
adcs r2, r2, r7
pld [r0, #0x18]
- ldrd r6, [r0], #0x08
+ ldrd r6, r7, [r0], #0x08
adcs r2, r2, r4
adcs r2, r2, r5
- ldrd r4, [r0], #0x08
+ ldrd r4, r5, [r0], #0x08
adcs r2, r2, r6
adcs r2, r2, r7
- ldrd r6, [r0], #0x08
+ ldrd r6, r7, [r0], #0x08
adcs r2, r2, r4
adcs r2, r2, r5
adcs r2, r2, #0x00
subs r1, r1, #0x40
- ldrdge r4, [r0], #0x08
+ ldrdge r4, r5, [r0], #0x08
bge .Lcksumdata_bigloop
adds r2, r2, r6 /* r6/r7 still need summing */
@@ -306,16 +306,16 @@ ASENTRY_NP(.L_cksumdata)
cmp r1, #0x20
#ifdef __XSCALE__
- ldrdge r4, [r0], #0x08 /* Avoid stalling pld and result */
+ ldrdge r4, r5, [r0], #0x08 /* Avoid stalling pld and result */
blt .Lcksumdata_less_than_32
pld [r0, #0x18]
- ldrd r6, [r0], #0x08
+ ldrd r6, r7, [r0], #0x08
adds r2, r2, r4
adcs r2, r2, r5
- ldrd r4, [r0], #0x08
+ ldrd r4, r5, [r0], #0x08
adcs r2, r2, r6
adcs r2, r2, r7
- ldrd r6, [r0], #0x08
+ ldrd r6, r7, [r0], #0x08
adcs r2, r2, r4
adcs r2, r2, r5
adcs r2, r2, r6 /* XXX: Unavoidable result stall */