PR target/41175 PR target/40677 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence problem. (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits. (rs6000_savres_strategy): Always save FP registers inline if the target doesn't support hardware double-precision. Set the above bits in return value when needed. (rs6000_savres_routine_sym): Fix computation for cache selector. Mark the generated symbol as a function. Rename exitp argument to lr. Move code for determining the name of the symbol... (rs6000_savres_routine_name): ...here. New function. Add cases for getting the names right on AIX and 64-bit Linux. (savres_routine_name): New variable. (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert lr isn't set when savep. Use r12 resp. r1 instead of r11 depending on what the target routine uses as a base register. If savep && lr describe saving of r0 into memory slot. (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of line calls for AIX ABI. (rs6000_output_function_prologue): Use rs6000_savres_routine_name to determine FP save/restore functions. (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of gen_addsi3. (rs6000_emit_epilogue): Adjust computation of restore_lr. Duplicate restoration of LR and execute the appropriate one depending on whether GPRs are being restored inline. Set r11 from offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3. Fix out of line calls for AIX ABI. * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>): New insn. * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for register 11. (*restore_gpregs_spe): Likewise. (*return_and_restore_gpregs_spe): Likewise. * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Define to empty string unconditionally. * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Define to empty string unconditionally. (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as !TARGET_64BIT. * gcc.target/powerpc/pr41175.c: New test. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r151729
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
20020118-1.c | Loading commit data... | |
20030218-1.c | Loading commit data... | |
20030505.c | Loading commit data... | |
20040121-1.c | Loading commit data... | |
20040622-1.c | Loading commit data... | |
20041111-1.c | Loading commit data... | |
20050603-1.c | Loading commit data... | |
20050603-3.c | Loading commit data... | |
20050830-1.c | Loading commit data... | |
20081204-1.c | Loading commit data... | |
405-dlmzb-strlen-1.c | Loading commit data... | |
405-macchw-1.c | Loading commit data... | |
405-macchw-2.c | Loading commit data... | |
405-macchwu-1.c | Loading commit data... | |
405-macchwu-2.c | Loading commit data... | |
405-machhw-1.c | Loading commit data... | |
405-machhw-2.c | Loading commit data... | |
405-machhwu-1.c | Loading commit data... | |
405-machhwu-2.c | Loading commit data... | |
405-maclhw-1.c | Loading commit data... | |
405-maclhw-2.c | Loading commit data... | |
405-maclhwu-1.c | Loading commit data... | |
405-maclhwu-2.c | Loading commit data... | |
405-mulchw-1.c | Loading commit data... | |
405-mulchw-2.c | Loading commit data... | |
405-mulchwu-1.c | Loading commit data... | |
405-mulchwu-2.c | Loading commit data... | |
405-mulhhw-1.c | Loading commit data... | |
405-mulhhw-2.c | Loading commit data... | |
405-mulhhwu-1.c | Loading commit data... | |
405-mulhhwu-2.c | Loading commit data... | |
405-mullhw-1.c | Loading commit data... | |
405-mullhw-2.c | Loading commit data... | |
405-mullhwu-1.c | Loading commit data... | |
405-mullhwu-2.c | Loading commit data... | |
405-nmacchw-1.c | Loading commit data... | |
405-nmacchw-2.c | Loading commit data... | |
405-nmachhw-1.c | Loading commit data... | |
405-nmachhw-2.c | Loading commit data... | |
405-nmaclhw-1.c | Loading commit data... | |
405-nmaclhw-2.c | Loading commit data... | |
440-dlmzb-strlen-1.c | Loading commit data... | |
440-macchw-1.c | Loading commit data... | |
440-macchw-2.c | Loading commit data... | |
440-macchwu-1.c | Loading commit data... | |
440-macchwu-2.c | Loading commit data... | |
440-machhw-1.c | Loading commit data... | |
440-machhw-2.c | Loading commit data... | |
440-machhwu-1.c | Loading commit data... | |
440-machhwu-2.c | Loading commit data... | |
440-maclhw-1.c | Loading commit data... | |
440-maclhw-2.c | Loading commit data... | |
440-maclhwu-1.c | Loading commit data... | |
440-maclhwu-2.c | Loading commit data... | |
440-mulchw-1.c | Loading commit data... | |
440-mulchw-2.c | Loading commit data... | |
440-mulchwu-1.c | Loading commit data... | |
440-mulchwu-2.c | Loading commit data... | |
440-mulhhw-1.c | Loading commit data... | |
440-mulhhw-2.c | Loading commit data... | |
440-mulhhwu-1.c | Loading commit data... | |
440-mulhhwu-2.c | Loading commit data... | |
440-mullhw-1.c | Loading commit data... | |
440-mullhw-2.c | Loading commit data... | |
440-mullhwu-1.c | Loading commit data... | |
440-mullhwu-2.c | Loading commit data... | |
440-nmacchw-1.c | Loading commit data... | |
440-nmacchw-2.c | Loading commit data... | |
440-nmachhw-1.c | Loading commit data... | |
440-nmachhw-2.c | Loading commit data... | |
440-nmaclhw-1.c | Loading commit data... | |
440-nmaclhw-2.c | Loading commit data... | |
980827-1.c | Loading commit data... | |
altivec-1.c | Loading commit data... | |
altivec-10.c | Loading commit data... | |
altivec-11.c | Loading commit data... | |
altivec-12.c | Loading commit data... | |
altivec-13.c | Loading commit data... | |
altivec-14.c | Loading commit data... | |
altivec-15.c | Loading commit data... | |
altivec-16.c | Loading commit data... | |
altivec-17.c | Loading commit data... | |
altivec-18.c | Loading commit data... | |
altivec-19.c | Loading commit data... | |
altivec-2.c | Loading commit data... | |
altivec-20.c | Loading commit data... | |
altivec-21.c | Loading commit data... | |
altivec-22.c | Loading commit data... | |
altivec-23.c | Loading commit data... | |
altivec-24.c | Loading commit data... | |
altivec-25.c | Loading commit data... | |
altivec-26.c | Loading commit data... | |
altivec-27.c | Loading commit data... | |
altivec-28.c | Loading commit data... | |
altivec-29.c | Loading commit data... | |
altivec-3.c | Loading commit data... | |
altivec-30.c | Loading commit data... | |
altivec-31.c | Loading commit data... | |
altivec-32.c | Loading commit data... | |
altivec-4.c | Loading commit data... | |
altivec-5.c | Loading commit data... | |
altivec-6.c | Loading commit data... | |
altivec-7.c | Loading commit data... | |
altivec-8.c | Loading commit data... | |
altivec-9.c | Loading commit data... | |
altivec-cell-1.c | Loading commit data... | |
altivec-cell-2.c | Loading commit data... | |
altivec-cell-3.c | Loading commit data... | |
altivec-cell-4.c | Loading commit data... | |
altivec-cell-5.c | Loading commit data... | |
altivec-cell-6.c | Loading commit data... | |
altivec-cell-7.c | Loading commit data... | |
altivec-cell-8.c | Loading commit data... | |
altivec-consts.c | Loading commit data... | |
altivec-macros.c | Loading commit data... | |
altivec-pr22085.c | Loading commit data... | |
altivec-splat.c | Loading commit data... | |
altivec-types-1.c | Loading commit data... | |
altivec-types-2.c | Loading commit data... | |
altivec-types-3.c | Loading commit data... | |
altivec-types-4.c | Loading commit data... | |
altivec-varargs-1.c | Loading commit data... | |
altivec-vec-merge.c | Loading commit data... | |
altivec-volatile.c | Loading commit data... | |
asm-es-1.c | Loading commit data... | |
asm-es-2.c | Loading commit data... | |
asm-y.c | Loading commit data... | |
avoid-indexed-addresses.c | Loading commit data... | |
bswap-run.c | Loading commit data... | |
bswap16.c | Loading commit data... | |
bswap32.c | Loading commit data... | |
bswap64-1.c | Loading commit data... | |
bswap64-2.c | Loading commit data... | |
bswap64-3.c | Loading commit data... | |
bswap64-4.c | Loading commit data... | |
compress-float-ppc-pic.c | Loading commit data... | |
compress-float-ppc.c | Loading commit data... | |
const-compare.c | Loading commit data... | |
darwin-abi-1.c | Loading commit data... | |
darwin-abi-10.c | Loading commit data... | |
darwin-abi-11.c | Loading commit data... | |
darwin-abi-2.c | Loading commit data... | |
darwin-abi-3.c | Loading commit data... | |
darwin-abi-4.c | Loading commit data... | |
darwin-abi-5.c | Loading commit data... | |
darwin-abi-6.c | Loading commit data... | |
darwin-abi-7.c | Loading commit data... | |
darwin-abi-8.c | Loading commit data... | |
darwin-abi-9.c | Loading commit data... | |
darwin-bool-1.c | Loading commit data... | |
darwin-bool-2.c | Loading commit data... | |
darwin-ehreturn-1.c | Loading commit data... | |
darwin-longdouble.c | Loading commit data... | |
darwin-longlong.c | Loading commit data... | |
darwin-misaligned.c | Loading commit data... | |
darwin-save-world-1.c | Loading commit data... | |
dfp-dd.c | Loading commit data... | |
dfp-td.c | Loading commit data... | |
doloop-1.c | Loading commit data... | |
e500-1.c | Loading commit data... | |
gcse-1.c | Loading commit data... | |
indexed-addr.c | Loading commit data... | |
leaf.c | Loading commit data... | |
longcall-1.c | Loading commit data... | |
macho-lo-sum.c | Loading commit data... | |
non-lazy-ptr-test.c | Loading commit data... | |
optimize-bswapdi-2.c | Loading commit data... | |
optimize-bswapdi-3.c | Loading commit data... | |
optimize-bswapsi-2.c | Loading commit data... | |
paired-1.c | Loading commit data... | |
paired-10.c | Loading commit data... | |
paired-2.c | Loading commit data... | |
paired-3.c | Loading commit data... | |
paired-4.c | Loading commit data... | |
paired-5.c | Loading commit data... | |
paired-6.c | Loading commit data... | |
paired-7.c | Loading commit data... | |
paired-8.c | Loading commit data... | |
paired-9.c | Loading commit data... | |
parity-1.c | Loading commit data... | |
popcount-1.c | Loading commit data... | |
popcount-2.c | Loading commit data... | |
popcount-3.c | Loading commit data... | |
powerpc.exp | Loading commit data... | |
ppc-and-1.c | Loading commit data... | |
ppc-bitfield1.c | Loading commit data... | |
ppc-compare-1.c | Loading commit data... | |
ppc-eabi.c | Loading commit data... | |
ppc-eq0-1.c | Loading commit data... | |
ppc-fmadd-1.c | Loading commit data... | |
ppc-fmadd-2.c | Loading commit data... | |
ppc-fmadd-3.c | Loading commit data... | |
ppc-fsel-1.c | Loading commit data... | |
ppc-fsel-2.c | Loading commit data... | |
ppc-fsel-3.c | Loading commit data... | |
ppc-ldstruct.c | Loading commit data... | |
ppc-mov-1.c | Loading commit data... | |
ppc-negeq0-1.c | Loading commit data... | |
ppc-paired.c | Loading commit data... | |
ppc-sdata-1.c | Loading commit data... | |
ppc-sdata-2.c | Loading commit data... | |
ppc-spe.c | Loading commit data... | |
ppc-spe64-1.c | Loading commit data... | |
ppc-stackalign-1.c | Loading commit data... | |
ppc-stfiwx.c | Loading commit data... | |
ppc-vector-memcpy.c | Loading commit data... | |
ppc-vector-memset.c | Loading commit data... | |
ppc32-abi-dfp-1.c | Loading commit data... | |
ppc64-abi-1.c | Loading commit data... | |
ppc64-abi-2.c | Loading commit data... | |
ppc64-abi-3.c | Loading commit data... | |
ppc64-abi-dfp-1.c | Loading commit data... | |
ppc64-double-1.c | Loading commit data... | |
ppc64-toc.c | Loading commit data... | |
ppu-intrinsics.c | Loading commit data... | |
pr16155.c | Loading commit data... | |
pr16286.c | Loading commit data... | |
pr18096-1.c | Loading commit data... | |
pr25960.c | Loading commit data... | |
pr26350.c | Loading commit data... | |
pr27158.c | Loading commit data... | |
pr35907.c | Loading commit data... | |
pr37168.c | Loading commit data... | |
pr39457.c | Loading commit data... | |
pr39902-2.c | Loading commit data... | |
pr41175.c | Loading commit data... | |
rotate.c | Loading commit data... | |
rs6000-fpint-2.c | Loading commit data... | |
rs6000-fpint.c | Loading commit data... | |
rs6000-ldouble-1.c | Loading commit data... | |
rs6000-ldouble-2.c | Loading commit data... | |
rs6000-power2-1.c | Loading commit data... | |
rs6000-power2-2.c | Loading commit data... | |
spe-small-data-1.c | Loading commit data... | |
spe-small-data-2.c | Loading commit data... | |
spe-unwind-1.c | Loading commit data... | |
spe-vector-memcpy.c | Loading commit data... | |
spe-vector-memset.c | Loading commit data... | |
spe1.c | Loading commit data... | |
stabs-attrib-vect-darwin.c | Loading commit data... | |
vsx-builtin-1.c | Loading commit data... | |
vsx-builtin-2.c | Loading commit data... | |
vsx-builtin-3.c | Loading commit data... | |
vsx-builtin-4.c | Loading commit data... | |
vsx-builtin-5.c | Loading commit data... | |
vsx-builtin-6.c | Loading commit data... | |
vsx-builtin-7.c | Loading commit data... | |
vsx-vector-1.c | Loading commit data... | |
vsx-vector-2.c | Loading commit data... | |
vsx-vector-3.c | Loading commit data... | |
vsx-vector-4.c | Loading commit data... | |
vsx-vector-5.c | Loading commit data... | |
vsx-vector-6.c | Loading commit data... |