summaryrefslogtreecommitdiff
path: root/deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h')
-rw-r--r--deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h123
1 files changed, 97 insertions, 26 deletions
diff --git a/deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h b/deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h
index 09bce6d450..c997e9706d 100644
--- a/deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h
+++ b/deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h
@@ -28,17 +28,17 @@ void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value,
BAILOUT("LoadConstant");
}
-void LiftoffAssembler::LoadFromContext(Register dst, uint32_t offset,
- int size) {
- BAILOUT("LoadFromContext");
+void LiftoffAssembler::LoadFromInstance(Register dst, uint32_t offset,
+ int size) {
+ BAILOUT("LoadFromInstance");
}
-void LiftoffAssembler::SpillContext(Register context) {
- BAILOUT("SpillContext");
+void LiftoffAssembler::SpillInstance(Register instance) {
+ BAILOUT("SpillInstance");
}
-void LiftoffAssembler::FillContextInto(Register dst) {
- BAILOUT("FillContextInto");
+void LiftoffAssembler::FillInstanceInto(Register dst) {
+ BAILOUT("FillInstanceInto");
}
void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr,
@@ -101,26 +101,36 @@ void LiftoffAssembler::FillI64Half(Register, uint32_t half_index) {
#define UNIMPLEMENTED_GP_BINOP(name) \
void LiftoffAssembler::emit_##name(Register dst, Register lhs, \
Register rhs) { \
- BAILOUT("gp binop"); \
+ BAILOUT("gp binop: " #name); \
+ }
+#define UNIMPLEMENTED_I64_BINOP(name) \
+ void LiftoffAssembler::emit_##name(LiftoffRegister dst, LiftoffRegister lhs, \
+ LiftoffRegister rhs) { \
+ BAILOUT("i64 binop: " #name); \
}
#define UNIMPLEMENTED_GP_UNOP(name) \
bool LiftoffAssembler::emit_##name(Register dst, Register src) { \
- BAILOUT("gp unop"); \
+ BAILOUT("gp unop: " #name); \
return true; \
}
#define UNIMPLEMENTED_FP_BINOP(name) \
void LiftoffAssembler::emit_##name(DoubleRegister dst, DoubleRegister lhs, \
DoubleRegister rhs) { \
- BAILOUT("fp binop"); \
+ BAILOUT("fp binop: " #name); \
}
#define UNIMPLEMENTED_FP_UNOP(name) \
void LiftoffAssembler::emit_##name(DoubleRegister dst, DoubleRegister src) { \
- BAILOUT("fp unop"); \
+ BAILOUT("fp unop: " #name); \
+ }
+#define UNIMPLEMENTED_I32_SHIFTOP(name) \
+ void LiftoffAssembler::emit_##name(Register dst, Register src, \
+ Register amount, LiftoffRegList pinned) { \
+ BAILOUT("i32 shiftop: " #name); \
}
-#define UNIMPLEMENTED_SHIFTOP(name) \
- void LiftoffAssembler::emit_##name(Register dst, Register lhs, Register rhs, \
- LiftoffRegList pinned) { \
- BAILOUT("shiftop"); \
+#define UNIMPLEMENTED_I64_SHIFTOP(name) \
+ void LiftoffAssembler::emit_##name(LiftoffRegister dst, LiftoffRegister src, \
+ Register amount, LiftoffRegList pinned) { \
+ BAILOUT("i64 shiftop: " #name); \
}
UNIMPLEMENTED_GP_BINOP(i32_add)
@@ -129,47 +139,99 @@ UNIMPLEMENTED_GP_BINOP(i32_mul)
UNIMPLEMENTED_GP_BINOP(i32_and)
UNIMPLEMENTED_GP_BINOP(i32_or)
UNIMPLEMENTED_GP_BINOP(i32_xor)
-UNIMPLEMENTED_SHIFTOP(i32_shl)
-UNIMPLEMENTED_SHIFTOP(i32_sar)
-UNIMPLEMENTED_SHIFTOP(i32_shr)
+UNIMPLEMENTED_I32_SHIFTOP(i32_shl)
+UNIMPLEMENTED_I32_SHIFTOP(i32_sar)
+UNIMPLEMENTED_I32_SHIFTOP(i32_shr)
+UNIMPLEMENTED_I64_BINOP(i64_add)
+UNIMPLEMENTED_I64_BINOP(i64_sub)
+UNIMPLEMENTED_I64_BINOP(i64_and)
+UNIMPLEMENTED_I64_BINOP(i64_or)
+UNIMPLEMENTED_I64_BINOP(i64_xor)
+UNIMPLEMENTED_I64_SHIFTOP(i64_shl)
+UNIMPLEMENTED_I64_SHIFTOP(i64_sar)
+UNIMPLEMENTED_I64_SHIFTOP(i64_shr)
UNIMPLEMENTED_GP_UNOP(i32_clz)
UNIMPLEMENTED_GP_UNOP(i32_ctz)
UNIMPLEMENTED_GP_UNOP(i32_popcnt)
-UNIMPLEMENTED_GP_BINOP(ptrsize_add)
UNIMPLEMENTED_FP_BINOP(f32_add)
UNIMPLEMENTED_FP_BINOP(f32_sub)
UNIMPLEMENTED_FP_BINOP(f32_mul)
+UNIMPLEMENTED_FP_BINOP(f32_div)
+UNIMPLEMENTED_FP_UNOP(f32_abs)
UNIMPLEMENTED_FP_UNOP(f32_neg)
+UNIMPLEMENTED_FP_UNOP(f32_ceil)
+UNIMPLEMENTED_FP_UNOP(f32_floor)
+UNIMPLEMENTED_FP_UNOP(f32_trunc)
+UNIMPLEMENTED_FP_UNOP(f32_nearest_int)
+UNIMPLEMENTED_FP_UNOP(f32_sqrt)
UNIMPLEMENTED_FP_BINOP(f64_add)
UNIMPLEMENTED_FP_BINOP(f64_sub)
UNIMPLEMENTED_FP_BINOP(f64_mul)
+UNIMPLEMENTED_FP_BINOP(f64_div)
+UNIMPLEMENTED_FP_UNOP(f64_abs)
UNIMPLEMENTED_FP_UNOP(f64_neg)
+UNIMPLEMENTED_FP_UNOP(f64_ceil)
+UNIMPLEMENTED_FP_UNOP(f64_floor)
+UNIMPLEMENTED_FP_UNOP(f64_trunc)
+UNIMPLEMENTED_FP_UNOP(f64_nearest_int)
+UNIMPLEMENTED_FP_UNOP(f64_sqrt)
#undef UNIMPLEMENTED_GP_BINOP
+#undef UNIMPLEMENTED_I64_BINOP
#undef UNIMPLEMENTED_GP_UNOP
#undef UNIMPLEMENTED_FP_BINOP
#undef UNIMPLEMENTED_FP_UNOP
-#undef UNIMPLEMENTED_SHIFTOP
+#undef UNIMPLEMENTED_I32_SHIFTOP
+#undef UNIMPLEMENTED_I64_SHIFTOP
+
+bool LiftoffAssembler::emit_type_conversion(WasmOpcode opcode,
+ LiftoffRegister dst,
+ LiftoffRegister src) {
+ BAILOUT("emit_type_conversion");
+ return true;
+}
void LiftoffAssembler::emit_jump(Label* label) { BAILOUT("emit_jump"); }
+void LiftoffAssembler::emit_jump(Register target) { BAILOUT("emit_jump"); }
+
void LiftoffAssembler::emit_cond_jump(Condition cond, Label* label,
ValueType type, Register lhs,
Register rhs) {
BAILOUT("emit_cond_jump");
}
+void LiftoffAssembler::emit_i32_eqz(Register dst, Register src) {
+ BAILOUT("emit_i32_eqz");
+}
+
void LiftoffAssembler::emit_i32_set_cond(Condition cond, Register dst,
Register lhs, Register rhs) {
BAILOUT("emit_i32_set_cond");
}
+void LiftoffAssembler::emit_i64_eqz(Register dst, LiftoffRegister src) {
+ BAILOUT("emit_i64_eqz");
+}
+
+void LiftoffAssembler::emit_i64_set_cond(Condition cond, Register dst,
+ LiftoffRegister lhs,
+ LiftoffRegister rhs) {
+ BAILOUT("emit_i64_set_cond");
+}
+
void LiftoffAssembler::emit_f32_set_cond(Condition cond, Register dst,
DoubleRegister lhs,
DoubleRegister rhs) {
BAILOUT("emit_f32_set_cond");
}
+void LiftoffAssembler::emit_f64_set_cond(Condition cond, Register dst,
+ DoubleRegister lhs,
+ DoubleRegister rhs) {
+ BAILOUT("emit_f64_set_cond");
+}
+
void LiftoffAssembler::StackCheck(Label* ool_code) { BAILOUT("StackCheck"); }
void LiftoffAssembler::CallTrapCallbackForTesting() {
@@ -203,25 +265,34 @@ void LiftoffAssembler::DropStackSlotsAndRet(uint32_t num_stack_slots) {
BAILOUT("DropStackSlotsAndRet");
}
-void LiftoffAssembler::PrepareCCall(uint32_t num_params, const Register* args) {
+void LiftoffAssembler::PrepareCCall(wasm::FunctionSig* sig,
+ const LiftoffRegister* args,
+ ValueType out_argument_type) {
BAILOUT("PrepareCCall");
}
-void LiftoffAssembler::SetCCallRegParamAddr(Register dst, uint32_t param_idx,
- uint32_t num_params) {
+void LiftoffAssembler::SetCCallRegParamAddr(Register dst, int param_byte_offset,
+ ValueType type) {
BAILOUT("SetCCallRegParamAddr");
}
-void LiftoffAssembler::SetCCallStackParamAddr(uint32_t stack_param_idx,
- uint32_t param_idx,
- uint32_t num_params) {
+void LiftoffAssembler::SetCCallStackParamAddr(int stack_param_idx,
+ int param_byte_offset,
+ ValueType type) {
BAILOUT("SetCCallStackParamAddr");
}
+void LiftoffAssembler::LoadCCallOutArgument(LiftoffRegister dst, ValueType type,
+ int param_byte_offset) {
+ BAILOUT("LoadCCallOutArgument");
+}
+
void LiftoffAssembler::CallC(ExternalReference ext_ref, uint32_t num_params) {
BAILOUT("CallC");
}
+void LiftoffAssembler::FinishCCall() { BAILOUT("FinishCCall"); }
+
void LiftoffAssembler::CallNativeWasmCode(Address addr) {
BAILOUT("CallNativeWasmCode");
}