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/...
estaszuk at FreeBSD.org
estaszuk at FreeBSD.org
Wed Jun 25 11:07:40 UTC 2014
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 at 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 ***
More information about the svn-soc-all
mailing list