gcc/libgcc/config
Julian Brown a8a730cd99 amdgcn: Enable support for TImode for AMD GCN
This patch enables support for TImode for AMD GCN, the lack of which
is currently causing a number of test failures for the target and which
is also needed to support "omp_depend_kind" for OpenMP 5.0, since that
is implemented as a 128-bit integer.

Several libgcc support routines are built by default for the "word size"
of a machine, and also for "2 * word size" of the machine.  The libgcc
build for AMD GCN is changed so that it builds for a "word size" of 64
bits, in order to better match the (64-bit) host compiler.  However it
isn't really true that we have 64-bit words -- GCN has 32-bit registers,
so changing UNITS_PER_WORD unconditionally would be the wrong thing to do.

Changing this setting for libgcc (only) means that support routines
are built for "single word" operations that are DImode (64 bits), and
those for "double word" operations are built for TImode (128 bits).
That leaves some gaps regarding previous operations that were built
for a "single word" size of 32 bits and a "double word" size of 64 bits
(generic code doesn't cover both alternatives for all operations that
might be needed).  Those gaps are filled in by this patch, or by the
preceding patches in the series.

2021-06-18  Julian Brown  <julian@codesourcery.com>

gcc/
	* config/gcn/gcn.c (gcn_init_libfuncs): New function.
	(TARGET_INIT_LIBFUNCS): Define target hook using above function.
	* config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
	otherwise.
	(LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
	(MAX_FIXED_MODE_SIZE): Change to 128.

libgcc/
	* config/gcn/lib2-bswapti2.c: New file.
	* config/gcn/lib2-divmod-di.c: New file.
	* config/gcn/lib2-gcn.h (DItype, UDItype, TItype, UTItype): Add
	typedefs.
	(__divdi3, __moddi3, __udivdi3, __umoddi3): Add prototypes.
	* config/gcn/t-amdgcn (LIB2ADD): Add lib2-divmod-di.c and
	lib2-bswapti2.c.
2021-06-29 08:19:56 -07:00
..
aarch64 Update copyright years. 2021-01-04 10:26:59 +01:00
alpha Update copyright years. 2021-01-04 10:26:59 +01:00
arc Update copyright years. 2021-01-04 10:26:59 +01:00
arm arm: Fix the mve multilib for the broken cmse support (pr99939). 2021-06-11 15:56:48 +01:00
avr Update copyright years. 2021-01-04 10:26:59 +01:00
bfin Update copyright years. 2021-01-04 10:26:59 +01:00
bpf
c6x Update copyright years. 2021-01-04 10:26:59 +01:00
cr16 Update copyright years. 2021-01-04 10:26:59 +01:00
cris Update copyright years. 2021-01-04 10:26:59 +01:00
csky Update copyright years. 2021-01-04 10:26:59 +01:00
epiphany Update copyright years. 2021-01-04 10:26:59 +01:00
fr30 Update copyright years. 2021-01-04 10:26:59 +01:00
frv Update copyright years. 2021-01-04 10:26:59 +01:00
ft32 Update copyright years. 2021-01-04 10:26:59 +01:00
gcn amdgcn: Enable support for TImode for AMD GCN 2021-06-29 08:19:56 -07:00
h8300 Update copyright years. 2021-01-04 10:26:59 +01:00
i386 libgcc, i386: Add .note.GNU-stack sections to the ms sse/avx sav/res 2021-01-27 11:50:13 +01:00
ia64 Update copyright years. 2021-01-04 10:26:59 +01:00
iq2000 Update copyright years. 2021-01-04 10:26:59 +01:00
libbid Update copyright years. 2021-01-04 10:26:59 +01:00
lm32 Update copyright years. 2021-01-04 10:26:59 +01:00
m32c Update copyright years. 2021-01-04 10:26:59 +01:00
m32r Update copyright years. 2021-01-04 10:26:59 +01:00
m68k Update copyright years. 2021-01-04 10:26:59 +01:00
mcore Update copyright years. 2021-01-04 10:26:59 +01:00
microblaze Update copyright years. 2021-01-04 10:26:59 +01:00
mips Update copyright years. 2021-01-04 10:26:59 +01:00
mmix Update copyright years. 2021-01-04 10:26:59 +01:00
moxie Update copyright years. 2021-01-04 10:26:59 +01:00
msp430 Update copyright years. 2021-01-04 10:26:59 +01:00
nds32 Update copyright years. 2021-01-04 10:26:59 +01:00
nios2 Update copyright years. 2021-01-04 10:26:59 +01:00
nvptx Update copyright years. 2021-01-04 10:26:59 +01:00
or1k or1k: Support for softfloat to emulate hw exceptions 2021-01-14 08:45:01 +09:00
pa Update copyright years. 2021-01-04 10:26:59 +01:00
pdp11
pru libgcc: pru: Place mpyll into its own section 2021-05-13 23:11:01 +03:00
riscv RISC-V: Update soft-fp config for big-endian 2021-03-23 17:31:13 +08:00
rl78 Update copyright years. 2021-01-04 10:26:59 +01:00
rs6000 rs6000: Fix typos in float128 ISA3.1 support 2021-06-22 23:09:30 -05:00
rx Update copyright years. 2021-01-04 10:26:59 +01:00
s390 Update copyright years. 2021-01-04 10:26:59 +01:00
score Update copyright years. 2021-01-04 10:26:59 +01:00
sh Update copyright years. 2021-01-04 10:26:59 +01:00
sol2 Update copyright years. 2021-01-04 10:26:59 +01:00
sparc Update copyright years. 2021-01-04 10:26:59 +01:00
stormy16 Update copyright years. 2021-01-04 10:26:59 +01:00
tilegx
tilepro Update copyright years. 2021-01-04 10:26:59 +01:00
v850 Update copyright years. 2021-01-04 10:26:59 +01:00
vax Update copyright years. 2021-01-04 10:26:59 +01:00
visium Update copyright years. 2021-01-04 10:26:59 +01:00
vms Update copyright years. 2021-01-04 10:26:59 +01:00
xtensa Update copyright years. 2021-01-04 10:26:59 +01:00
darwin10-unwind-find-enc-func.c
darwin-64.c Update copyright years. 2021-01-04 10:26:59 +01:00
darwin-crt3.c Update copyright years. 2021-01-04 10:26:59 +01:00
darwin-crt-tm.c Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-lynx.h Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-rtems.h Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-vxworks-cond.c Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-vxworks-thread.c Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-vxworks-tls.c Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-vxworks.c Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-vxworks.h Update copyright years. 2021-01-04 10:26:59 +01:00
hardfp.c Update copyright years. 2021-01-04 10:26:59 +01:00
libgcc-glibc.ver Update copyright years. 2021-01-04 10:26:59 +01:00
libgcc-libsystem.ver
no-sfp-machine.h
no-unwind.h
t-crtfm
t-crtstuff-pic
t-darwin
t-dfprules
t-eh-dw2-dip
t-fdpbit
t-fixedpoint-gnu-prefix
t-fpbit
t-freebsd-thread
t-gnu-prefix
t-gthr-noweak
t-gthr-vxworks
t-gthr-vxworksae
t-hardfp Update copyright years. 2021-01-04 10:26:59 +01:00
t-hardfp-sfdf Update copyright years. 2021-01-04 10:26:59 +01:00
t-libgcc-pic
t-libunwind
t-libunwind-elf Update copyright years. 2021-01-04 10:26:59 +01:00
t-linux
t-openbsd-thread
t-rtems
t-slibgcc Update copyright years. 2021-01-04 10:26:59 +01:00
t-slibgcc-darwin
t-slibgcc-elf-ver
t-slibgcc-fuchsia Update copyright years. 2021-01-04 10:26:59 +01:00
t-slibgcc-gld
t-slibgcc-gld-nover
t-slibgcc-hpux
t-slibgcc-libgcc Update copyright years. 2021-01-04 10:26:59 +01:00
t-slibgcc-nolc-override
t-slibgcc-sld
t-slibgcc-vms
t-softfp Update copyright years. 2021-01-04 10:26:59 +01:00
t-softfp-compat
t-softfp-excl
t-softfp-sfdf
t-softfp-sfdftf
t-softfp-tf
t-stack
t-tls
t-vxcrtstuff
t-vxworks introduce overridable clear_cache emitter 2020-12-02 22:10:32 -03:00
t-vxworks7 introduce overridable clear_cache emitter 2020-12-02 22:10:32 -03:00
t-vxworksae
unwind-dw2-fde-darwin.c Update copyright years. 2021-01-04 10:26:59 +01:00
vxcrtstuff.c