Annotation of sys/lib/libkern/arch/sh/movstr_i4.S, Revision 1.1
1.1 ! nbrk 1: /* $NetBSD: movstr_i4.S,v 1.5 2006/05/22 21:34:08 uwe Exp $ */
! 2:
! 3: /*-
! 4: * Copyright (C) 2002 SHIMIZU Ryo. All rights reserved.
! 5: *
! 6: * Redistribution and use in source and binary forms, with or without
! 7: * modification, are permitted provided that the following conditions
! 8: * are met:
! 9: * 1. Redistributions of source code must retain the above copyright
! 10: * notice, this list of conditions and the following disclaimer.
! 11: * 2. Redistributions in binary form must reproduce the above copyright
! 12: * notice, this list of conditions and the following disclaimer in the
! 13: * documentation and/or other materials provided with the distribution.
! 14: * 3. The name of the author may not be used to endorse or promote products
! 15: * derived from this software without specific prior written permission.
! 16: *
! 17: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 18: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! 19: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 20: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
! 21: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
! 22: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
! 23: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
! 24: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
! 25: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
! 26: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
! 27: */
! 28:
! 29: #include <machine/asm.h>
! 30:
! 31:
! 32: NENTRY(__movstr_i4_odd)
! 33: add #-8,r4
! 34: nop
! 35: odd_loop:
! 36: mov.l @r5+,r0
! 37: add #8,r4
! 38: mov.l @r5+,r1
! 39: dt r6
! 40: mov.l r0,@(0,r4)
! 41: bf/s odd_loop
! 42: mov.l r1,@(4,r4)
! 43:
! 44: mov.l @r5+,r0
! 45: mov.l @r5+,r1
! 46: mov.l @r5+,r2
! 47: mov.l r0,@(8,r4)
! 48: mov.l r1,@(12,r4)
! 49: rts
! 50: mov.l r2,@(16,r4)
! 51:
! 52:
! 53: NENTRY(__movstr_i4_even)
! 54: add #-8,r4
! 55: nop
! 56: even_loop:
! 57: mov.l @r5+,r0
! 58: add #8,r4
! 59: mov.l @r5+,r1
! 60: dt r6
! 61: mov.l r0,@(0,r4)
! 62: bf/s even_loop
! 63: mov.l r1,@(4,r4)
! 64:
! 65: mov.l @r5+,r0
! 66: mov.l @r5+,r1
! 67: mov.l r0,@(8,r4)
! 68: rts
! 69: mov.l r1,@(12,r4)
! 70:
! 71:
! 72: /* gcc4 uses movmem, older versions use movstr */
! 73: _C_LABEL(__movmem_i4_odd) = _C_LABEL(__movstr_i4_odd)
! 74: _C_LABEL(__movmem_i4_even) = _C_LABEL(__movstr_i4_even)
CVSweb