Commit a8052c9e authored by Milad Farazmand's avatar Milad Farazmand Committed by Commit Bot

PPC/s390: [Liftoff] Implement i32 shift with immediate

Port 9c4ffc38

Original Commit Message:

    In fact, shifts are used most often with a fixed shift amount. This CL
    adds special handling for this in Liftoff, to generate shorter and
    faster code.

R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I20f8cfa6930bc20eb8db33a99bd07fce49f3f74d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899907Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64777}
parent c8dfd2cf
......@@ -234,6 +234,10 @@ void LiftoffAssembler::FillStackSlotsWithZero(uint32_t index, uint32_t count) {
void LiftoffAssembler::emit_##name(Register dst, Register src, \
Register amount) { \
bailout(kUnsupportedArchitecture, "i32 shiftop: " #name); \
} \
void LiftoffAssembler::emit_##name(Register dst, Register src, \
int32_t amount) { \
bailout(kUnsupportedArchitecture, "i32 shiftop: " #name); \
}
#define UNIMPLEMENTED_I64_SHIFTOP(name) \
void LiftoffAssembler::emit_##name(LiftoffRegister dst, LiftoffRegister src, \
......@@ -329,10 +333,6 @@ void LiftoffAssembler::emit_i32_remu(Register dst, Register lhs, Register rhs,
bailout(kUnsupportedArchitecture, "i32_remu");
}
void LiftoffAssembler::emit_i32_shr(Register dst, Register lhs, int amount) {
bailout(kUnsupportedArchitecture, "i32_shr");
}
bool LiftoffAssembler::emit_i64_divs(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs,
Label* trap_div_by_zero,
......
......@@ -233,6 +233,10 @@ void LiftoffAssembler::FillStackSlotsWithZero(uint32_t index, uint32_t count) {
void LiftoffAssembler::emit_##name(Register dst, Register src, \
Register amount) { \
bailout(kUnsupportedArchitecture, "i32 shiftop: " #name); \
} \
void LiftoffAssembler::emit_##name(Register dst, Register src, \
int32_t amount) { \
bailout(kUnsupportedArchitecture, "i32 shiftop: " #name); \
}
#define UNIMPLEMENTED_I64_SHIFTOP(name) \
void LiftoffAssembler::emit_##name(LiftoffRegister dst, LiftoffRegister src, \
......@@ -328,10 +332,6 @@ void LiftoffAssembler::emit_i32_remu(Register dst, Register lhs, Register rhs,
bailout(kUnsupportedArchitecture, "i32_remu");
}
void LiftoffAssembler::emit_i32_shr(Register dst, Register lhs, int amount) {
bailout(kUnsupportedArchitecture, "i32_shr");
}
bool LiftoffAssembler::emit_i64_divs(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs,
Label* trap_div_by_zero,
......
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