8sa1-gcc/gcc/go
Richard Sandiford e386a52f70 [7/77] Add scalar_float_mode
This patch adds a scalar_float_mode class, which wraps a mode enum
that is known to satisfy SCALAR_FLOAT_MODE_P.  Things like "SFmode"
now give a scalar_float_mode object instead of a machine_mode.
This in turn needs a change to the real.h format_helper, so that
it can accept both machine_modes and scalar_float_modes.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* coretypes.h (scalar_float_mode): New type.
	* machmode.h (mode_traits::from_int): Use machine_mode if
	USE_ENUM_MODES is defined.
	(is_a): New function.
	(as_a): Likewise.
	(dyn_cast): Likewise.
	(scalar_float_mode): New class.
	(scalar_float_mode::includes_p): New function.
	(is_float_mode): Likewise.
	* gdbhooks.py (MachineModePrinter): New class.
	(build_pretty_printer): Use it for scalar_float_mode.
	* real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
	(format_helper::format_helper): Turn into a template.
	* genmodes.c (get_mode_class): New function.
	(emit_insn_modes_h): Give modes the class returned by get_mode_class,
	or machine_mode if none.
	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
	as_a <scalar_float_mode>.
	* dwarf2out.c (mem_loc_descriptor): Likewise.
	(insert_float): Likewise.
	(add_const_value_attribute): Likewise.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	* optabs.c (expand_absneg_bit): Take a scalar_float_mode.
	(expand_unop): Update accordingly.
	(expand_abs_nojump): Likewise.
	(expand_copysign_absneg): Take a scalar_float_mode.
	(expand_copysign_bit): Likewise.
	(expand_copysign): Update accordingly.

gcc/ada/
	* gcc-interface/utils.c (gnat_type_for_mode): Use is_a
	<scalar_float_mode> instead of SCALAR_FLOAT_MODE_P.

gcc/go/
	* go-lang.c (go_langhook_type_for_mode): Use is_float_mode.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r251458
2017-08-30 11:09:10 +00:00
..
gofrontend net/internal/socktest: build sys_unix.go on AIX 2017-08-29 21:56:31 +00:00
ChangeLog [7/77] Add scalar_float_mode 2017-08-30 11:09:10 +00:00
config-lang.in
gccgo.texi
go-backend.c go-backend.c (go_write_export_data): Use EXCLUDE section for AIX. 2017-07-28 00:16:36 +00:00
go-c.h
go-gcc-diagnostics.cc
go-gcc.cc Canonicalize names of attributes. 2017-08-07 08:37:07 +00:00
go-gcc.h
go-lang.c [7/77] Add scalar_float_mode 2017-08-30 11:09:10 +00:00
go-linemap.cc
go-location.h
go-sha1.cc
go-system.h
gospec.c
lang-specs.h
lang.opt
Make-lang.in
README.gcc

The files in the gofrontend subdirectory are mirrored from the
gofrontend project hosted at http://code.google.com/p/gofrontend.
These files are the ones in the go subdirectory of that project.