gcc/libgcc/config
Michael Meissner 9a30a3f06b Fix logic error in 32-bit trampolines.
The test in the PowerPC 32-bit trampoline support is backwards.  It aborts
if the trampoline size is greater than the expected size.  It should abort
when the trampoline size is less than the expected size.  I fixed the test
so the operands are reversed.  I then folded the load immediate into the
compare instruction.

I verified this by creating a 32-bit trampoline program and manually
changing the size of the trampoline to be 48 instead of 40.  The program
aborted with the larger size.  I updated this code and ran the test again
and it passed.

I added a test case that runs on PowerPC 32-bit Linux systems and it calls
the __trampoline_setup function with a larger buffer size than the
compiler uses.  The test is not run on 64-bit systems, since the function
__trampoline_setup is not called.  I also limited the test to just Linux
systems, in case trampolines are handled differently in other systems.

libgcc/
2021-04-23  Michael Meissner  <meissner@linux.ibm.com>

	PR target/98952
	* config/rs6000/tramp.S (__trampoline_setup, elfv1 #ifdef): Fix
	trampoline size comparison in 32-bit by reversing test and
	combining load immediate with compare.
	(__trampoline_setup, elfv2 #ifdef): Fix trampoline size comparison
	in 32-bit by reversing test and combining load immediate with
	compare.

gcc/testsuite/
2021-04-23  Michael Meissner  <meissner@linux.ibm.com>

	PR target/98952
	* gcc.target/powerpc/pr98952.c: New test.
2021-04-23 18:16:03 -04: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 CMSE support detection in libgcc (PR target/99157) 2021-02-24 16:00:21 +00: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 Update copyright years. 2021-01-04 10:26:59 +01: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 Update copyright years. 2021-01-04 10:26:59 +01: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 Fix logic error in 32-bit trampolines. 2021-04-23 18:16:03 -04: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
darwin-64.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
darwin-crt3.c Update copyright years. 2021-01-04 10:26:59 +01:00
darwin10-unwind-find-enc-func.c
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