#
fdafd315 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remov
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0 |
|
#
b64b3133 |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
powerpc: clean up empty lines in .c and .h files
|
Revision tags: release/11.4.0 |
|
#
8cf2c8ed |
| 13-Mar-2020 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc: Simplify _nodrop variants of FPU and vector register saves
No need for an extra temporary. It doesn't even help with readability.
Suggested by: kib (almost 2 years ago)
|
#
4f9ed315 |
| 12-Dec-2019 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC] Fix SPE floating point environment manipulation
Fix multiple problems in the powerpcspe floating point code.
* Endianness handling of the SPEFSCR in fenv.h was completely broken. * Ensure
[PowerPC] Fix SPE floating point environment manipulation
Fix multiple problems in the powerpcspe floating point code.
* Endianness handling of the SPEFSCR in fenv.h was completely broken. * Ensure SPEFSCR synchronization requirements are being met.
The __r.__d -> __r transformations were written by jhibbits.
Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D22526
show more ...
|
#
a638bf2a |
| 23-Nov-2019 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC] Use QEMU-compatible version of SPE accumulator save
Switch from "evaddumiaaw 0,0" to "evmwumiaa 0,0,0" when persisting the accumulator. This has the benefit of actually being implemented i
[PowerPC] Use QEMU-compatible version of SPE accumulator save
Switch from "evaddumiaaw 0,0" to "evmwumiaa 0,0,0" when persisting the accumulator. This has the benefit of actually being implemented in QEMU as it is the form Linux uses for the same task.
Both instructions are functionally equivilent, as we are using them for their side effect of copying the accumulator to GPRs rather than for the actual math operation that they are performing.
Reviewed by: jhibbits
show more ...
|
#
6f83eb8b |
| 16-Nov-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpcspe: Don't leak kernel registers in SPE dumps
save_vec_int() for SPE saves off only the high word of the register, leaving the low word as "garbage", but really containing whatever was in the
powerpcspe: Don't leak kernel registers in SPE dumps
save_vec_int() for SPE saves off only the high word of the register, leaving the low word as "garbage", but really containing whatever was in the kernel register at the time. This leaks into core dumps, and in a near future commit also into ptrace. Instead, save the GPR in the low word in save_vec_nodrop(), which is used only for core dumps and ptrace.
show more ...
|
#
fe627769 |
| 16-Nov-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpcspe: Mark asm statement in spe_save_reg_high as clobbering memory
Modern gcc errors that "'vec[0]' is used uninitialized in this function" without us telling it that vec is clobbered. Neithe
powerpcspe: Mark asm statement in spe_save_reg_high as clobbering memory
Modern gcc errors that "'vec[0]' is used uninitialized in this function" without us telling it that vec is clobbered. Neither clang nor gcc 4.2.1 error on the existing construct.
Submitted by: bdragon
show more ...
|
Revision tags: release/12.1.0 |
|
#
a63915c2 |
| 28-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @r350386
Sponsored by: The FreeBSD Foundation
|
#
cafceaeb |
| 20-Jul-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/SPE: Enable SPV bit for EFSCFD instruction emulation
EFSCFD (floating point single convert from double) emulation requires saving the high word of the register, which uses SPE instructions.
powerpc/SPE: Enable SPV bit for EFSCFD instruction emulation
EFSCFD (floating point single convert from double) emulation requires saving the high word of the register, which uses SPE instructions. Enable the SPE to avoid an SPV Unavailable exception.
MFC after: 1 week
show more ...
|
Revision tags: release/11.3.0 |
|
#
2da4e52d |
| 13-Jan-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpcspe: Correct SPE high-component loading
Don't clobber the low part of the register restoring the high component of. This could lead to very bad behavior if it's an ABI-affected register.
Whi
powerpcspe: Correct SPE high-component loading
Don't clobber the low part of the register restoring the high component of. This could lead to very bad behavior if it's an ABI-affected register.
While here, also mark the asm volatile in the SPE high save case, to match the load case.
Reported by: Branden Bergren (git_bdragon.rtk0.net) MFC after: 1 week
show more ...
|
#
3067a880 |
| 13-Dec-2018 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpcspe: Fix GPR handling in SPE exception handler
Optimize the exception handler to only save and load the upper word of the GPRs used in the emulating instruction. This reduces the save/load o
powerpcspe: Fix GPR handling in SPE exception handler
Optimize the exception handler to only save and load the upper word of the GPRs used in the emulating instruction. This reduces the save/load overhead, and as a side effect does not overwrite the upper word of any temporary register.
With this commit I am now able to run editors/abiword and math/gnumeric on a e500-based system.
MFC after: 1 week MFC With: r341752,r341751
show more ...
|
#
67350cb5 |
| 09-Dec-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340918 through r341763.
|
#
ddc6c1fa |
| 09-Dec-2018 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/SPE: Copy lower part of source register to target for efdabs/efdnabs/efdneg
MFC after: 1 week MFC With: r341751
|
#
3d6bebd3 |
| 09-Dec-2018 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc/SPE: Reload vector registers after efdabs/efdnabs/efdneg
While here, also style(9)-adjust indents around this code.
|
Revision tags: release/12.0.0 |
|
#
c6879c6c |
| 23-Oct-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339015 through r339669.
|
#
289041e2 |
| 21-Oct-2018 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpcspe: Implement SPE exception handling
The Signal Processing Engine (SPE) found in Freescale e500 cores (and others) offloads IEEE-754 compliance (NaN, Inf handling, overflow, underflow) to so
powerpcspe: Implement SPE exception handling
The Signal Processing Engine (SPE) found in Freescale e500 cores (and others) offloads IEEE-754 compliance (NaN, Inf handling, overflow, underflow) to software, most likely as a means of simplifying the APU silicon. Some software, like AbiWord, needs full IEEE-754 compliance, including NaN handling. Implement the necessary bits to enable it.
Differential Revision: https://reviews.freebsd.org/D17446
show more ...
|
Revision tags: release/11.2.0, release/10.4.0, release/11.1.0 |
|
#
02ebdc78 |
| 31-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r307736 through r308146.
|
#
dc9b124d |
| 22-Oct-2016 |
Justin Hibbits <jhibbits@FreeBSD.org> |
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 p
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
show more ...
|