aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2020-12-10 15:43:59 +0100
committerIlya Leoshkevich <iii@linux.ibm.com>2021-03-16 13:57:34 +0100
commit4073a09e23944b17cd1afce77025b1ea19b28ced (patch)
tree5d9bb0a528e524c62e227edc69c9995b0c002832 /gcc/ada/gcc-interface/utils.c
parent995a740cb01a0671a2082cb1ae13d0c356d4b568 (diff)
downloadgcc-4073a09e23944b17cd1afce77025b1ea19b28ced.zip
gcc-4073a09e23944b17cd1afce77025b1ea19b28ced.tar.gz
gcc-4073a09e23944b17cd1afce77025b1ea19b28ced.tar.bz2
IBM Z: Fix "+fvm" constraint with long doubles
When a long double is passed to an asm statement with a "+fvm" constraint, a LRA loop occurs. This happens, because LRA chooses the widest register class in this case (VEC_REGS), but the code generated by s390_md_asm_adjust() always wants FP_REGS. Mismatching register classes cause infinite reloading. Fix by treating "fv" constraints as "v" in s390_md_asm_adjust(). gcc/ChangeLog: * config/s390/s390.c (f_constraint_p): Treat "fv" constraints as "v". gcc/testsuite/ChangeLog: * gcc.target/s390/vector/long-double-asm-fprvrmem.c: New test.
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
0 files changed, 0 insertions, 0 deletions