Commit 9dbcf87f authored by Peter Kasting's avatar Peter Kasting Committed by V8 LUCI CQ

Use constexpr more, especially in place of enums.

This fixes C++20 compile errors due to math between disparate enum types
being deprecated (e.g. ENUM_A_VAL | ENUM_B_VAL).

Bug: chromium:1284275
Change-Id: I7fc83888bb9c8156909cbc3ea1b30ef94d4a2c1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3830986
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82539}
parent 805df68f
...@@ -2796,7 +2796,7 @@ NEON_FP2REGMISC_FCVT_LIST(DEFINE_ASM_FUNCS) ...@@ -2796,7 +2796,7 @@ NEON_FP2REGMISC_FCVT_LIST(DEFINE_ASM_FUNCS)
void Assembler::scvtf(const VRegister& vd, const VRegister& vn, int fbits) { void Assembler::scvtf(const VRegister& vd, const VRegister& vn, int fbits) {
DCHECK_GE(fbits, 0); DCHECK_GE(fbits, 0);
if (fbits == 0) { if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_SCVTF); NEONFP2RegMisc(vd, vn, NEON_SCVTF, 0.0);
} else { } else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S()); DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_SCVTF_imm); NEONShiftRightImmediate(vd, vn, fbits, NEON_SCVTF_imm);
...@@ -2806,7 +2806,7 @@ void Assembler::scvtf(const VRegister& vd, const VRegister& vn, int fbits) { ...@@ -2806,7 +2806,7 @@ void Assembler::scvtf(const VRegister& vd, const VRegister& vn, int fbits) {
void Assembler::ucvtf(const VRegister& vd, const VRegister& vn, int fbits) { void Assembler::ucvtf(const VRegister& vd, const VRegister& vn, int fbits) {
DCHECK_GE(fbits, 0); DCHECK_GE(fbits, 0);
if (fbits == 0) { if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_UCVTF); NEONFP2RegMisc(vd, vn, NEON_UCVTF, 0.0);
} else { } else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S()); DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_UCVTF_imm); NEONShiftRightImmediate(vd, vn, fbits, NEON_UCVTF_imm);
...@@ -2871,15 +2871,12 @@ void Assembler::NEONFP3Same(const VRegister& vd, const VRegister& vn, ...@@ -2871,15 +2871,12 @@ void Assembler::NEONFP3Same(const VRegister& vd, const VRegister& vn,
#define DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP) \ #define DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP) \
void Assembler::FN(const VRegister& vd, const VRegister& vn) { \ void Assembler::FN(const VRegister& vd, const VRegister& vn) { \
Instr op; \
if (vd.IsScalar()) { \ if (vd.IsScalar()) { \
DCHECK(vd.Is1S() || vd.Is1D()); \ DCHECK(vd.Is1S() || vd.Is1D()); \
op = SCA_OP; \ NEONFP2RegMisc(vd, vn, SCA_OP); \
} else { \ } else { \
DCHECK(vd.Is2S() || vd.Is2D() || vd.Is4S()); \ NEONFP2RegMisc(vd, vn, VEC_OP, 0.0); \
op = VEC_OP; \
} \ } \
NEONFP2RegMisc(vd, vn, op); \
} }
NEON_FP2REGMISC_LIST(DEFINE_ASM_FUNC) NEON_FP2REGMISC_LIST(DEFINE_ASM_FUNC)
#undef DEFINE_ASM_FUNC #undef DEFINE_ASM_FUNC
...@@ -2958,7 +2955,7 @@ void Assembler::fcvtzs(const Register& rd, const VRegister& vn, int fbits) { ...@@ -2958,7 +2955,7 @@ void Assembler::fcvtzs(const Register& rd, const VRegister& vn, int fbits) {
void Assembler::fcvtzs(const VRegister& vd, const VRegister& vn, int fbits) { void Assembler::fcvtzs(const VRegister& vd, const VRegister& vn, int fbits) {
DCHECK_GE(fbits, 0); DCHECK_GE(fbits, 0);
if (fbits == 0) { if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_FCVTZS); NEONFP2RegMisc(vd, vn, NEON_FCVTZS, 0.0);
} else { } else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S()); DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_FCVTZS_imm); NEONShiftRightImmediate(vd, vn, fbits, NEON_FCVTZS_imm);
...@@ -2979,7 +2976,7 @@ void Assembler::fcvtzu(const Register& rd, const VRegister& vn, int fbits) { ...@@ -2979,7 +2976,7 @@ void Assembler::fcvtzu(const Register& rd, const VRegister& vn, int fbits) {
void Assembler::fcvtzu(const VRegister& vd, const VRegister& vn, int fbits) { void Assembler::fcvtzu(const VRegister& vd, const VRegister& vn, int fbits) {
DCHECK_GE(fbits, 0); DCHECK_GE(fbits, 0);
if (fbits == 0) { if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_FCVTZU); NEONFP2RegMisc(vd, vn, NEON_FCVTZU, 0.0);
} else { } else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S()); DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_FCVTZU_imm); NEONShiftRightImmediate(vd, vn, fbits, NEON_FCVTZU_imm);
......
...@@ -2566,7 +2566,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { ...@@ -2566,7 +2566,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
void NEON3DifferentHN(const VRegister& vd, const VRegister& vn, void NEON3DifferentHN(const VRegister& vd, const VRegister& vn,
const VRegister& vm, NEON3DifferentOp vop); const VRegister& vm, NEON3DifferentOp vop);
void NEONFP2RegMisc(const VRegister& vd, const VRegister& vn, void NEONFP2RegMisc(const VRegister& vd, const VRegister& vn,
NEON2RegMiscOp vop, double value = 0.0); NEON2RegMiscOp vop, double value);
void NEON2RegMisc(const VRegister& vd, const VRegister& vn, void NEON2RegMisc(const VRegister& vd, const VRegister& vn,
NEON2RegMiscOp vop, int value = 0); NEON2RegMiscOp vop, int value = 0);
void NEONFP2RegMisc(const VRegister& vd, const VRegister& vn, Instr op); void NEONFP2RegMisc(const VRegister& vd, const VRegister& vn, Instr op);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment