Date: Wed, 25 Jun 2014 11:07:35 GMT From: estaszuk@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r270015 - in soc2014/estaszuk/microblaze-head/head: . etc/etc.microblaze lib/csu/microblaze lib/libc/microblaze lib/libc/microblaze/aeabi lib/libc/microblaze/gen lib/libc/microblaze/... Message-ID: <201406251107.s5PB7Ze4050608@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: estaszuk Date: Wed Jun 25 11:07:33 2014 New Revision: 270015 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=270015 Log: Adding microblaze to directory tree Added: soc2014/estaszuk/microblaze-head/head/etc/etc.microblaze/ soc2014/estaszuk/microblaze-head/head/etc/etc.microblaze/ttys soc2014/estaszuk/microblaze-head/head/lib/csu/microblaze/ soc2014/estaszuk/microblaze-head/head/lib/csu/microblaze/ADDDIR soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Makefile.inc soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/SYS.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Symbol.map soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Symbol_oabi.map soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/_fpmath.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/Makefile.inc soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/Symbol.map soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_atexit.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_double.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_float.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_unwind_cpp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp_double.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp_float.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/arith.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gd_qnan.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/Makefile.inc soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/__aeabi_read_tp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/_ctx_start.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/_set_tp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/_setjmp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/alloca.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/arm_initfini.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/divsi3.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fabs.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/flt_rounds.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fpgetmask_vfp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fpgetround_vfp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fpgetsticky_vfp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fpsetmask_vfp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fpsetround_vfp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/fpsetsticky_vfp.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/getcontextx.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/infinity.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/makecontext.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/setjmp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/signalcontext.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/gen/sigsetjmp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/softfloat/ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/softfloat/arm-gcc.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/softfloat/milieu.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/softfloat/softfloat.h soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/Makefile.inc soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/bcopy.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/bzero.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/ffs.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/memcmp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/memcpy.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/memcpy_arm.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/memcpy_xscale.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/memmove.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/memset.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/strcmp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/strlen.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/string/strncmp.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/Makefile.inc soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/Ovfork.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/__vdso_gettc.c soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/brk.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/cerror.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/fork.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/pipe.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/ptrace.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/sbrk.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/shmat.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/sigreturn.S soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/sys/syscall.S soc2014/estaszuk/microblaze-head/head/src.conf soc2014/estaszuk/microblaze-head/head/src.conf2 soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/ soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/aeabi_unwind.c soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/divsi3.S soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/ffs.S soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/ldivmod.S soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/ldivmod_helper.c soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/memcpy.S soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/memset.S soc2014/estaszuk/microblaze-head/head/sys/libkern/microblaze/muldi3.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/conf/MICROBLAZEDEF soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/ soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/_align.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/_bus.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/_limits.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/_stdint.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/_types.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/armreg.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/asm.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/asmacros.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/atags.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/atomic.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/bootconfig.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/bus.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/bus_dma.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/clock.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/counter.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/cpu.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/cpuconf.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/cpufunc.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/db_machdep.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/devmap.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/disassem.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/elf.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/endian.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/exec.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/fiq.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/fp.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/frame.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/in_cksum.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/intr.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/kdb.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/machdep.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/md_var.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/memdev.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/metadata.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/minidump.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/param.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/pcb.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/pcpu.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/physmem.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/platform.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/pmap.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/pmc_mdep.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/proc.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/profile.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/psl.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/pte.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/ptrace.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/reg.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/resource.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/runq.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/setjmp.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/sf_buf.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/signal.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/smp.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/stack.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/stdarg.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/swi.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/sysarch.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/trap.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/ucontext.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/undefined.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/utrap.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/vdso.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/vfp.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/vm.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/include/vmparam.h soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/ soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/autoconf.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/bcopy_page.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/bcopyinout.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/blockio.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/bootconfig.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/bus_space_asm_generic.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/copystr.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/cpufunc.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/cpufunc_asm.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/cpufunc_asm_armv4.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/devmap.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/dump_machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/elf_machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/exception.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/files.microblaze soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/fiq.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/fiq_subr.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/fusu.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/genassym.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/identcpu.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/intr.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/locore.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/mem.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/minidump_machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/nexus.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/physmem.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/setcpsr.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/setstack.s soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/stack_machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/std.microblaze soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/stdatomic.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/support.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/swtch.S soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/sys_machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/trap.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/uio_machdep.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/undefined.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/vfp.c soc2014/estaszuk/microblaze-head/head/sys/microblaze/microblaze/vm_machdep.c soc2014/estaszuk/microblaze-head/head/usr.bin/Makefile.microblaze Added: soc2014/estaszuk/microblaze-head/head/etc/etc.microblaze/ttys ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/etc/etc.microblaze/ttys Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,49 @@ +# +# $FreeBSD$ +# @(#)ttys 5.1 (Berkeley) 4/17/89 +# +# This file specifies various information about terminals on the system. +# It is used by several different programs. Common entries for the +# various columns include: +# +# name The name of the terminal device. +# +# getty The program to start running on the terminal. Typically a +# getty program, as the name implies. Other common entries +# include none, when no getty is needed, and xdm, to start the +# X Window System. +# +# type The initial terminal type for this port. For hardwired +# terminal lines, this will contain the type of terminal used. +# For virtual consoles, the correct type is typically xterm. +# Other common values include dialup for incoming modem ports, and +# unknown when the terminal type cannot be predetermined. +# +# status Must be on or off. If on, init will run the getty program on +# the specified port. If the word "secure" appears, this tty +# allows root login. +# +# name getty type status comments +# +# If console is marked "insecure", then init will ask for the root password +# when going to single-user mode. +console none unknown off secure +# +ttyv0 "/usr/libexec/getty Pc" xterm off secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" xterm off secure +ttyv2 "/usr/libexec/getty Pc" xterm off secure +ttyv3 "/usr/libexec/getty Pc" xterm off secure +ttyv4 "/usr/libexec/getty Pc" xterm off secure +ttyv5 "/usr/libexec/getty Pc" xterm off secure +ttyv6 "/usr/libexec/getty Pc" xterm off secure +ttyv7 "/usr/libexec/getty Pc" xterm off secure +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure +# Serial terminals +# The 'dialup' keyword identifies dialin lines to login, fingerd etc. +ttyu0 "/usr/libexec/getty 3wire" vt100 on secure +ttyu1 "/usr/libexec/getty std.9600" dialup off secure +ttyu2 "/usr/libexec/getty std.9600" dialup off secure +ttyu3 "/usr/libexec/getty std.9600" dialup off secure +# Dumb console +dcons "/usr/libexec/getty std.9600" vt100 off secure Added: soc2014/estaszuk/microblaze-head/head/lib/csu/microblaze/ADDDIR ============================================================================== Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Makefile.inc Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,18 @@ +# $FreeBSD$ +# +# Machine dependent definitions for the arm architecture. +# + +SOFTFLOAT_BITS=32 + +# Long double is just double precision. +MDSRCS+=machdep_ldisd.c +SYM_MAPS+=${LIBC_SRCTOP}/arm/Symbol.map + +.if ${MK_ARM_EABI} == "no" +# This contains the symbols that were removed when moving to the ARM EABI +SYM_MAPS+=${LIBC_SRCTOP}/microblaze/Symbol_oabi.map +.else +.include "${LIBC_SRCTOP}/microblaze/aeabi/Makefile.inc" +.endif + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/SYS.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/SYS.h Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,82 @@ +/* $NetBSD: SYS.h,v 1.8 2003/08/07 16:42:02 agc Exp $ */ + +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * 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. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. + * + * from: @(#)SYS.h 5.5 (Berkeley) 5/7/91 + * $FreeBSD$ + */ + +#include <machine/asm.h> +#include <sys/syscall.h> +#include <machine/swi.h> + +#ifdef __ARM_EABI__ +#define SYSTRAP(x) \ + mov ip, r7; \ + ldr r7, =SYS_ ## x; \ + swi 0; \ + mov r7, ip +#else +#define SYSTRAP(x) swi 0 | SYS_ ## x +#endif + +#define CERROR _C_LABEL(cerror) +#define CURBRK _C_LABEL(curbrk) + +#define _SYSCALL_NOERROR(x) \ + ENTRY(__CONCAT(__sys_, x)); \ + .weak _C_LABEL(x); \ + .set _C_LABEL(x), _C_LABEL(__CONCAT(__sys_,x)); \ + .weak _C_LABEL(__CONCAT(_,x)); \ + .set _C_LABEL(__CONCAT(_,x)),_C_LABEL(__CONCAT(__sys_,x)); \ + SYSTRAP(x) + +#define _SYSCALL(x) \ + _SYSCALL_NOERROR(x); \ + bcs PIC_SYM(CERROR, PLT) + +#define SYSCALL(x) \ + _SYSCALL(x) + +#define PSEUDO(x) \ + ENTRY(__CONCAT(__sys_, x)); \ + .weak _C_LABEL(__CONCAT(_,x)); \ + .set _C_LABEL(__CONCAT(_,x)),_C_LABEL(__CONCAT(__sys_,x)); \ + SYSTRAP(x); \ + bcs PIC_SYM(CERROR, PLT); \ + RET + +#define RSYSCALL(x) \ + _SYSCALL(x); \ + RET + + .globl CERROR Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Symbol.map ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Symbol.map Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,81 @@ +/* + * $FreeBSD$ + */ + +/* + * This only needs to contain symbols that are not listed in + * symbol maps from other parts of libc (i.e., not found in + * stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...). + */ +FBSD_1.0 { + /* PSEUDO syscalls */ + _exit; + + __mcount; + _setjmp; + _longjmp; + alloca; + fabs; + __infinity; + __nan; + makecontext; + setjmp; + longjmp; + sigsetjmp; + siglongjmp; + htonl; + htons; + ntohl; + ntohs; + vfork; + brk; + cerror; /* XXX - Should this be .cerror (see sys/cerror.S)? */ + sbrk; +}; + +FBSD_1.3 { + __flt_rounds; +}; + +FBSDprivate_1.0 { + /* PSEUDO syscalls */ + __sys_getlogin; + _getlogin; + __sys_exit; + + _set_tp; + __aeabi_read_tp; + ___longjmp; + __makecontext; + __longjmp; + signalcontext; + _signalcontext; + __siglongjmp; + __sys_vfork; + _vfork; + _brk; + _end; + curbrk; + minbrk; + _sbrk; + + /* softfloat */ + __addsf3; + __adddf3; + __subsf3; + __subdf3; + __mulsf3; + __muldf3; + __divsf3; + __divdf3; + __floatsisf; + __floatsidf; + __fixsfsi; + __fixdfsi; + __fixunssfsi; + __fixunsdfsi; + __extendsfdf2; + __truncdfsf2; + + _libc_arm_fpu_present; +}; Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Symbol_oabi.map ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/Symbol_oabi.map Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,16 @@ +/* + * $FreeBSD$ + */ + +/* + * This only needs to contain symbols that are not listed in + * symbol maps from other parts of libc (i.e., not found in + * stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...) + * and are not used in the ARM EABI. + */ +FBSDprivate_1.0 { + __umodsi3; + __modsi3; + __udivsi3; + __divsi3; +}; Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/_fpmath.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/_fpmath.h Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2002, 2003 David Schultz <das@FreeBSD.ORG> + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + * $FreeBSD$ + */ + +#if defined(__VFP_FP__) || defined(__ARM_EABI__) +#define _IEEE_WORD_ORDER _BYTE_ORDER +#else +#define _IEEE_WORD_ORDER _BIG_ENDIAN +#endif + +union IEEEl2bits { + long double e; + struct { +#if _BYTE_ORDER == _LITTLE_ENDIAN +#if _IEEE_WORD_ORDER == _LITTLE_ENDIAN + unsigned int manl :32; +#endif + unsigned int manh :20; + unsigned int exp :11; + unsigned int sign :1; +#if _IEEE_WORD_ORDER == _BIG_ENDIAN + unsigned int manl :32; +#endif +#else /* _BYTE_ORDER == _LITTLE_ENDIAN */ + unsigned int sign :1; + unsigned int exp :11; + unsigned int manh :20; + unsigned int manl :32; +#endif + } bits; +}; + +#define LDBL_NBIT 0 +#define LDBL_IMPLICIT_NBIT +#define mask_nbit_l(u) ((void)0) + +#define LDBL_MANH_SIZE 20 +#define LDBL_MANL_SIZE 32 + +#define LDBL_TO_ARRAY32(u, a) do { \ + (a)[0] = (uint32_t)(u).bits.manl; \ + (a)[1] = (uint32_t)(u).bits.manh; \ +} while(0) Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/Makefile.inc Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,36 @@ +# $FreeBSD$ + +.PATH: ${LIBC_SRCTOP}/arm/aeabi + +SRCS+= aeabi_atexit.c \ + aeabi_unwind_cpp.c +.if ${MACHINE_ARCH} != "armv6hf" +SRCS+= aeabi_double.c \ + aeabi_float.c +.endif +.if ${MACHINE_ARCH:Marmv6*} +SRCS+= aeabi_vfp_double.S \ + aeabi_vfp_float.S +.endif + +# Add the aeabi_mem* functions. While they live in compiler-rt they call into +# libc. This causes issues when other parts of libc call these functions. +# We work around this by including these functions in libc but mark them as +# hidden so users of libc will not pick up these versions. +.PATH: ${LIBC_SRCTOP}/../../contrib/compiler-rt/lib/arm + +SRCS+= aeabi_memcmp.S \ + aeabi_memcpy.S \ + aeabi_memmove.S \ + aeabi_memset.S + +# Mark the functions as hidden so they are not available outside of libc. +CFLAGS.aeabi_memcmp.S= -DVISIBILITY_HIDDEN +CFLAGS.aeabi_memcpy.S= -DVISIBILITY_HIDDEN +CFLAGS.aeabi_memmove.S= -DVISIBILITY_HIDDEN +CFLAGS.aeabi_memset.S= -DVISIBILITY_HIDDEN +CFLAGS+= ${CFLAGS.${.IMPSRC:T}} + + +SYM_MAPS+=${LIBC_SRCTOP}/arm/aeabi/Symbol.map + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/Symbol.map ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/Symbol.map Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,47 @@ +/* + * $FreeBSD$ + */ + +/* + * This only needs to contain AEABI symbols that are not listed in + * symbol maps from other parts of libc (i.e., not found in + * stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...). + */ +FBSDprivate_1.0 { + __aeabi_atexit; + + __aeabi_dcmpeq; + __aeabi_dcmplt; + __aeabi_dcmple; + __aeabi_dcmpge; + __aeabi_dcmpgt; + __aeabi_dcmpun; + + __aeabi_d2iz; + __aeabi_d2f; + + __aeabi_dadd; + __aeabi_ddiv; + __aeabi_dmul; + __aeabi_dsub; + + + __aeabi_fcmpeq; + __aeabi_fcmplt; + __aeabi_fcmple; + __aeabi_fcmpge; + __aeabi_fcmpgt; + __aeabi_fcmpun; + + __aeabi_f2iz; + __aeabi_f2d; + + __aeabi_fadd; + __aeabi_fdiv; + __aeabi_fmul; + __aeabi_fsub; + + + __aeabi_i2d; + __aeabi_i2f; +}; Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_atexit.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_atexit.c Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2012 Andrew Turner + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +int __cxa_atexit(void (*)(void *), void *, void *); + +int +__aeabi_atexit(void *object, void (*func)(void*), void *dso) +{ + return __cxa_atexit(func, object, dso); +} + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_double.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_double.c Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2012 Andrew Turner + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include "softfloat-for-gcc.h" +#include "milieu.h" +#include "softfloat.h" + +#include "aeabi_vfp.h" + +extern int _libc_arm_fpu_present; + +flag __unorddf2(float64, float64); + +/* These are written in asm and are only called from this file */ +int __aeabi_dcmpeq_vfp(float64, float64); +int __aeabi_dcmplt_vfp(float64, float64); +int __aeabi_dcmple_vfp(float64, float64); +int __aeabi_dcmpgt_vfp(float64, float64); +int __aeabi_dcmpge_vfp(float64, float64); +int __aeabi_dcmpun_vfp(float64, float64); +int __aeabi_d2iz_vfp(float64); +float32 __aeabi_d2f_vfp(float64); +float64 __aeabi_i2d_vfp(int); +float64 __aeabi_dadd_vfp(float64, float64); +float64 __aeabi_ddiv_vfp(float64, float64); +float64 __aeabi_dmul_vfp(float64, float64); +float64 __aeabi_dsub_vfp(float64, float64); + +/* + * Depending on the target these will: + * On armv6 with a vfp call the above function, or + * Call the softfloat function in the 3rd argument. + */ +int AEABI_FUNC2(dcmpeq, float64, float64_eq) +int AEABI_FUNC2(dcmplt, float64, float64_lt) +int AEABI_FUNC2(dcmple, float64, float64_le) +int AEABI_FUNC2_REV(dcmpge, float64, float64_le) +int AEABI_FUNC2_REV(dcmpgt, float64, float64_lt) +int AEABI_FUNC2(dcmpun, float64, __unorddf2) + +int AEABI_FUNC(d2iz, float64, float64_to_int32_round_to_zero) +float32 AEABI_FUNC(d2f, float64, float64_to_float32) +float64 AEABI_FUNC(i2d, int, int32_to_float64) + +float64 AEABI_FUNC2(dadd, float64, float64_add) +float64 AEABI_FUNC2(ddiv, float64, float64_div) +float64 AEABI_FUNC2(dmul, float64, float64_mul) +float64 AEABI_FUNC2(dsub, float64, float64_sub) + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_float.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_float.c Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2012 Andrew Turner + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include "softfloat-for-gcc.h" +#include "milieu.h" +#include "softfloat.h" + +#include "aeabi_vfp.h" + +extern int _libc_arm_fpu_present; + +flag __unordsf2(float32, float32); + +/* These are written in asm and are only called from this file */ +int __aeabi_fcmpeq_vfp(float32, float32); +int __aeabi_fcmplt_vfp(float32, float32); +int __aeabi_fcmple_vfp(float32, float32); +int __aeabi_fcmpgt_vfp(float32, float32); +int __aeabi_fcmpge_vfp(float32, float32); +int __aeabi_fcmpun_vfp(float32, float32); +int __aeabi_f2iz_vfp(float32); +float64 __aeabi_f2d_vfp(float32); +float32 __aeabi_i2f_vfp(int); +float32 __aeabi_fadd_vfp(float32, float32); +float32 __aeabi_fdiv_vfp(float32, float32); +float32 __aeabi_fmul_vfp(float32, float32); +float32 __aeabi_fsub_vfp(float32, float32); + +/* + * Depending on the target these will: + * On armv6 with a vfp call the above function, or + * Call the softfloat function in the 3rd argument. + */ +int AEABI_FUNC2(fcmpeq, float32, float32_eq) +int AEABI_FUNC2(fcmplt, float32, float32_lt) +int AEABI_FUNC2(fcmple, float32, float32_le) +int AEABI_FUNC2_REV(fcmpge, float32, float32_le) +int AEABI_FUNC2_REV(fcmpgt, float32, float32_lt) +int AEABI_FUNC2(fcmpun, float32, __unordsf2) + +int AEABI_FUNC(f2iz, float32, float32_to_int32_round_to_zero) +float64 AEABI_FUNC(f2d, float32, float32_to_float64) +float32 AEABI_FUNC(i2f, int, int32_to_float32) + +float32 AEABI_FUNC2(fadd, float32, float32_add) +float32 AEABI_FUNC2(fdiv, float32, float32_div) +float32 AEABI_FUNC2(fmul, float32, float32_mul) +float32 AEABI_FUNC2(fsub, float32, float32_sub) + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_unwind_cpp.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_unwind_cpp.c Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2011 Andrew Turner + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + */ + +/* + * Provide an implementation of __aeabi_unwind_cpp_pr{0,1,2}. These are + * required by libc but are implemented in libgcc_eh.a which we don't link + * against. The libgcc_eh.a version will be called so we call abort to + * check this. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <stdlib.h> + +void __aeabi_unwind_cpp_pr0(void) __hidden; +void __aeabi_unwind_cpp_pr1(void) __hidden; +void __aeabi_unwind_cpp_pr2(void) __hidden; + +void +__aeabi_unwind_cpp_pr0(void) +{ + abort(); +} + +void +__aeabi_unwind_cpp_pr1(void) +{ + abort(); +} + +void +__aeabi_unwind_cpp_pr2(void) +{ + abort(); +} + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp.h Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2013 Andrew Turner + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + * $FreeBSD$ + * + */ + +#ifndef AEABI_VFP_H +#define AEABI_VFP_H + +/* + * ASM helper macros. These allow the functions to be changed depending on + * the endian-ness we are building for. + */ + +/* Allow the name of the function to be changed depending on the ABI */ +#ifndef __ARM_PCS_VFP +#define AEABI_ENTRY(x) ENTRY(__aeabi_ ## x ## _vfp) +#define AEABI_END(x) END(__aeabi_ ## x ## _vfp) +#else +#define AEABI_ENTRY(x) ENTRY(__aeabi_ ## x) +#define AEABI_END(x) END(__aeabi_ ## x) +#endif + +/* + * These should be used when a function either takes, or returns a floating + * point falue. They will load the data from an ARM to a VFP register(s), + * or from a VFP to an ARM register + */ +#ifdef __ARMEB__ +#define LOAD_DREG(vreg, reg0, reg1) vmov vreg, reg1, reg0 +#define UNLOAD_DREG(reg0, reg1, vreg) vmov reg1, reg0, vreg +#else +#define LOAD_DREG(vreg, reg0, reg1) vmov vreg, reg0, reg1 +#define UNLOAD_DREG(reg0, reg1, vreg) vmov reg0, reg1, vreg +#endif + +#define LOAD_SREGS(vreg0, vreg1, reg0, reg1) vmov vreg0, vreg1, reg0, reg1 +#define LOAD_SREG(vreg, reg) vmov vreg, reg +#define UNLOAD_SREG(reg, vreg) vmov reg, vreg + +/* + * C Helper macros + */ + +#if defined(__FreeBSD_ARCH_armv6__) || (defined(__ARM_ARCH) && __ARM_ARCH >= 6) +/* + * Generate a function that will either call into the VFP implementation, + * or the soft float version for a given __aeabi_* helper. The function + * will take a single argument of the type given by in_type. + */ +#define AEABI_FUNC(name, in_type, soft_func) \ +__aeabi_ ## name(in_type a) \ +{ \ + if (_libc_arm_fpu_present) \ + return __aeabi_ ## name ## _vfp(a); \ + else \ + return soft_func (a); \ +} + +/* As above, but takes two arguments of the same type */ +#define AEABI_FUNC2(name, in_type, soft_func) \ +__aeabi_ ## name(in_type a, in_type b) \ +{ \ + if (_libc_arm_fpu_present) \ + return __aeabi_ ## name ## _vfp(a, b); \ + else \ + return soft_func (a, b); \ +} + +/* As above, but with the soft float arguments reversed */ +#define AEABI_FUNC2_REV(name, in_type, soft_func) \ +__aeabi_ ## name(in_type a, in_type b) \ +{ \ + if (_libc_arm_fpu_present) \ + return __aeabi_ ## name ## _vfp(a, b); \ + else \ + return soft_func (b, a); \ +} +#else +/* + * Helper macros for when we are only able to use the softfloat + * version of these functions, i.e. on arm before armv6. + */ +#define AEABI_FUNC(name, in_type, soft_func) \ +__aeabi_ ## name(in_type a) \ +{ \ + return soft_func (a); \ +} + +/* As above, but takes two arguments of the same type */ +#define AEABI_FUNC2(name, in_type, soft_func) \ +__aeabi_ ## name(in_type a, in_type b) \ +{ \ + return soft_func (a, b); \ +} + +/* As above, but with the soft float arguments reversed */ +#define AEABI_FUNC2_REV(name, in_type, soft_func) \ +__aeabi_ ## name(in_type a, in_type b) \ +{ \ + return soft_func (b, a); \ +} +#endif + +#endif + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp_double.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp_double.S Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2013 Andrew Turner + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + */ + +#include <machine/asm.h> +__FBSDID("$FreeBSD$"); + +#include "aeabi_vfp.h" + +.fpu vfp +.syntax unified + +/* int __aeabi_dcmpeq(double, double) */ +AEABI_ENTRY(dcmpeq) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + movne r0, #0 + moveq r0, #1 + RET +AEABI_END(dcmpeq) + +/* int __aeabi_dcmplt(double, double) */ +AEABI_ENTRY(dcmplt) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + movcs r0, #0 + movlt r0, #1 + RET +AEABI_END(dcmplt) + +/* int __aeabi_dcmple(double, double) */ +AEABI_ENTRY(dcmple) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + movhi r0, #0 + movls r0, #1 + RET +AEABI_END(dcmple) + +/* int __aeabi_dcmpge(double, double) */ +AEABI_ENTRY(dcmpge) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + movlt r0, #0 + movge r0, #1 + RET +AEABI_END(dcmpge) + +/* int __aeabi_dcmpgt(double, double) */ +AEABI_ENTRY(dcmpgt) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + movle r0, #0 + movgt r0, #1 + RET +AEABI_END(dcmpgt) + +/* int __aeabi_dcmpun(double, double) */ +AEABI_ENTRY(dcmpun) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + movvc r0, #0 + movvs r0, #1 + RET +AEABI_END(dcmpun) + +/* int __aeabi_d2iz(double) */ +AEABI_ENTRY(d2iz) + LOAD_DREG(d0, r0, r1) +#if 0 + /* + * This should be the correct instruction, but binutils incorrectly + * encodes it as the version that used FPSCR to determine the rounding. + * When binutils is fixed we can use this again. + */ + vcvt.s32.f64 s0, d0 +#else + ftosizd s0, d0 +#endif + vmov r0, s0 + RET +AEABI_END(d2iz) + +/* float __aeabi_d2f(double) */ +AEABI_ENTRY(d2f) + LOAD_DREG(d0, r0, r1) + vcvt.f32.f64 s0, d0 + UNLOAD_SREG(r0, s0) + RET +AEABI_END(d2f) + +/* double __aeabi_i2d(int) */ +AEABI_ENTRY(i2d) + vmov s0, r0 + vcvt.f64.s32 d0, s0 + UNLOAD_DREG(r0, r1, d0) + RET +AEABI_END(i2d) + +/* double __aeabi_dadd(double, double) */ +AEABI_ENTRY(dadd) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vadd.f64 d0, d0, d1 + UNLOAD_DREG(r0, r1, d0) + RET +AEABI_END(dadd) + +/* double __aeabi_ddiv(double, double) */ +AEABI_ENTRY(ddiv) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vdiv.f64 d0, d0, d1 + UNLOAD_DREG(r0, r1, d0) + RET +AEABI_END(ddiv) + +/* double __aeabi_dmul(double, double) */ +AEABI_ENTRY(dmul) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vmul.f64 d0, d0, d1 + UNLOAD_DREG(r0, r1, d0) + RET +AEABI_END(dmul) + +/* double __aeabi_dsub(double, double) */ +AEABI_ENTRY(dsub) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vsub.f64 d0, d0, d1 + UNLOAD_DREG(r0, r1, d0) + RET +AEABI_END(dsub) + Added: soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp_float.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/estaszuk/microblaze-head/head/lib/libc/microblaze/aeabi/aeabi_vfp_float.S Wed Jun 25 11:07:33 2014 (r270015) @@ -0,0 +1,160 @@ +/* + * Copyright (C) 2013 Andrew Turner + * 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. *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406251107.s5PB7Ze4050608>