freebsd-skq/contrib
jhibbits 40c4c3de40 Create a new MACHINE_ARCH for Freescale PowerPC e500v2
Summary:
The Freescale e500v2 PowerPC core does not use a standard FPU.
Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor
unit, which doubles as a FPU.  The PowerPC SPE ABI is incompatible with the
stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this.
Additionaly, the SPE opcodes overlap with Altivec, so these are mutually
exclusive.  Taking advantage of this fact, a new file, powerpc/booke/spe.c, was
created with the same function set as in powerpc/powerpc/altivec.c, so it
becomes effectively a drop-in replacement.  setjmp/longjmp were modified to save
the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by
the SPE).

Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not
support double-precision floating point.

Also, without a new MACHINE_ARCH it would be impossible to provide binary
packages which utilize the SPE.

Additionally, no work has been done to support ports, work is needed for this.
This also means no newer gcc can yet be used.  However, gcc's powerpc support
has been refactored which would make adding a powerpcspe-freebsd target very
easy.

Test Plan:
This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222
(P1022-based) board, compiled against the new ABI.  Base system utilities
(/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot
multiuser.

Reviewed By:	bdrewery, imp
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D5683
2016-10-22 01:57:15 +00:00
..
amd Mark amd(8) and all related utilities as obsolete. 2016-02-29 16:45:10 +00:00
apr Update apr-1.5.1 to 1.5.2 2015-08-09 05:14:25 +00:00
apr-util
atf Fix conversion from C++ std::string into C const char *. 2016-09-29 09:16:02 +00:00
binutils Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
blacklist Make blacklist-helper commands emit a message when successful 2016-10-04 23:10:43 +00:00
bmake Update to bmake-20170818 2016-09-09 01:09:39 +00:00
bsnmp Revert r299830, it has couple of fatal errors. 2016-05-18 22:02:19 +00:00
byacc MFV: r306687 2016-10-04 22:22:32 +00:00
bzip2
com_err
compiler-rt Update compiler-rt to release_38 branch r261369. 2016-02-21 16:27:55 +00:00
cortex-strings Fix the asm on the memchr and strchr functions. 2016-09-19 14:36:16 +00:00
dialog
diff Fix the wrong format, format specifies type 'int' but the argument has type 2015-06-01 06:14:17 +00:00
dma Import dma 20160929 2016-09-30 23:38:26 +00:00
dtc Silence clang warning about extraneous parenthesis 2015-06-05 17:18:10 +00:00
ee
elftoolchain libdwarf: Add definitions for Apple's DWARF extension attributes. 2016-09-20 00:22:35 +00:00
expat MFV r302260: expat 2.2.0 2016-07-01 05:48:45 +00:00
file MFV r302218: file 5.28. 2016-06-27 01:29:17 +00:00
flex
gcc Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
gcclibs Define libcpp's HAVE_DESIGNATED_INITIALIZERS in a defined and portable 2016-09-05 18:02:37 +00:00
gdb Fix KGDB backtrace on ARM 2016-04-20 17:58:13 +00:00
gdtoa
gperf Convert texinfo to mdoc(7) using texi2mdoc 2015-03-02 11:48:00 +00:00
groff Add SUSv4 reference macro to our groff mdoc. mdocml already supports it. 2016-05-17 09:24:54 +00:00
hyperv/tools hyperv/kvp_daemon: Make poll(2) block indefinitely 2016-01-11 03:30:16 +00:00
ipfilter Follow-up to r304953, in which I broke the build: apparently the SOLARIS 2016-08-28 19:35:29 +00:00
jemalloc Update jemalloc to 4.2.1. 2016-06-09 06:10:20 +00:00
ldns Add a script that runs configure for both ldns and drill. 2015-04-27 12:02:16 +00:00
ldns-host Initialize first_serial to 0 in dozonetransfer(..) to fix -Wuninitialized 2016-07-14 06:10:16 +00:00
less MFV r293125: less v481. 2016-01-05 05:25:16 +00:00
libarchive MFV r307214: 2016-10-13 11:40:34 +00:00
libbegemot
libc-pwcache
libc-vis Update to a June 8th snapshot of (un)vis form NetBSD. 2016-06-08 18:21:27 +00:00
libc++ Update libc++ to 3.8.0. Excerpted list of fixes (with upstream revision 2016-05-26 18:52:49 +00:00
libcxxrt Add _US_ACTION_MASK to libcxxrt's arm-specific unwind header. This 2016-09-04 21:48:58 +00:00
libdivsufsort Change bsdiff to use divsufsort suffix sort library instead of qsufsort, 2016-07-25 03:58:19 +00:00
libexecinfo Remove usage of _WITH_DPRINTF 2016-07-30 01:16:06 +00:00
libgnuregex Back out non-collating [a-z] ranges. 2016-07-14 09:45:07 +00:00
libpcap Fix a style(9) bug. 2016-08-03 20:21:58 +00:00
libreadline
libstdc++
libucl Import libucl 20160812 2016-10-01 00:14:01 +00:00
libxo Update libxo to 0.6.3 2016-07-03 01:35:27 +00:00
llvm Pull in r277331 from upstream llvm trunk (by Diana Picus): 2016-09-01 18:11:44 +00:00
mdocml makewhatis: avoid skipping another page after one with no mlinks 2016-10-18 13:37:59 +00:00
mknod
mtree
ncurses In ncurses baudrate definitions, avoid warnings about implicit 2016-08-27 20:33:19 +00:00
netbsd-tests Expect tests/sys/fs/tmpfs/link_test:kqueue to fail 2016-10-21 05:21:20 +00:00
netcat MFV r288243: nc from OpenBSD 5.8. 2015-09-27 07:04:16 +00:00
ngatm
ntp MFV r301238: 2016-06-03 08:00:22 +00:00
nvi Update nvi to 2.1.3 which fixes the data corruption when locale conversion 2015-04-10 17:50:28 +00:00
ofed When MAKEOBJDIRPREFIX points to a case-insensitive file system, the 2016-09-24 17:50:11 +00:00
one-true-awk The bug: 2016-09-03 23:04:56 +00:00
openbsm auditdistd: update for sys/capability.h rename in r263232 2016-09-20 12:58:28 +00:00
openpam Restore the upstream (and documented) behavior of searching for modules 2015-09-21 17:26:35 +00:00
openresolv MFV r298167, r300962, r303048: 2016-07-20 03:52:04 +00:00
opie
pam_modules/pam_passwdqc
pf Rename getline with get_line to avoid collision with getline(3) 2016-05-10 11:09:26 +00:00
pjdfstest Better handle filesystems mounted with -o noexec 2016-03-12 19:41:38 +00:00
pnpinfo
sendmail Remove unneeded libutil dependency for sendmail. 2015-11-24 04:19:55 +00:00
serf Update serf from 1.3.7 to 1.3.8. Mostly disables sslv2 and sslv3. 2015-08-09 05:16:14 +00:00
smbfs Add #include <string.h> to mute warning from clang/gcc about implicitly 2016-02-01 07:09:08 +00:00
sqlite3 MFV r304732. 2016-08-24 12:32:24 +00:00
subversion Re-sync the FreeBSD-specific Subversion template with the one from 2016-05-03 18:06:42 +00:00
tcp_wrappers
tcpdump tcpdump: remove sys/capability.h #include 2016-09-19 17:51:56 +00:00
tcsh To mimic system glob, we definitely don't need manual upper/lower hack. 2016-07-14 09:40:42 +00:00
telnet Fix warnings in telnet about invalid constant conversions, e.g.: 2016-08-30 20:27:22 +00:00
tnftp Fix warnings in tnftp about invalid constant conversions, e.g.: 2016-08-30 20:24:50 +00:00
top Add a toggle to display the approximate amount of swap used by each 2016-09-05 08:27:04 +00:00
traceroute The code starts with base + 1 as the first port. Fix to documentation 2015-05-31 12:18:30 +00:00
tzcode Incorporate a change from OpenBSD by millert@OpenBSD.org 2016-10-08 17:46:29 +00:00
tzdata Import tzdata 2016g 2016-10-08 17:46:59 +00:00
unbound Upgrade to Unbound 1.5.10. 2016-09-29 18:24:29 +00:00
unvis
vis
wpa [wpa] use IFM_IEEE80211_ADHOC for now on FreeBSD for IBSS operation. 2015-11-26 17:28:40 +00:00
xz MFV r291123: 2015-11-21 09:09:25 +00:00