Skip to content

Commit 574723b

Browse files
committed
Address Review comments
* generalize assert statements for the unequal masks * remove duplicate line
1 parent 344abb8 commit 574723b

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

src/mono/mono/mini/mini-codegen.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,9 @@ static void
141141
mono_regstate_assign (MonoRegState *rs)
142142
{
143143
#ifdef MONO_ARCH_USE_SHARED_FP_SIMD_BANK
144-
/* The regalloc may fail if fp and simd logical regbanks share the same physical reg bank and
145-
* if the values here are not the same.
146-
*/
147-
/* s390x has unequal regbank masks for vector and floats*/
148-
#ifndef TARGET_S390X
149-
g_assert(regbank_callee_regs [MONO_REG_SIMD] == regbank_callee_regs [MONO_REG_DOUBLE]);
150-
g_assert(regbank_size [MONO_REG_SIMD] == regbank_size [MONO_REG_DOUBLE]);
151-
#endif
144+
/* fp and simd logical banks may share the same physical reg bank with unequal overlapping registers */
145+
g_assert((regbank_callee_regs [MONO_REG_SIMD] & regbank_callee_regs[MONO_REG_DOUBLE]) == regbank_callee_regs [MONO_REG_DOUBLE]);
146+
g_assert(regbank_size [MONO_REG_SIMD] >= regbank_size [MONO_REG_DOUBLE]);
152147
g_assert(regbank_callee_saved_regs [MONO_REG_SIMD] == regbank_callee_saved_regs [MONO_REG_DOUBLE]);
153148
#endif
154149

src/mono/mono/mini/mini-s390x.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ struct SeqPointInfo {
8383
#define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1
8484
#define MONO_ARCH_HAVE_UNWIND_BACKTRACE 1
8585
#define MONO_ARCH_FLOAT32_SUPPORTED 1
86-
#define MONO_ARCH_NEED_SIMD_BANK 1
87-
#define MONO_ARCH_USE_SHARED_FP_SIMD_BANK 1
86+
#define MONO_ARCH_NEED_SIMD_BANK 1
87+
#define MONO_ARCH_USE_SHARED_FP_SIMD_BANK 1
8888
#define S390_STACK_ALIGNMENT 8
8989
#define S390_FIRST_ARG_REG s390_r2
9090
#define S390_LAST_ARG_REG s390_r6
@@ -150,8 +150,7 @@ struct SeqPointInfo {
150150
/*-----------------------------------------------*/
151151
/* f0 overlaps with v0 and vr16 is used internally */
152152
#define MONO_MAX_XREGS 31
153-
#define MONO_ARCH_CALLEE_XREGS 0xFFFEFFFE
154-
#define MONO_ARCH_CALLEE_XREGS 0x0
153+
#define MONO_ARCH_CALLEE_XREGS 0xFFFEFFFE
155154
#define MONO_ARCH_CALLEE_SAVED_XREGS 0x0
156155

157156
// Does the ABI have a volatile non-parameter register, so tailcall

0 commit comments

Comments
 (0)