Module Name: src
Committed By: joerg
Date: Tue Dec 17 01:27:21 UTC 2013
Modified Files:
src/common/lib/libc/arch/arm/string: memcpy_xscale.S
src/sys/arch/arm/arm32: bcopy_page.S locore.S
Log Message:
Write out register pairs for strd.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/common/lib/libc/arch/arm/string/memcpy_xscale.S
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/arm32/bcopy_page.S
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/arm32/locore.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/common/lib/libc/arch/arm/string/memcpy_xscale.S
diff -u src/common/lib/libc/arch/arm/string/memcpy_xscale.S:1.4 src/common/lib/libc/arch/arm/string/memcpy_xscale.S:1.5
--- src/common/lib/libc/arch/arm/string/memcpy_xscale.S:1.4 Mon Aug 19 01:08:53 2013
+++ src/common/lib/libc/arch/arm/string/memcpy_xscale.S Tue Dec 17 01:27:21 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: memcpy_xscale.S,v 1.4 2013/08/19 01:08:53 matt Exp $ */
+/* $NetBSD: memcpy_xscale.S,v 1.5 2013/12/17 01:27:21 joerg Exp $ */
/*
* Copyright 2003 Wasabi Systems, Inc.
@@ -83,52 +83,52 @@ ENTRY(memcpy)
ldr r7, [r1], #0x04 /* LD:0c-0f */
ldr r8, [r1], #0x04 /* LD:10-13 */
ldr r9, [r1], #0x04 /* LD:14-17 */
- strd r4, [r3], #0x08 /* ST:00-07 */
+ strd r4, r5, [r3], #0x08 /* ST:00-07 */
ldr r4, [r1], #0x04 /* LD:18-1b */
ldr r5, [r1], #0x04 /* LD:1c-1f */
- strd r6, [r3], #0x08 /* ST:08-0f */
+ strd r6, r7, [r3], #0x08 /* ST:08-0f */
ldr r6, [r1], #0x04 /* LD:20-23 */
ldr r7, [r1], #0x04 /* LD:24-27 */
pld [r1, #0x18] /* Prefetch 0x40 */
- strd r8, [r3], #0x08 /* ST:10-17 */
+ strd r8, r9, [r3], #0x08 /* ST:10-17 */
ldr r8, [r1], #0x04 /* LD:28-2b */
ldr r9, [r1], #0x04 /* LD:2c-2f */
- strd r4, [r3], #0x08 /* ST:18-1f */
+ strd r4, r5, [r3], #0x08 /* ST:18-1f */
ldr r4, [r1], #0x04 /* LD:30-33 */
ldr r5, [r1], #0x04 /* LD:34-37 */
- strd r6, [r3], #0x08 /* ST:20-27 */
+ strd r6, r7, [r3], #0x08 /* ST:20-27 */
ldr r6, [r1], #0x04 /* LD:38-3b */
ldr r7, [r1], #0x04 /* LD:3c-3f */
- strd r8, [r3], #0x08 /* ST:28-2f */
+ strd r8, r9, [r3], #0x08 /* ST:28-2f */
ldr r8, [r1], #0x04 /* LD:40-43 */
ldr r9, [r1], #0x04 /* LD:44-47 */
pld [r1, #0x18] /* Prefetch 0x60 */
- strd r4, [r3], #0x08 /* ST:30-37 */
+ strd r4, r5, [r3], #0x08 /* ST:30-37 */
ldr r4, [r1], #0x04 /* LD:48-4b */
ldr r5, [r1], #0x04 /* LD:4c-4f */
- strd r6, [r3], #0x08 /* ST:38-3f */
+ strd r6, r7, [r3], #0x08 /* ST:38-3f */
ldr r6, [r1], #0x04 /* LD:50-53 */
ldr r7, [r1], #0x04 /* LD:54-57 */
- strd r8, [r3], #0x08 /* ST:40-47 */
+ strd r8, r9, [r3], #0x08 /* ST:40-47 */
ldr r8, [r1], #0x04 /* LD:58-5b */
ldr r9, [r1], #0x04 /* LD:5c-5f */
- strd r4, [r3], #0x08 /* ST:48-4f */
+ strd r4, r5, [r3], #0x08 /* ST:48-4f */
ldr r4, [r1], #0x04 /* LD:60-63 */
ldr r5, [r1], #0x04 /* LD:64-67 */
pld [r1, #0x18] /* Prefetch 0x80 */
- strd r6, [r3], #0x08 /* ST:50-57 */
+ strd r6, r7, [r3], #0x08 /* ST:50-57 */
ldr r6, [r1], #0x04 /* LD:68-6b */
ldr r7, [r1], #0x04 /* LD:6c-6f */
- strd r8, [r3], #0x08 /* ST:58-5f */
+ strd r8, r9, [r3], #0x08 /* ST:58-5f */
ldr r8, [r1], #0x04 /* LD:70-73 */
ldr r9, [r1], #0x04 /* LD:74-77 */
- strd r4, [r3], #0x08 /* ST:60-67 */
+ strd r4, r5, [r3], #0x08 /* ST:60-67 */
ldr r4, [r1], #0x04 /* LD:78-7b */
ldr r5, [r1], #0x04 /* LD:7c-7f */
- strd r6, [r3], #0x08 /* ST:68-6f */
- strd r8, [r3], #0x08 /* ST:70-77 */
+ strd r6, r7, [r3], #0x08 /* ST:68-6f */
+ strd r8, r9, [r3], #0x08 /* ST:70-77 */
subs r2, r2, #0x80
- strd r4, [r3], #0x08 /* ST:78-7f */
+ strd r4, r5, [r3], #0x08 /* ST:78-7f */
bge .Lmemcpy_w_loop128
.Lmemcpy_w_lessthan128:
@@ -147,13 +147,13 @@ ENTRY(memcpy)
ldr r7, [r1], #0x04
ldr r8, [r1], #0x04
ldr r9, [r1], #0x04
- strd r4, [r3], #0x08
+ strd r4, r5, [r3], #0x08
ldr r4, [r1], #0x04
ldr r5, [r1], #0x04
- strd r6, [r3], #0x08
- strd r8, [r3], #0x08
+ strd r6, r7, [r3], #0x08
+ strd r8, r9, [r3], #0x08
subs r2, r2, #0x20
- strd r4, [r3], #0x08
+ strd r4, r5, [r3], #0x08
bge .Lmemcpy_w_loop32
.Lmemcpy_w_lessthan32:
@@ -170,19 +170,19 @@ ENTRY(memcpy)
ldr r4, [r1], #0x04
ldr r5, [r1], #0x04
sub r2, r2, #0x08
- strd r4, [r3], #0x08
+ strd r4, r5, [r3], #0x08
/* At least 16 bytes remaining */
ldr r4, [r1], #0x04
ldr r5, [r1], #0x04
sub r2, r2, #0x08
- strd r4, [r3], #0x08
+ strd r4, r5, [r3], #0x08
/* At least 8 bytes remaining */
ldr r4, [r1], #0x04
ldr r5, [r1], #0x04
subs r2, r2, #0x08
- strd r4, [r3], #0x08
+ strd r4, r5, [r3], #0x08
/* Less than 8 bytes remaining */
pop {r4-r9}
Index: src/sys/arch/arm/arm32/bcopy_page.S
diff -u src/sys/arch/arm/arm32/bcopy_page.S:1.9 src/sys/arch/arm/arm32/bcopy_page.S:1.10
--- src/sys/arch/arm/arm32/bcopy_page.S:1.9 Sun Aug 18 06:29:29 2013
+++ src/sys/arch/arm/arm32/bcopy_page.S Tue Dec 17 01:27:21 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: bcopy_page.S,v 1.9 2013/08/18 06:29:29 matt Exp $ */
+/* $NetBSD: bcopy_page.S,v 1.10 2013/12/17 01:27:21 joerg Exp $ */
/*
* Copyright (c) 1995 Scott Stevens
@@ -193,56 +193,56 @@ ENTRY(bcopy_page)
1: pld [r0, #0x18] /* Prefetch 0x20 */
ldr r4, [r0], #0x04 /* 0x08 */
ldr r5, [r0], #0x04 /* 0x0c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x10 */
ldr r3, [r0], #0x04 /* 0x14 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x18 */
ldr r5, [r0], #0x04 /* 0x1c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x20 */
ldr r3, [r0], #0x04 /* 0x24 */
pld [r0, #0x18] /* Prefetch 0x40 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x28 */
ldr r5, [r0], #0x04 /* 0x2c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x30 */
ldr r3, [r0], #0x04 /* 0x34 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x38 */
ldr r5, [r0], #0x04 /* 0x3c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x40 */
ldr r3, [r0], #0x04 /* 0x44 */
pld [r0, #0x18] /* Prefetch 0x60 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x48 */
ldr r5, [r0], #0x04 /* 0x4c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x50 */
ldr r3, [r0], #0x04 /* 0x54 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x58 */
ldr r5, [r0], #0x04 /* 0x5c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x60 */
ldr r3, [r0], #0x04 /* 0x64 */
pld [r0, #0x18] /* Prefetch 0x80 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x68 */
ldr r5, [r0], #0x04 /* 0x6c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
ldr r2, [r0], #0x04 /* 0x70 */
ldr r3, [r0], #0x04 /* 0x74 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
ldr r4, [r0], #0x04 /* 0x78 */
ldr r5, [r0], #0x04 /* 0x7c */
- strd r2, [r1], #0x08
+ strd r2, r3, [r1], #0x08
subs ip, ip, #0x01
ldrgt r2, [r0], #0x04 /* 0x80 */
ldrgt r3, [r0], #0x04 /* 0x84 */
- strd r4, [r1], #0x08
+ strd r4, r5, [r1], #0x08
bgt 1b
pop {r4, r5}
RET
@@ -255,22 +255,22 @@ ENTRY(bzero_page)
mov r1, #PAGE_SIZE
mov r2, #0
mov r3, #0
-1: strd r2, [r0], #8 /* 32 */
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8 /* 64 */
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8 /* 96 */
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8 /* 128 */
- strd r2, [r0], #8
- strd r2, [r0], #8
- strd r2, [r0], #8
+1: strd r2, r3, [r0], #8 /* 32 */
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8 /* 64 */
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8 /* 96 */
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8 /* 128 */
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
+ strd r2, r3, [r0], #8
subs r1, r1, #128
bne 1b
RET
Index: src/sys/arch/arm/arm32/locore.S
diff -u src/sys/arch/arm/arm32/locore.S:1.34 src/sys/arch/arm/arm32/locore.S:1.35
--- src/sys/arch/arm/arm32/locore.S:1.34 Sun Dec 1 02:54:33 2013
+++ src/sys/arch/arm/arm32/locore.S Tue Dec 17 01:27:21 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.34 2013/12/01 02:54:33 joerg Exp $ */
+/* $NetBSD: locore.S,v 1.35 2013/12/17 01:27:21 joerg Exp $ */
/*
* Copyright (C) 1994-1997 Mark Brinicombe
@@ -40,7 +40,7 @@
/* What size should this really be ? It is only used by init_arm() */
#define INIT_ARM_STACK_SIZE 2048
- RCSID("$NetBSD: locore.S,v 1.34 2013/12/01 02:54:33 joerg Exp $")
+ RCSID("$NetBSD: locore.S,v 1.35 2013/12/17 01:27:21 joerg Exp $")
/*
* This is for kvm_mkdb, and should be the address of the beginning
@@ -218,9 +218,9 @@ ENTRY(dumpsys)
add r2, r0, #(PCB_R8)
stmia r2, {r8-r13}
#else
- strd r8, [r0, #(PCB_R8)]
- strd r10, [r0, #(PCB_R10)]
- strd r12, [r0, #(PCB_R12)]
+ strd r8, r9, [r0, #(PCB_R8)]
+ strd r10, r11, [r0, #(PCB_R10)]
+ strd r12, r13, [r0, #(PCB_R12)]
#endif
bl _C_LABEL(dodumpsys)