diff options
Diffstat (limited to 'gcc/config/s390/s390.h')
-rw-r--r-- | gcc/config/s390/s390.h | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h index b4a23c3..0932591 100644 --- a/gcc/config/s390/s390.h +++ b/gcc/config/s390/s390.h @@ -577,29 +577,6 @@ extern const enum reg_class regclass_map[FIRST_PSEUDO_REGISTER]; #define REGNO_OK_FOR_BASE_P(REGNO) REGNO_OK_FOR_INDEX_P (REGNO) -/* We need secondary memory to move data between GPRs and FPRs. - - - With DFP the ldgr lgdr instructions are available. Due to the - different alignment we cannot use them for SFmode. For 31 bit a - 64 bit value in GPR would be a register pair so here we still - need to go via memory. - - - With z13 we can do the SF/SImode moves with vlgvf. Due to the - overlapping of FPRs and VRs we still disallow TF/TD modes to be - in full VRs so as before also on z13 we do these moves via - memory. - - FIXME: Should we try splitting it into two vlgvg's/vlvg's instead? */ -#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \ - (((reg_classes_intersect_p ((CLASS1), VEC_REGS) \ - && reg_classes_intersect_p ((CLASS2), GENERAL_REGS)) \ - || (reg_classes_intersect_p ((CLASS1), GENERAL_REGS) \ - && reg_classes_intersect_p ((CLASS2), VEC_REGS))) \ - && (!TARGET_DFP || !TARGET_64BIT || GET_MODE_SIZE (MODE) != 8) \ - && (!TARGET_VX || (SCALAR_FLOAT_MODE_P (MODE) \ - && GET_MODE_SIZE (MODE) > 8))) - - /* Stack layout and calling conventions. */ /* Our stack grows from higher to lower addresses. However, local variables |