summaryrefslogtreecommitdiff
path: root/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-12-20 19:53:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-12-20 19:53:05 +0000
commit0b57cec536236d46e3dba9bd041533462f33dbb7 (patch)
tree56229dbdbbf76d18580f72f789003db17246c8d9 /contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp
parent718ef55ec7785aae63f98f8ca05dc07ed399c16d (diff)
Notes
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp')
-rw-r--r--contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp68
1 files changed, 0 insertions, 68 deletions
diff --git a/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp b/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp
deleted file mode 100644
index 3155e6f7965f..000000000000
--- a/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===-- ThreadPlanCallFunctionUsingABI.cpp ----------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "lldb/Target/ThreadPlanCallFunctionUsingABI.h"
-#include "lldb/Core/Address.h"
-#include "lldb/Target/Process.h"
-#include "lldb/Target/RegisterContext.h"
-#include "lldb/Target/Target.h"
-#include "lldb/Target/Thread.h"
-#include "lldb/Utility/Log.h"
-#include "lldb/Utility/Stream.h"
-
-using namespace lldb;
-using namespace lldb_private;
-
-// ThreadPlanCallFunctionUsingABI: Plan to call a single function using the ABI
-// instead of JIT
-ThreadPlanCallFunctionUsingABI::ThreadPlanCallFunctionUsingABI(
- Thread &thread, const Address &function, llvm::Type &prototype,
- llvm::Type &return_type, llvm::ArrayRef<ABI::CallArgument> args,
- const EvaluateExpressionOptions &options)
- : ThreadPlanCallFunction(thread, function, options),
- m_return_type(return_type) {
- lldb::addr_t start_load_addr = LLDB_INVALID_ADDRESS;
- lldb::addr_t function_load_addr = LLDB_INVALID_ADDRESS;
- ABI *abi = nullptr;
-
- if (!ConstructorSetup(thread, abi, start_load_addr, function_load_addr))
- return;
-
- if (!abi->PrepareTrivialCall(thread, m_function_sp, function_load_addr,
- start_load_addr, prototype, args))
- return;
-
- ReportRegisterState("ABI Function call was set up. Register state was:");
-
- m_valid = true;
-}
-
-ThreadPlanCallFunctionUsingABI::~ThreadPlanCallFunctionUsingABI() = default;
-
-void ThreadPlanCallFunctionUsingABI::GetDescription(Stream *s,
- DescriptionLevel level) {
- if (level == eDescriptionLevelBrief) {
- s->Printf("Function call thread plan using ABI instead of JIT");
- } else {
- TargetSP target_sp(m_thread.CalculateTarget());
- s->Printf("Thread plan to call 0x%" PRIx64 " using ABI instead of JIT",
- m_function_addr.GetLoadAddress(target_sp.get()));
- }
-}
-
-void ThreadPlanCallFunctionUsingABI::SetReturnValue() {
- ProcessSP process_sp(m_thread.GetProcess());
- const ABI *abi = process_sp ? process_sp->GetABI().get() : nullptr;
-
- // Ask the abi for the return value
- if (abi) {
- const bool persistent = false;
- m_return_valobj_sp =
- abi->GetReturnValueObject(m_thread, m_return_type, persistent);
- }
-}