x86: Disallow -mtls-dialect=gnu with no_caller_saved_registers

__tls_get_addr doesn't preserve vector registers.  When a function
with no_caller_saved_registers attribute calls __tls_get_addr, YMM
and ZMM registers will be clobbered.  Issue an error and suggest
-mtls-dialect=gnu2 in this case.

gcc/

	PR target/121208
	* config/i386/i386.cc (ix86_tls_get_addr): Issue an error for
	-mtls-dialect=gnu with no_caller_saved_registers attribute and
	suggest -mtls-dialect=gnu2.

gcc/testsuite/

	PR target/121208
	* gcc.target/i386/pr121208-1a.c: New test.
	* gcc.target/i386/pr121208-1b.c: Likewise.
	* gcc.target/i386/pr121208-2a.c: Likewise.
	* gcc.target/i386/pr121208-2b.c: Likewise.
	* gcc.target/i386/pr121208-3a.c: Likewise.
	* gcc.target/i386/pr121208-3b.c: Likewise.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 5760ddbce26ff9c5c8851b6b2089ad65981d5078)
7 files changed