From 69a6a678fe79dfb1cd0e1d094aea313f7fb8efbf Mon Sep 17 00:00:00 2001 From: Ilya Trubachev Date: Thu, 25 May 2023 14:01:38 +0300 Subject: [PATCH] Evict DecodedTaggedValue Signed-off-by: Ilya Trubachev --- runtime/bridge.h | 2 +- .../arch/aarch64/builtin_bridge_aarch64.S | 2 +- .../bridge/arch/amd64/builtin_bridge_amd64.S | 2 +- runtime/bridge/arch/arm/builtin_bridge_arm.S | 5 +---- runtime/ecma_language_context.h | 17 +--------------- runtime/js_invoker.cpp | 20 ------------------- 6 files changed, 5 insertions(+), 43 deletions(-) diff --git a/runtime/bridge.h b/runtime/bridge.h index fbecbf3a9..49560ca33 100644 --- a/runtime/bridge.h +++ b/runtime/bridge.h @@ -21,7 +21,7 @@ namespace panda { // Uses DynCall calling convention -extern "C" DecodedTaggedValue CompiledCodeToBuiltinBridge(); +extern "C" void CompiledCodeToBuiltinBridge(); } // namespace panda diff --git a/runtime/bridge/arch/aarch64/builtin_bridge_aarch64.S b/runtime/bridge/arch/aarch64/builtin_bridge_aarch64.S index 408d838c5..24b7bf4d2 100644 --- a/runtime/bridge/arch/aarch64/builtin_bridge_aarch64.S +++ b/runtime/bridge/arch/aarch64/builtin_bridge_aarch64.S @@ -19,7 +19,7 @@ // extern "C" uint64_t InvokeBuiltinHandleException(JSThread *thread, JSTaggedValue retval) .extern InvokeBuiltinHandleException -// DecodedTaggedValue CompiledCodeToBuiltinBridge, follows DynamicMethod calling convention +// CompiledCodeToBuiltinBridge, follows DynamicMethod calling convention .global CompiledCodeToBuiltinBridge .type CompiledCodeToBuiltinBridge, %function CompiledCodeToBuiltinBridge: diff --git a/runtime/bridge/arch/amd64/builtin_bridge_amd64.S b/runtime/bridge/arch/amd64/builtin_bridge_amd64.S index 140d20e17..3c934e490 100644 --- a/runtime/bridge/arch/amd64/builtin_bridge_amd64.S +++ b/runtime/bridge/arch/amd64/builtin_bridge_amd64.S @@ -20,7 +20,7 @@ // extern "C" uint64_t InvokeBuiltinHandleException(JSThread *thread, JSTaggedValue retval) .extern InvokeBuiltinHandleException -// DecodedTaggedValue CompiledCodeToBuiltinBridge, follows DynamicMethod calling convention +// CompiledCodeToBuiltinBridge, follows DynamicMethod calling convention .global CompiledCodeToBuiltinBridge .type CompiledCodeToBuiltinBridge, %function CompiledCodeToBuiltinBridge: diff --git a/runtime/bridge/arch/arm/builtin_bridge_arm.S b/runtime/bridge/arch/arm/builtin_bridge_arm.S index abd721f80..ac89266fa 100644 --- a/runtime/bridge/arch/arm/builtin_bridge_arm.S +++ b/runtime/bridge/arch/arm/builtin_bridge_arm.S @@ -13,11 +13,8 @@ * limitations under the License. */ -// DecodedTaggedValue InvokeBuiltin(ManagedThread* thread, Method* method, uint32_t num_args, -// DecodedTaggedValue* gpr_args, DecodedTaggedValue* stack_args) -.extern InvokeBuiltin -// DecodedTaggedValue CompiledCodeToBuiltinBridge(Method* method, uint32_t num_args, DecodedTaggedValue func_obj, ...); +// CompiledCodeToBuiltinBridge(Method* method, uint32_t num_args, panda::coretypes::TaggedValue func_obj, ...); .global CompiledCodeToBuiltinBridge .type CompiledCodeToBuiltinBridge, %function CompiledCodeToBuiltinBridge: diff --git a/runtime/ecma_language_context.h b/runtime/ecma_language_context.h index 79013806b..4356898e6 100644 --- a/runtime/ecma_language_context.h +++ b/runtime/ecma_language_context.h @@ -55,22 +55,7 @@ public: coretypes::TaggedValue GetInitialTaggedValue() const override { - UNREACHABLE(); - } - - uint64_t GetTypeTag(interpreter::TypeTag tag) const override - { - return tag; - } - - DecodedTaggedValue GetInitialDecodedValue() const override - { - return DecodedTaggedValue(coretypes::TaggedValue::VALUE_UNDEFINED, 0); - } - - DecodedTaggedValue GetDecodedTaggedValue([[maybe_unused]] const coretypes::TaggedValue &value) const override - { - UNREACHABLE(); + return coretypes::TaggedValue(coretypes::TaggedValue::VALUE_UNDEFINED); } coretypes::TaggedValue GetEncodedTaggedValue([[maybe_unused]] int64_t value, diff --git a/runtime/js_invoker.cpp b/runtime/js_invoker.cpp index 2915fd1c2..d42515eb1 100644 --- a/runtime/js_invoker.cpp +++ b/runtime/js_invoker.cpp @@ -47,26 +47,6 @@ extern "C" uint64_t InvokeBuiltinHandleException(JSThread *thread, JSTaggedValue UNREACHABLE(); } -extern "C" uint64_t InvokeBuiltin(JSThread *thread, Method *method, uint32_t num_args, JSTaggedValue *stack_args) -{ - EcmaRuntimeCallInfo ecma_runtime_call_info(thread, num_args, stack_args); - - ASSERT(method->GetNativePointer() != nullptr); - - if (UNLIKELY((!thread->StackOverflowCheck()))) { - return JSTaggedValue::Exception().GetRawData(); - } - - JSTaggedValue ret_value = - reinterpret_cast(const_cast(method->GetNativePointer()))(&ecma_runtime_call_info); - - if (UNLIKELY(thread->HasPendingException())) { - return InvokeBuiltinHandleException(thread, ret_value); - } - - return ret_value.GetRawData(); -} - JSTaggedValue InvokeJsFunction(EcmaRuntimeCallInfo *info) { return EcmaInterpreter::Execute(info); -- Gitee