1*69d758b4SAndrew Turner/* 2*69d758b4SAndrew Turner * Copyright (C) 2013 Andrew Turner 3*69d758b4SAndrew Turner * All rights reserved. 4*69d758b4SAndrew Turner * 5*69d758b4SAndrew Turner * Redistribution and use in source and binary forms, with or without 6*69d758b4SAndrew Turner * modification, are permitted provided that the following conditions 7*69d758b4SAndrew Turner * are met: 8*69d758b4SAndrew Turner * 1. Redistributions of source code must retain the above copyright 9*69d758b4SAndrew Turner * notice, this list of conditions and the following disclaimer. 10*69d758b4SAndrew Turner * 2. Redistributions in binary form must reproduce the above copyright 11*69d758b4SAndrew Turner * notice, this list of conditions and the following disclaimer in the 12*69d758b4SAndrew Turner * documentation and/or other materials provided with the distribution. 13*69d758b4SAndrew Turner * 14*69d758b4SAndrew Turner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*69d758b4SAndrew Turner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*69d758b4SAndrew Turner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*69d758b4SAndrew Turner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*69d758b4SAndrew Turner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*69d758b4SAndrew Turner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*69d758b4SAndrew Turner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*69d758b4SAndrew Turner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*69d758b4SAndrew Turner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*69d758b4SAndrew Turner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*69d758b4SAndrew Turner * SUCH DAMAGE. 25*69d758b4SAndrew Turner * 26*69d758b4SAndrew Turner */ 27*69d758b4SAndrew Turner 28*69d758b4SAndrew Turner#include <machine/asm.h> 29*69d758b4SAndrew Turner/* 30*69d758b4SAndrew Turner * This implements 31*69d758b4SAndrew Turner * void __aeabi_memset(void *dest, size_t len, int c) 32*69d758b4SAndrew Turner * by calling: 33*69d758b4SAndrew Turner * void *memset(dest, c, len) 34*69d758b4SAndrew Turner * 35*69d758b4SAndrew Turner * The arguments are in r0-r2, r3 can be used as a scratch register. 36*69d758b4SAndrew Turner */ 37*69d758b4SAndrew TurnerENTRY_NP(__aeabi_memset) 38*69d758b4SAndrew Turner mov r3, r2 39*69d758b4SAndrew Turner mov r2, r1 40*69d758b4SAndrew Turner mov r1, r3 41*69d758b4SAndrew Turner b memset 42*69d758b4SAndrew TurnerEND(__aeabi_memset) 43