s390x: [liftoff] implement Popcnt32/64

Change-Id: I5bd0079eb81b962e03e475e48a7429933295f25a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2774564
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73552}
This commit is contained in:
Junliang Yan 2021-03-19 14:29:55 -04:00 committed by Commit Bot
parent f19142e613
commit 06b0f23dd1

View File

@ -801,6 +801,9 @@ void LiftoffAssembler::FillStackSlotsWithZero(int start, int size) {
// V(name, instr, dtype, stype, dcast, scast, rcast, return_val, return_type)
#define UNOP_LIST(V) \
V(i32_popcnt, Popcnt32, Register, Register, , , USE, true, bool) \
V(i64_popcnt, Popcnt64, LiftoffRegister, LiftoffRegister, LFR_TO_REG, \
LFR_TO_REG, USE, true, bool) \
V(u32_to_intptr, LoadU32, Register, Register, , , USE, , void) \
V(i32_signextend_i8, lbr, Register, Register, , , USE, , void) \
V(i32_signextend_i16, lhr, Register, Register, , , USE, , void) \
@ -933,17 +936,6 @@ BINOP_LIST(EMIT_BINOP_FUNCTION)
#undef REGISTER_AND_WITH_1F
#undef LFR_TO_REG
bool LiftoffAssembler::emit_i32_popcnt(Register dst, Register src) {
bailout(kUnsupportedArchitecture, "i32_popcnt");
return true;
}
bool LiftoffAssembler::emit_i64_popcnt(LiftoffRegister dst,
LiftoffRegister src) {
Popcnt64(dst.gp(), src.gp());
return true;
}
bool LiftoffAssembler::emit_f32_ceil(DoubleRegister dst, DoubleRegister src) {
fiebra(ROUND_TOWARD_POS_INF, dst, src);
return true;