diff options
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.h | 123 |
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"); } |