Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/arch/hppa G/C bcopy.m4 and references to it.



details:   https://anonhg.NetBSD.org/src/rev/7fe28d977b1a
branches:  trunk
changeset: 748353:7fe28d977b1a
user:      skrll <skrll%NetBSD.org@localhost>
date:      Wed Oct 21 19:30:46 2009 +0000

description:
G/C bcopy.m4 and references to it.

diffstat:

 lib/libc/arch/hppa/Makefile.inc    |    8 +-
 lib/libc/arch/hppa/string/bcopy.m4 |  274 -------------------------------------
 2 files changed, 1 insertions(+), 281 deletions(-)

diffs (296 lines):

diff -r 4b57d03ea18a -r 7fe28d977b1a lib/libc/arch/hppa/Makefile.inc
--- a/lib/libc/arch/hppa/Makefile.inc   Wed Oct 21 18:04:52 2009 +0000
+++ b/lib/libc/arch/hppa/Makefile.inc   Wed Oct 21 19:30:46 2009 +0000
@@ -1,13 +1,7 @@
-#      $NetBSD: Makefile.inc,v 1.8 2008/10/26 07:43:07 mrg Exp $
+#      $NetBSD: Makefile.inc,v 1.9 2009/10/21 19:30:46 skrll Exp $
 
 #      $OpenBSD: Makefile.inc,v 1.3 1999/12/25 06:02:10 mickey Exp $
 
 SRCS+= __sigaction14_sigtramp.c __sigtramp2.S
 
-#SRCS+=        memmove.S
-#CLEANFILES+=  memmove.S
 SRCS+= bcopy.c
-
-#memmove.S:    ${LIBCDIR}/arch/hppa/string/bcopy.m4
-#      @echo 'building ${.TARGET} from ${.ALLSRC}'
-#      @m4 -DNAME=bcopy ${.ALLSRC} > ${.TARGET}
diff -r 4b57d03ea18a -r 7fe28d977b1a lib/libc/arch/hppa/string/bcopy.m4
--- a/lib/libc/arch/hppa/string/bcopy.m4        Wed Oct 21 18:04:52 2009 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-define(__rcsid,``$NetBSD: bcopy.m4,v 1.1 2002/06/06 20:31:22 fredette Exp $'')dnl
-dnl
-define(_rcsid,``$OpenBSD: bcopy.m4,v 1.5 2001/09/20 18:34:52 mickey Exp $'')dnl
-dnl
-dnl
-dnl  This is the source file for bcopy.S, spcopy.S
-dnl
-dnl
-define(`versionmacro',substr(_rcsid,1,eval(len(_rcsid)-2)))dnl
-dnl
-/* This is a generated file. DO NOT EDIT. */
-/*
- * Generated from:
- *
- *     versionmacro
- */
-/*
- * Copyright (c) 1999 Michael Shalayeff
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed by Michael Shalayeff.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-dnl
-dnl    macro: L(`arg1',`arg2')
-dnl synopsis: creates an assembly label based on args resulting in $arg1.arg2
-dnl
-define(`L', `$$1.$2')dnl
-dnl
-dnl
-dnl
-define(`STWS',`ifelse($5, `u',dnl
-`ifelse($1, `1', `vshd $4, t`$1', r31
-       stbys,B,m r31, F`'4($2, $3)',
-`0', `0', `vshd        t`'decr($1), t`$1', r31
-       stws,M  r31, F`'4($2, $3)')',dnl
-`0', `0',
-`ifelse($1, `1',
-`stbys,B`'ifelse(B, `b', `,m ', `0', `0', `    ')`'t`$1', F`'4($2, $3)',
-`0', `0', `stws,M      t`$1', F`'4($2, $3)')')')dnl
-define(`STWSS', `ifelse(`$3', `1', `dnl',
-`0', `0', `STWSS($1, $2, eval($3 - 1), $4, $5)')
-       STWS($3, $1, $2, $4, $5)dnl
-')dnl
-define(`LDWSS', `ifelse(`$3', `1', `dnl',
-`0', `0', `LDWSS($1, $2, eval($3 - 1))')
-       ldws,M  F`'4($1, $2), t`'$3`'dnl
-')dnl
-dnl
-dnl copy data in 4-words blocks
-dnl
-define(`hppa_blcopy',`
-       addi    -16, $6, $6
-L($1, `loop16'`$7')
-dnl    cache hint may not work on some hardware
-dnl    ldw     F 32($2, $3), r0
-ifelse(F, `-', `dnl
-       addi    F`'4, $5, $5', `0', `0', `dnl')
-LDWSS($2, $3, 4)
-STWSS($4, $5, 3, `ret1', $7)
-ifelse($7, `u', `dnl
-       STWS(4, $4, $5, `ret1', $7)', $7, `a', `dnl')
-       addib,>= -16, $6, L($1, `loop16'`$7')
-ifelse($7, `a', `dnl
-       STWS(4, $4, $5, `ret1', $7)dnl
-', $7, `u', `dnl
-       copy    t4, ret1')')dnl
-dnl
-dnl copy in words
-dnl
-define(`STWL', `addib,<,n 12, $6, L($1, cleanup)
-ifelse($7, `u', `      copy    ret1, t1', $7, `a', `dnl')
-L($1, word)
-       ldws,M  F`'4($2, $3), t1
-       addib,>= -4, $6, L($1, word)
-       stws,M  t1, F`'4($4, $5)
-
-L($1, cleanup)
-       addib,=,n 4, $6, L($1, done)
-       ldws    0($2, $3), t1
-       add     $5, $6, $5
-       bv      r0(rp)
-       stbys,E t1, 0($4, $5)
-')
-dnl
-dnl
-dnl parameters:
-dnl  $1        name
-dnl  $2        source space
-dnl  $3        source address
-dnl  $4        destination space
-dnl  $5        destination address
-dnl  $6        length
-dnl  $7        direction
-dnl
-define(hppa_copy,
-`dnl
-dnl
-dnl    if direction is `-' (backwards copy), adjust src, dst
-dnl
-ifelse($7,`-', `add    $3, $6, $3
-       add     $5, $6, $5
-define(`F', `-')dnl
-define(`R', `')dnl
-define(`M', `mb')dnl
-define(`B', `e')dnl
-define(`E', `b')dnl
-',dnl ifelse
-`0',`0',
-`define(`F', `')dnl
-define(`R', `-')dnl
-define(`M', `ma')dnl
-define(`B', `b')dnl
-define(`E', `e')dnl
-')dnl ifelse
-
-ifelse($7,`-', `', `0',`0',
-`      comib,>=,n 15, $6, L($1, byte)
-
-       extru   $3, 31, 2, t3
-       extru   $5, 31, 2, t4
-       add     $6, t4, $6
-       comb,<> t3, t4, L($1, unaligned)
-       dep     r0, 31, 2, $3
-       hppa_blcopy($1, $2, $3, $4, $5, $6, `a')
-
-       STWL($1, $2, $3, $4, $5, $6, `a')dnl
-
-L($1, unaligned)
-       sub,>=  t4, t3, t2
-       ldwm    F`'4($2, $3), ret1
-       zdep    t2, 28, 29, t1
-       mtsar   t1
-       hppa_blcopy($1, $2, $3, $4, $5, $6, `u')
-
-dnl    STWL($1, $2, $3, $4, $5, $6, `u')
-       addib,<,n 12, $6, L($1, cleanup_un)
-L($1, word_un)
-       ldws,M  F`'4($2, $3), t1
-       vshd    ret1, t1, t2
-       addib,< -4, $6, L($1, cleanup1_un)
-       stws,M  t2, F`'4($4, $5)
-       ldws,M  F`'4($2, $3), ret1
-       vshd    t1, ret1, t2
-       addib,>= -4, $6, L($1, word_un)
-       stws,M  t2, F`'4($4, $5)
-
-L($1, cleanup_un)
-       addib,<=,n 4, $6, L($1, done)
-       mfctl   sar, t4
-       add     $5, $6, $5
-       extru   t4, 28, 2, t4
-       sub,<=  $6, t4, r0
-       ldws,M  F`'4($2, $3), t1
-       vshd    ret1, t1, t2
-       bv      r0(rp)
-       stbys,E t2, 0($4, $5)
-
-L($1, cleanup1_un)
-       b       L($1, cleanup_un)
-       copy    t1, ret1
-')dnl ifelse
-
-L($1, byte)
-       comb,>=,n r0, $6, L($1, done)
-L($1, byte_loop)
-       ldbs,M  F`'1($2, $3), t1
-       addib,<> -1, $6, L($1, byte_loop)
-       stbs,M  t1, F`'1($4, $5)
-L($1, done)
-')dnl
-`
-#undef _LOCORE
-#define _LOCORE
-#include <machine/asm.h>
-#include <machine/frame.h>
-'
-ifelse(NAME, `bcopy',
-`
-#if defined(LIBC_SCCS)
-       .text
-       .asciz "versionmacro"
-       .align  4
-#endif
-
-LEAF_ENTRY(memcpy)
-ALTENTRY(memmove)
-       copy    arg0, t1
-       copy    arg1, arg0
-       copy    t1, arg1
-ALTENTRY(ovbcopy)
-ALTENTRY(bcopy)
-ALTENTRY(mycopy)
-       add     arg0, arg2, t1
-       comb,>>=,n arg0, arg1, 0
-       comb,>,n t1, arg1, L(bcopy, reverse)
-       hppa_copy(bcopy_f, sr0, arg0, sr0, arg1, arg2, `+')
-       b,n     L(bcopy, ret)
-L(bcopy, reverse)
-       hppa_copy(bcopy_r, sr0, arg0, sr0, arg1, arg2, `-')
-L(bcopy, ret)
-       bv      0(rp)
-       nop
-EXIT(memcpy)
-')dnl
-dnl
-ifelse(NAME, `spcopy',
-`
-#ifdef _KERNEL
-#include <assym.h>
-
-/*
- * int spcopy (pa_space_t ssp, const void *src, pa_space_t dsp, void *dst,
- *              size_t size)
- * do a space to space bcopy.
- *
- * assumed that spaces do not clash, otherwise we loose
- */
-       .import curproc, data
-       .import copy_on_fault, code
-LEAF_ENTRY(spcopy)
-       ldw     HPPA_FRAME_ARG(4)(sp), ret1
-       comb,>=,n r0, ret1, L(spcopy, ret)
-`
-       /* setup fault handler */
-       ldil    L%curproc, r31
-       ldw     R%curproc(r31), r31
-       ldil    L%copy_on_fault, t2
-       ldw     P_ADDR(r31), r31
-       ldo     R%copy_on_fault(t2), t2
-       stw     t2, PCB_ONFAULT+U_PCB(r31)
-'
-       mfsp    sr2, ret0       /* XXX need this?, sr1 is scratchable */
-       mtsp    arg0, sr1
-       mtsp    arg2, sr2
-       copy    ret1, arg0      /* ret1 is used in hppa`'_blcopy() */
-
-       hppa_copy(spcopy, sr1, arg1, sr2, arg3, ret1, `+')
-
-       /* reset fault handler */
-       stw     r0, PCB_ONFAULT+U_PCB(r31)
-       mtsp    ret0, sr2
-L(spcopy, ret)
-       bv      0(rp)
-       copy    r0, ret0
-EXIT(spcopy)
-#endif
-')dnl
-
-       .end



Home | Main Index | Thread Index | Old Index