Go to file
John David Anglin 4b304e3d63 Revise -mdisable-fpregs option and add new -msoft-mult option
The behavior of the -mdisable-fpregs is confusing in that it doesn't
disable the use of the floating-point registers in all situations.
The -msoft-float disables the use of the floating-point registers in
all situations.  The Linux kernel only needs to disable use of the
xmpyu instruction to avoid using the floating-point registers.

This change revises the -mdisable-fpregs option to disable the use of
the floating-point registers in all situations.  It is now equivalent
to the -msoft-float option.  A new -msoft-mult option is added to
disable use of the xmpyu instruction.  The libgcc library can be
compiled with the -msoft-mult option to avoid using hardware integer
multiplication.

2021-10-24  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

	* config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check
	TARGET_DISABLE_FPREGS.
	* config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of
	MASK_DISABLE_FPREGS.
	(hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS.  Adjust
	cost of hardware integer multiplication.
	(pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS.
	* config/pa/pa.h (INT14_OK_STRICT): Likewise.
	* config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check
	TARGET_SOFT_FLOAT in patterns that use xmpyu instruction.
	* config/pa/pa.opt (mdisable-fpregs): Change target mask to
	SOFT_FLOAT.  Revise comment.
	(msoft-float): New option.
2021-10-24 17:55:25 +00:00
c++tools Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
config Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
contrib Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
fixincludes Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
gcc Revise -mdisable-fpregs option and add new -msoft-mult option 2021-10-24 17:55:25 +00:00
gnattools Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
gotools Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
include Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
INSTALL
intl Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libada Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libatomic Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libbacktrace Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libcc1 Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libcody Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libcpp Daily bump. 2021-08-17 00:18:10 +00:00
libdecnumber Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libffi Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libgcc Daily bump. 2021-09-01 00:18:36 +00:00
libgfortran Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libgo libgo: update to Go1.16.5 release 2021-06-10 14:42:37 -07:00
libgomp Daily bump. 2021-10-19 00:18:06 +00:00
libhsail-rt Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libiberty Daily bump. 2021-10-02 00:18:01 +00:00
libitm Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libobjc Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
liboffloadmic Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libphobos Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libquadmath Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libsanitizer Daily bump. 2021-08-13 00:18:24 +00:00
libssp Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
libstdc++-v3 Daily bump. 2021-10-20 00:18:20 +00:00
libvtv Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
lto-plugin Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
maintainer-scripts Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
zlib Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
ar-lib
ChangeLog Update ChangeLog and version files for release 2021-07-28 06:55:28 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS MAINTAINERS: Add myself for write after approval 2021-04-11 12:09:11 +01:00
Makefile.def
Makefile.in
Makefile.tpl
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
symlink-tree
test-driver
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.