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)