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)
void Assembler::scvtf(const VRegister& vd, const VRegister& vn, int fbits) {
DCHECK_GE(fbits, 0);
if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_SCVTF);
NEONFP2RegMisc(vd, vn, NEON_SCVTF, 0.0);
} else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_SCVTF_imm);
......@@ -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) {
DCHECK_GE(fbits, 0);
if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_UCVTF);
NEONFP2RegMisc(vd, vn, NEON_UCVTF, 0.0);
} else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_UCVTF_imm);
......@@ -2871,15 +2871,12 @@ void Assembler::NEONFP3Same(const VRegister& vd, const VRegister& vn,
#define DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP) \
void Assembler::FN(const VRegister& vd, const VRegister& vn) { \
Instr op; \
if (vd.IsScalar()) { \
DCHECK(vd.Is1S() || vd.Is1D()); \
op = SCA_OP; \
NEONFP2RegMisc(vd, vn, SCA_OP); \
} else { \
DCHECK(vd.Is2S() || vd.Is2D() || vd.Is4S()); \
op = VEC_OP; \
NEONFP2RegMisc(vd, vn, VEC_OP, 0.0); \
} \
NEONFP2RegMisc(vd, vn, op); \
}
NEON_FP2REGMISC_LIST(DEFINE_ASM_FUNC)
#undef DEFINE_ASM_FUNC
......@@ -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) {
DCHECK_GE(fbits, 0);
if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_FCVTZS);
NEONFP2RegMisc(vd, vn, NEON_FCVTZS, 0.0);
} else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_FCVTZS_imm);
......@@ -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) {
DCHECK_GE(fbits, 0);
if (fbits == 0) {
NEONFP2RegMisc(vd, vn, NEON_FCVTZU);
NEONFP2RegMisc(vd, vn, NEON_FCVTZU, 0.0);
} else {
DCHECK(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S());
NEONShiftRightImmediate(vd, vn, fbits, NEON_FCVTZU_imm);
......
......@@ -2566,7 +2566,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
void NEON3DifferentHN(const VRegister& vd, const VRegister& vn,
const VRegister& vm, NEON3DifferentOp vop);
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,
NEON2RegMiscOp vop, int value = 0);
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