forked from OSchip/llvm-project
__arm64__ and __aarch64__ #ifdef adjustments
Change by Paul Osmialowski See http://reviews.llvm.org/D4379 for details. llvm-svn: 212583
This commit is contained in:
parent
52d760399c
commit
013434e547
|
@ -21,7 +21,7 @@
|
||||||
#include <cerrno>
|
#include <cerrno>
|
||||||
#include <cstdarg>
|
#include <cstdarg>
|
||||||
|
|
||||||
#if (defined (__arm__) || defined (__arm64__)) && defined (__APPLE__)
|
#if (defined (__arm__) || defined (__arm64__) || defined (__aarch64__)) && defined (__APPLE__)
|
||||||
#include <SpringBoardServices/SpringBoardServer.h>
|
#include <SpringBoardServices/SpringBoardServer.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1069,7 +1069,7 @@ Host::GetLLDBPath (PathType path_type, FileSpec &file_spec)
|
||||||
if (framework_pos)
|
if (framework_pos)
|
||||||
{
|
{
|
||||||
framework_pos += strlen("LLDB.framework");
|
framework_pos += strlen("LLDB.framework");
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
// Shallow bundle
|
// Shallow bundle
|
||||||
*framework_pos = '\0';
|
*framework_pos = '\0';
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -228,7 +228,7 @@ Host::ResolveExecutableInBundle (FileSpec &file)
|
||||||
lldb::pid_t
|
lldb::pid_t
|
||||||
Host::LaunchApplication (const FileSpec &app_file_spec)
|
Host::LaunchApplication (const FileSpec &app_file_spec)
|
||||||
{
|
{
|
||||||
#if defined (__arm__) || defined(__arm64__)
|
#if defined (__arm__) || defined(__arm64__) || defined(__aarch64__)
|
||||||
return LLDB_INVALID_PROCESS_ID;
|
return LLDB_INVALID_PROCESS_ID;
|
||||||
#else
|
#else
|
||||||
char app_path[PATH_MAX];
|
char app_path[PATH_MAX];
|
||||||
|
@ -321,7 +321,7 @@ WaitForProcessToSIGSTOP (const lldb::pid_t pid, const int timeout_in_seconds)
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#if !defined(__arm__) && !defined(__arm64__)
|
#if !defined(__arm__) && !defined(__arm64__) && !defined(__aarch64__)
|
||||||
|
|
||||||
//static lldb::pid_t
|
//static lldb::pid_t
|
||||||
//LaunchInNewTerminalWithCommandFile
|
//LaunchInNewTerminalWithCommandFile
|
||||||
|
@ -669,7 +669,7 @@ LaunchInNewTerminalWithAppleScript (const char *exe_path, ProcessLaunchInfo &lau
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // #if !defined(__arm__)
|
#endif // #if !defined(__arm__) && !defined(__arm64__) && !defined(__aarch64__)
|
||||||
|
|
||||||
|
|
||||||
// On MacOSX CrashReporter will display a string for each shared library if
|
// On MacOSX CrashReporter will display a string for each shared library if
|
||||||
|
@ -728,7 +728,7 @@ Host::SetCrashDescription (const char *cstr)
|
||||||
bool
|
bool
|
||||||
Host::OpenFileInExternalEditor (const FileSpec &file_spec, uint32_t line_no)
|
Host::OpenFileInExternalEditor (const FileSpec &file_spec, uint32_t line_no)
|
||||||
{
|
{
|
||||||
#if defined(__arm__) || defined(__arm64__)
|
#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
|
||||||
return false;
|
return false;
|
||||||
#else
|
#else
|
||||||
// We attach this to an 'odoc' event to specify a particular selection
|
// We attach this to an 'odoc' event to specify a particular selection
|
||||||
|
@ -837,7 +837,7 @@ Host::OpenFileInExternalEditor (const FileSpec &file_spec, uint32_t line_no)
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
#endif // #if !defined(__arm__)
|
#endif // #if !defined(__arm__) && !defined(__arm64__) && !defined(__aarch64__)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1507,7 +1507,7 @@ Host::LaunchProcess (ProcessLaunchInfo &launch_info)
|
||||||
|
|
||||||
if (launch_info.GetFlags().Test (eLaunchFlagLaunchInTTY))
|
if (launch_info.GetFlags().Test (eLaunchFlagLaunchInTTY))
|
||||||
{
|
{
|
||||||
#if !defined(__arm__) && !defined(__arm64__)
|
#if !defined(__arm__) && !defined(__arm64__) && !defined(__aarch64__)
|
||||||
return LaunchInNewTerminalWithAppleScript (exe_path, launch_info);
|
return LaunchInNewTerminalWithAppleScript (exe_path, launch_info);
|
||||||
#else
|
#else
|
||||||
error.SetErrorString ("launching a process in a new terminal is not supported on iOS devices");
|
error.SetErrorString ("launching a process in a new terminal is not supported on iOS devices");
|
||||||
|
|
|
@ -41,7 +41,7 @@ using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
using namespace llvm::MachO;
|
using namespace llvm::MachO;
|
||||||
|
|
||||||
#if !defined (__arm__) && !defined (__arm64__) // No DebugSymbols on the iOS devices
|
#if !defined (__arm__) && !defined (__arm64__) && !defined (__aarch64__) // No DebugSymbols on the iOS devices
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
CFURLRef DBGCopyFullDSYMURLForUUID (CFUUIDRef uuid, CFURLRef exec_url);
|
CFURLRef DBGCopyFullDSYMURLForUUID (CFUUIDRef uuid, CFURLRef exec_url);
|
||||||
|
@ -293,7 +293,7 @@ LocateMacOSXFilesUsingDebugSymbols
|
||||||
if (out_dsym_fspec)
|
if (out_dsym_fspec)
|
||||||
out_dsym_fspec->Clear();
|
out_dsym_fspec->Clear();
|
||||||
|
|
||||||
#if !defined (__arm__) && !defined (__arm64__) // No DebugSymbols on the iOS devices
|
#if !defined (__arm__) && !defined (__arm64__) && !defined (__aarch64__) // No DebugSymbols on the iOS devices
|
||||||
|
|
||||||
const UUID *uuid = module_spec.GetUUIDPtr();
|
const UUID *uuid = module_spec.GetUUIDPtr();
|
||||||
const ArchSpec *arch = module_spec.GetArchitecturePtr();
|
const ArchSpec *arch = module_spec.GetArchitecturePtr();
|
||||||
|
@ -461,7 +461,7 @@ LocateMacOSXFilesUsingDebugSymbols
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // #if !defined (__arm__)
|
#endif // #if !defined (__arm__) && !defined (__arm64__) && !defined (__aarch64__)
|
||||||
|
|
||||||
return items_found;
|
return items_found;
|
||||||
}
|
}
|
||||||
|
|
|
@ -327,7 +327,7 @@ CommandInterpreter::Initialize ()
|
||||||
if (cmd_obj_sp)
|
if (cmd_obj_sp)
|
||||||
{
|
{
|
||||||
alias_arguments_vector_sp.reset (new OptionArgVector);
|
alias_arguments_vector_sp.reset (new OptionArgVector);
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
ProcessAliasOptionsArgs (cmd_obj_sp, "--", alias_arguments_vector_sp);
|
ProcessAliasOptionsArgs (cmd_obj_sp, "--", alias_arguments_vector_sp);
|
||||||
#else
|
#else
|
||||||
ProcessAliasOptionsArgs (cmd_obj_sp, "--shell=" LLDB_DEFAULT_SHELL " --", alias_arguments_vector_sp);
|
ProcessAliasOptionsArgs (cmd_obj_sp, "--shell=" LLDB_DEFAULT_SHELL " --", alias_arguments_vector_sp);
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
#include "ObjectFileMachO.h"
|
#include "ObjectFileMachO.h"
|
||||||
|
|
||||||
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__))
|
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__) || defined (__aarch64__))
|
||||||
// GetLLDBSharedCacheUUID() needs to call dlsym()
|
// GetLLDBSharedCacheUUID() needs to call dlsym()
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -2043,7 +2043,7 @@ ObjectFileMachO::ParseSymtab ()
|
||||||
|
|
||||||
bool data_was_read = false;
|
bool data_was_read = false;
|
||||||
|
|
||||||
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__))
|
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__) || defined (__aarch64__))
|
||||||
if (m_header.flags & 0x80000000u && process->GetAddressByteSize() == sizeof (void*))
|
if (m_header.flags & 0x80000000u && process->GetAddressByteSize() == sizeof (void*))
|
||||||
{
|
{
|
||||||
// This mach-o memory file is in the dyld shared cache. If this
|
// This mach-o memory file is in the dyld shared cache. If this
|
||||||
|
@ -2302,7 +2302,7 @@ ObjectFileMachO::ParseSymtab ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__))
|
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__) || defined (__aarch64__))
|
||||||
|
|
||||||
// Some recent builds of the dyld_shared_cache (hereafter: DSC) have been optimized by moving LOCAL
|
// Some recent builds of the dyld_shared_cache (hereafter: DSC) have been optimized by moving LOCAL
|
||||||
// symbols out of the memory mapped portion of the DSC. The symbol information has all been retained,
|
// symbols out of the memory mapped portion of the DSC. The symbol information has all been retained,
|
||||||
|
@ -4905,7 +4905,7 @@ UUID
|
||||||
ObjectFileMachO::GetLLDBSharedCacheUUID ()
|
ObjectFileMachO::GetLLDBSharedCacheUUID ()
|
||||||
{
|
{
|
||||||
UUID uuid;
|
UUID uuid;
|
||||||
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__))
|
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__) || defined (__aarch64__))
|
||||||
uint8_t *(*dyld_get_all_image_infos)(void);
|
uint8_t *(*dyld_get_all_image_infos)(void);
|
||||||
dyld_get_all_image_infos = (uint8_t*(*)()) dlsym (RTLD_DEFAULT, "_dyld_get_all_image_infos");
|
dyld_get_all_image_infos = (uint8_t*(*)()) dlsym (RTLD_DEFAULT, "_dyld_get_all_image_infos");
|
||||||
if (dyld_get_all_image_infos)
|
if (dyld_get_all_image_infos)
|
||||||
|
|
|
@ -650,7 +650,7 @@ PlatformDarwinKernel::ExamineKextForMatchingUUID (const FileSpec &kext_bundle_pa
|
||||||
bool
|
bool
|
||||||
PlatformDarwinKernel::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
|
PlatformDarwinKernel::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
|
||||||
{
|
{
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
return ARMGetSupportedArchitectureAtIndex (idx, arch);
|
return ARMGetSupportedArchitectureAtIndex (idx, arch);
|
||||||
#else
|
#else
|
||||||
return x86GetSupportedArchitectureAtIndex (idx, arch);
|
return x86GetSupportedArchitectureAtIndex (idx, arch);
|
||||||
|
|
|
@ -312,7 +312,7 @@ PlatformMacOSX::GetFileWithUUID (const lldb_private::FileSpec &platform_file,
|
||||||
bool
|
bool
|
||||||
PlatformMacOSX::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
|
PlatformMacOSX::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
|
||||||
{
|
{
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
return ARMGetSupportedArchitectureAtIndex (idx, arch);
|
return ARMGetSupportedArchitectureAtIndex (idx, arch);
|
||||||
#else
|
#else
|
||||||
return x86GetSupportedArchitectureAtIndex (idx, arch);
|
return x86GetSupportedArchitectureAtIndex (idx, arch);
|
||||||
|
|
|
@ -1113,7 +1113,7 @@ RegisterContextDarwin_arm64::ConvertRegisterKindToRegisterNumber (RegisterKind k
|
||||||
uint32_t
|
uint32_t
|
||||||
RegisterContextDarwin_arm64::NumSupportedHardwareWatchpoints ()
|
RegisterContextDarwin_arm64::NumSupportedHardwareWatchpoints ()
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
// autodetect how many watchpoints are supported dynamically...
|
// autodetect how many watchpoints are supported dynamically...
|
||||||
static uint32_t g_num_supported_hw_watchpoints = UINT32_MAX;
|
static uint32_t g_num_supported_hw_watchpoints = UINT32_MAX;
|
||||||
if (g_num_supported_hw_watchpoints == UINT32_MAX)
|
if (g_num_supported_hw_watchpoints == UINT32_MAX)
|
||||||
|
|
|
@ -149,7 +149,7 @@ RegisterContextMacOSXFrameBackchain::ReadRegister (const RegisterInfo *reg_info,
|
||||||
|
|
||||||
// TOOD: need a better way to detect when "long double" types are
|
// TOOD: need a better way to detect when "long double" types are
|
||||||
// the same bytes size as "double"
|
// the same bytes size as "double"
|
||||||
#if !defined(__arm__) && !defined(__arm64__) && !defined(_MSC_VER) && !defined(__mips__)
|
#if !defined(__arm__) && !defined(__arm64__) && !defined(__aarch64__) && !defined(_MSC_VER) && !defined(__mips__)
|
||||||
case sizeof (long double):
|
case sizeof (long double):
|
||||||
if (sizeof (long double) == sizeof(uint32_t))
|
if (sizeof (long double) == sizeof(uint32_t))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1253,21 +1253,21 @@ GDBRemoteCommunicationServer::Handle_qHostInfo (StringExtractorGDBRemote &packet
|
||||||
}
|
}
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
|
|
||||||
#if defined(__arm__) || defined(__arm64__)
|
#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
|
||||||
// For iOS devices, we are connected through a USB Mux so we never pretend
|
// For iOS devices, we are connected through a USB Mux so we never pretend
|
||||||
// to actually have a hostname as far as the remote lldb that is connecting
|
// to actually have a hostname as far as the remote lldb that is connecting
|
||||||
// to this lldb-platform is concerned
|
// to this lldb-platform is concerned
|
||||||
response.PutCString ("hostname:");
|
response.PutCString ("hostname:");
|
||||||
response.PutCStringAsRawHex8("127.0.0.1");
|
response.PutCStringAsRawHex8("127.0.0.1");
|
||||||
response.PutChar(';');
|
response.PutChar(';');
|
||||||
#else // #if defined(__arm__) || defined(__arm64__)
|
#else // #if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
|
||||||
if (Host::GetHostname (s))
|
if (Host::GetHostname (s))
|
||||||
{
|
{
|
||||||
response.PutCString ("hostname:");
|
response.PutCString ("hostname:");
|
||||||
response.PutCStringAsRawHex8(s.c_str());
|
response.PutCStringAsRawHex8(s.c_str());
|
||||||
response.PutChar(';');
|
response.PutChar(';');
|
||||||
}
|
}
|
||||||
#endif // #if defined(__arm__) || defined(__arm64__)
|
#endif // #if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
|
||||||
|
|
||||||
#else // #if defined(__APPLE__)
|
#else // #if defined(__APPLE__)
|
||||||
if (Host::GetHostname (s))
|
if (Host::GetHostname (s))
|
||||||
|
|
|
@ -181,7 +181,7 @@ namespace {
|
||||||
#define HIGH_PORT (49151u)
|
#define HIGH_PORT (49151u)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__APPLE__) && (defined(__arm__) || defined(__arm64__))
|
#if defined(__APPLE__) && (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
|
||||||
static bool rand_initialized = false;
|
static bool rand_initialized = false;
|
||||||
|
|
||||||
static inline uint16_t
|
static inline uint16_t
|
||||||
|
@ -2701,7 +2701,7 @@ ProcessGDBRemote::LaunchAndConnectToDebugserver (const ProcessInfo &process_info
|
||||||
debugserver_launch_info.SetMonitorProcessCallback (MonitorDebugserverProcess, this, false);
|
debugserver_launch_info.SetMonitorProcessCallback (MonitorDebugserverProcess, this, false);
|
||||||
debugserver_launch_info.SetUserID(process_info.GetUserID());
|
debugserver_launch_info.SetUserID(process_info.GetUserID());
|
||||||
|
|
||||||
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__))
|
#if defined (__APPLE__) && (defined (__arm__) || defined (__arm64__) || defined (__aarch64__))
|
||||||
// On iOS, still do a local connection using a random port
|
// On iOS, still do a local connection using a random port
|
||||||
const char *hostname = "127.0.0.1";
|
const char *hostname = "127.0.0.1";
|
||||||
uint16_t port = get_random_port ();
|
uint16_t port = get_random_port ();
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
#if defined(__arm__) || defined(__arm64__)
|
#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
|
||||||
#define IOS
|
#define IOS
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2309,7 +2309,7 @@ DNBInitialize()
|
||||||
#if defined (__i386__) || defined (__x86_64__)
|
#if defined (__i386__) || defined (__x86_64__)
|
||||||
DNBArchImplI386::Initialize();
|
DNBArchImplI386::Initialize();
|
||||||
DNBArchImplX86_64::Initialize();
|
DNBArchImplX86_64::Initialize();
|
||||||
#elif defined (__arm__) || defined (__arm64__)
|
#elif defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
DNBArchMachARM::Initialize();
|
DNBArchMachARM::Initialize();
|
||||||
DNBArchMachARM64::Initialize();
|
DNBArchMachARM64::Initialize();
|
||||||
#endif
|
#endif
|
||||||
|
@ -2329,7 +2329,7 @@ DNBSetArchitecture (const char *arch)
|
||||||
return DNBArchProtocol::SetArchitecture (CPU_TYPE_I386);
|
return DNBArchProtocol::SetArchitecture (CPU_TYPE_I386);
|
||||||
else if ((strcasecmp (arch, "x86_64") == 0) || (strcasecmp (arch, "x86_64h") == 0))
|
else if ((strcasecmp (arch, "x86_64") == 0) || (strcasecmp (arch, "x86_64h") == 0))
|
||||||
return DNBArchProtocol::SetArchitecture (CPU_TYPE_X86_64);
|
return DNBArchProtocol::SetArchitecture (CPU_TYPE_X86_64);
|
||||||
else if (strstr (arch, "arm64") == arch || strstr (arch, "armv8") == arch)
|
else if (strstr (arch, "arm64") == arch || strstr (arch, "armv8") == arch || strstr (arch, "aarch64") == arch)
|
||||||
return DNBArchProtocol::SetArchitecture (CPU_TYPE_ARM64);
|
return DNBArchProtocol::SetArchitecture (CPU_TYPE_ARM64);
|
||||||
else if (strstr (arch, "arm") == arch)
|
else if (strstr (arch, "arm") == arch)
|
||||||
return DNBArchProtocol::SetArchitecture (CPU_TYPE_ARM);
|
return DNBArchProtocol::SetArchitecture (CPU_TYPE_ARM);
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// Define nub_addr_t and the invalid address value from the architecture
|
// Define nub_addr_t and the invalid address value from the architecture
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
#if defined (__x86_64__) || defined (__ppc64__) || defined (__arm64__)
|
#if defined (__x86_64__) || defined (__ppc64__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// 64 bit address architectures
|
// 64 bit address architectures
|
||||||
|
|
|
@ -323,7 +323,7 @@ MachThreadList::UpdateThreadList(MachProcess *process, bool update, MachThreadLi
|
||||||
DNBArchProtocol::SetArchitecture(CPU_TYPE_X86_64);
|
DNBArchProtocol::SetArchitecture(CPU_TYPE_X86_64);
|
||||||
else
|
else
|
||||||
DNBArchProtocol::SetArchitecture(CPU_TYPE_I386);
|
DNBArchProtocol::SetArchitecture(CPU_TYPE_I386);
|
||||||
#elif defined (__arm__) || defined (__arm64__)
|
#elif defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
if (m_is_64_bit)
|
if (m_is_64_bit)
|
||||||
DNBArchProtocol::SetArchitecture(CPU_TYPE_ARM64);
|
DNBArchProtocol::SetArchitecture(CPU_TYPE_ARM64);
|
||||||
else
|
else
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
||||||
#include "MacOSX/arm/DNBArchImpl.h"
|
#include "MacOSX/arm/DNBArchImpl.h"
|
||||||
#include "MacOSX/MachProcess.h"
|
#include "MacOSX/MachProcess.h"
|
||||||
|
@ -286,7 +286,7 @@ DNBArchMachARM::GetDBGState(bool force)
|
||||||
return KERN_SUCCESS;
|
return KERN_SUCCESS;
|
||||||
|
|
||||||
// Read the registers from our thread
|
// Read the registers from our thread
|
||||||
#if defined (ARM_DEBUG_STATE32) && defined (__arm64__)
|
#if defined (ARM_DEBUG_STATE32) && (defined (__arm64__) || defined (__aarch64__))
|
||||||
mach_msg_type_number_t count = ARM_DEBUG_STATE32_COUNT;
|
mach_msg_type_number_t count = ARM_DEBUG_STATE32_COUNT;
|
||||||
kern_return_t kret = ::thread_get_state(m_thread->MachPortNumber(), ARM_DEBUG_STATE32, (thread_state_t)&m_state.dbg, &count);
|
kern_return_t kret = ::thread_get_state(m_thread->MachPortNumber(), ARM_DEBUG_STATE32, (thread_state_t)&m_state.dbg, &count);
|
||||||
#else
|
#else
|
||||||
|
@ -332,7 +332,7 @@ kern_return_t
|
||||||
DNBArchMachARM::SetDBGState(bool also_set_on_task)
|
DNBArchMachARM::SetDBGState(bool also_set_on_task)
|
||||||
{
|
{
|
||||||
int set = e_regSetDBG;
|
int set = e_regSetDBG;
|
||||||
#if defined (ARM_DEBUG_STATE32) && defined (__arm64__)
|
#if defined (ARM_DEBUG_STATE32) && (defined (__arm64__) || defined (__aarch64__))
|
||||||
kern_return_t kret = ::thread_set_state (m_thread->MachPortNumber(), ARM_DEBUG_STATE32, (thread_state_t)&m_state.dbg, ARM_DEBUG_STATE32_COUNT);
|
kern_return_t kret = ::thread_set_state (m_thread->MachPortNumber(), ARM_DEBUG_STATE32, (thread_state_t)&m_state.dbg, ARM_DEBUG_STATE32_COUNT);
|
||||||
if (also_set_on_task)
|
if (also_set_on_task)
|
||||||
{
|
{
|
||||||
|
@ -549,7 +549,7 @@ DNBArchMachARM::EnableHardwareSingleStep (bool enable)
|
||||||
// an armv8 device, regardless of whether it was built for arch arm or arch arm64,
|
// an armv8 device, regardless of whether it was built for arch arm or arch arm64,
|
||||||
// it needs to use the MDSCR_EL1 SS bit to single instruction step.
|
// it needs to use the MDSCR_EL1 SS bit to single instruction step.
|
||||||
|
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
if (enable)
|
if (enable)
|
||||||
{
|
{
|
||||||
DNBLogThreadedIf(LOG_STEP, "%s: Setting MDSCR_EL1 Single Step bit at pc 0x%llx", __FUNCTION__, (uint64_t) m_state.context.gpr.__pc);
|
DNBLogThreadedIf(LOG_STEP, "%s: Setting MDSCR_EL1 Single Step bit at pc 0x%llx", __FUNCTION__, (uint64_t) m_state.context.gpr.__pc);
|
||||||
|
@ -723,7 +723,7 @@ DNBArchMachARM::NumSupportedHardwareBreakpoints()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if !defined (__arm64__)
|
#if !defined (__arm64__) && !defined (__aarch64__)
|
||||||
// Read the DBGDIDR to get the number of available hardware breakpoints
|
// Read the DBGDIDR to get the number of available hardware breakpoints
|
||||||
// However, in some of our current armv7 processors, hardware
|
// However, in some of our current armv7 processors, hardware
|
||||||
// breakpoints/watchpoints were not properly connected. So detect those
|
// breakpoints/watchpoints were not properly connected. So detect those
|
||||||
|
@ -784,7 +784,7 @@ DNBArchMachARM::NumSupportedHardwareWatchpoints()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if !defined (__arm64__)
|
#if !defined (__arm64__) && !defined (__aarch64__)
|
||||||
// Read the DBGDIDR to get the number of available hardware breakpoints
|
// Read the DBGDIDR to get the number of available hardware breakpoints
|
||||||
// However, in some of our current armv7 processors, hardware
|
// However, in some of our current armv7 processors, hardware
|
||||||
// breakpoints/watchpoints were not properly connected. So detect those
|
// breakpoints/watchpoints were not properly connected. So detect those
|
||||||
|
@ -928,7 +928,7 @@ DNBArchMachARM::DisableHardwareBreakpoint (uint32_t hw_index)
|
||||||
// armv8 device, armv7 processes can watch dwords. But on a genuine armv7
|
// armv8 device, armv7 processes can watch dwords. But on a genuine armv7
|
||||||
// device I tried, only word watchpoints are supported.
|
// device I tried, only word watchpoints are supported.
|
||||||
|
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
#define WATCHPOINTS_ARE_DWORD 1
|
#define WATCHPOINTS_ARE_DWORD 1
|
||||||
#else
|
#else
|
||||||
#undef WATCHPOINTS_ARE_DWORD
|
#undef WATCHPOINTS_ARE_DWORD
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#ifndef __DebugNubArchMachARM_h__
|
#ifndef __DebugNubArchMachARM_h__
|
||||||
#define __DebugNubArchMachARM_h__
|
#define __DebugNubArchMachARM_h__
|
||||||
|
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
||||||
#include "DNBArch.h"
|
#include "DNBArch.h"
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ public:
|
||||||
virtual bool StepNotComplete ();
|
virtual bool StepNotComplete ();
|
||||||
virtual uint32_t GetHardwareWatchpointHit(nub_addr_t &addr);
|
virtual uint32_t GetHardwareWatchpointHit(nub_addr_t &addr);
|
||||||
|
|
||||||
#if defined (ARM_DEBUG_STATE32) && defined (__arm64__)
|
#if defined (ARM_DEBUG_STATE32) && (defined (__arm64__) || defined (__aarch64__))
|
||||||
typedef arm_debug_state32_t DBG;
|
typedef arm_debug_state32_t DBG;
|
||||||
#else
|
#else
|
||||||
typedef arm_debug_state_t DBG;
|
typedef arm_debug_state_t DBG;
|
||||||
|
@ -115,7 +115,7 @@ protected:
|
||||||
e_regSetGPR = ARM_THREAD_STATE,
|
e_regSetGPR = ARM_THREAD_STATE,
|
||||||
e_regSetVFP = ARM_VFP_STATE,
|
e_regSetVFP = ARM_VFP_STATE,
|
||||||
e_regSetEXC = ARM_EXCEPTION_STATE,
|
e_regSetEXC = ARM_EXCEPTION_STATE,
|
||||||
#if defined (ARM_DEBUG_STATE32) && defined (__arm64__)
|
#if defined (ARM_DEBUG_STATE32) && (defined (__arm64__) || defined (__aarch64__))
|
||||||
e_regSetDBG = ARM_DEBUG_STATE32,
|
e_regSetDBG = ARM_DEBUG_STATE32,
|
||||||
#else
|
#else
|
||||||
e_regSetDBG = ARM_DEBUG_STATE,
|
e_regSetDBG = ARM_DEBUG_STATE,
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
||||||
#include "MacOSX/arm64/DNBArchImplARM64.h"
|
#include "MacOSX/arm64/DNBArchImplARM64.h"
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ DNBArchMachARM64::GetVFPState(bool force)
|
||||||
kern_return_t kret = ::thread_get_state(m_thread->MachPortNumber(), ARM_NEON_STATE64, (thread_state_t)&m_state.context.vfp, &count);
|
kern_return_t kret = ::thread_get_state(m_thread->MachPortNumber(), ARM_NEON_STATE64, (thread_state_t)&m_state.context.vfp, &count);
|
||||||
if (DNBLogEnabledForAny (LOG_THREAD))
|
if (DNBLogEnabledForAny (LOG_THREAD))
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
DNBLogThreaded("thread_get_state(0x%4.4x, %u, &vfp, %u) => 0x%8.8x (count = %u) regs"
|
DNBLogThreaded("thread_get_state(0x%4.4x, %u, &vfp, %u) => 0x%8.8x (count = %u) regs"
|
||||||
"\n q0 = 0x%16.16llx%16.16llx"
|
"\n q0 = 0x%16.16llx%16.16llx"
|
||||||
"\n q1 = 0x%16.16llx%16.16llx"
|
"\n q1 = 0x%16.16llx%16.16llx"
|
||||||
|
@ -1506,7 +1506,7 @@ const char *g_invalidate_v29[] {"v29", "d29", "s29", NULL };
|
||||||
const char *g_invalidate_v30[] {"v30", "d30", "s30", NULL };
|
const char *g_invalidate_v30[] {"v30", "d30", "s30", NULL };
|
||||||
const char *g_invalidate_v31[] {"v31", "d31", "s31", NULL };
|
const char *g_invalidate_v31[] {"v31", "d31", "s31", NULL };
|
||||||
|
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
#define VFP_V_OFFSET_IDX(idx) (offsetof (DNBArchMachARM64::FPU, __v) + (idx * 16) + offsetof (DNBArchMachARM64::Context, vfp))
|
#define VFP_V_OFFSET_IDX(idx) (offsetof (DNBArchMachARM64::FPU, __v) + (idx * 16) + offsetof (DNBArchMachARM64::Context, vfp))
|
||||||
#else
|
#else
|
||||||
#define VFP_V_OFFSET_IDX(idx) (offsetof (DNBArchMachARM64::FPU, opaque) + (idx * 16) + offsetof (DNBArchMachARM64::Context, vfp))
|
#define VFP_V_OFFSET_IDX(idx) (offsetof (DNBArchMachARM64::FPU, opaque) + (idx * 16) + offsetof (DNBArchMachARM64::Context, vfp))
|
||||||
|
@ -1753,7 +1753,7 @@ DNBArchMachARM64::GetRegisterValue(int set, int reg, DNBRegisterValue *value)
|
||||||
|
|
||||||
if (reg >= vfp_v0 && reg <= vfp_v31)
|
if (reg >= vfp_v0 && reg <= vfp_v31)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&value->value.v_uint8, &m_state.context.vfp.__v[reg - vfp_v0], 16);
|
memcpy (&value->value.v_uint8, &m_state.context.vfp.__v[reg - vfp_v0], 16);
|
||||||
#else
|
#else
|
||||||
memcpy (&value->value.v_uint8, ((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_v0) * 16), 16);
|
memcpy (&value->value.v_uint8, ((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_v0) * 16), 16);
|
||||||
|
@ -1762,7 +1762,7 @@ DNBArchMachARM64::GetRegisterValue(int set, int reg, DNBRegisterValue *value)
|
||||||
}
|
}
|
||||||
else if (reg == vfp_fpsr)
|
else if (reg == vfp_fpsr)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&value->value.uint32, &m_state.context.vfp.__fpsr, 4);
|
memcpy (&value->value.uint32, &m_state.context.vfp.__fpsr, 4);
|
||||||
#else
|
#else
|
||||||
memcpy (&value->value.uint32, ((uint8_t *) &m_state.context.vfp.opaque) + (32 * 16) + 0, 4);
|
memcpy (&value->value.uint32, ((uint8_t *) &m_state.context.vfp.opaque) + (32 * 16) + 0, 4);
|
||||||
|
@ -1771,7 +1771,7 @@ DNBArchMachARM64::GetRegisterValue(int set, int reg, DNBRegisterValue *value)
|
||||||
}
|
}
|
||||||
else if (reg == vfp_fpcr)
|
else if (reg == vfp_fpcr)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&value->value.uint32, &m_state.context.vfp.__fpcr, 4);
|
memcpy (&value->value.uint32, &m_state.context.vfp.__fpcr, 4);
|
||||||
#else
|
#else
|
||||||
memcpy (&value->value.uint32, ((uint8_t *) &m_state.context.vfp.opaque) + (32 * 16) + 4, 4);
|
memcpy (&value->value.uint32, ((uint8_t *) &m_state.context.vfp.opaque) + (32 * 16) + 4, 4);
|
||||||
|
@ -1780,7 +1780,7 @@ DNBArchMachARM64::GetRegisterValue(int set, int reg, DNBRegisterValue *value)
|
||||||
}
|
}
|
||||||
else if (reg >= vfp_s0 && reg <= vfp_s31)
|
else if (reg >= vfp_s0 && reg <= vfp_s31)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&value->value.v_uint8, &m_state.context.vfp.__v[reg - vfp_s0], 4);
|
memcpy (&value->value.v_uint8, &m_state.context.vfp.__v[reg - vfp_s0], 4);
|
||||||
#else
|
#else
|
||||||
memcpy (&value->value.v_uint8, ((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_s0) * 16), 4);
|
memcpy (&value->value.v_uint8, ((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_s0) * 16), 4);
|
||||||
|
@ -1789,7 +1789,7 @@ DNBArchMachARM64::GetRegisterValue(int set, int reg, DNBRegisterValue *value)
|
||||||
}
|
}
|
||||||
else if (reg >= vfp_d0 && reg <= vfp_d31)
|
else if (reg >= vfp_d0 && reg <= vfp_d31)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&value->value.v_uint8, &m_state.context.vfp.__v[reg - vfp_d0], 8);
|
memcpy (&value->value.v_uint8, &m_state.context.vfp.__v[reg - vfp_d0], 8);
|
||||||
#else
|
#else
|
||||||
memcpy (&value->value.v_uint8, ((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_d0) * 16), 8);
|
memcpy (&value->value.v_uint8, ((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_d0) * 16), 8);
|
||||||
|
@ -1851,7 +1851,7 @@ DNBArchMachARM64::SetRegisterValue(int set, int reg, const DNBRegisterValue *val
|
||||||
case e_regSetVFP:
|
case e_regSetVFP:
|
||||||
if (reg >= vfp_v0 && reg <= vfp_v31)
|
if (reg >= vfp_v0 && reg <= vfp_v31)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&m_state.context.vfp.__v[reg - vfp_v0], &value->value.v_uint8, 16);
|
memcpy (&m_state.context.vfp.__v[reg - vfp_v0], &value->value.v_uint8, 16);
|
||||||
#else
|
#else
|
||||||
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_v0) * 16), &value->value.v_uint8, 16);
|
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_v0) * 16), &value->value.v_uint8, 16);
|
||||||
|
@ -1860,7 +1860,7 @@ DNBArchMachARM64::SetRegisterValue(int set, int reg, const DNBRegisterValue *val
|
||||||
}
|
}
|
||||||
else if (reg == vfp_fpsr)
|
else if (reg == vfp_fpsr)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&m_state.context.vfp.__fpsr, &value->value.uint32, 4);
|
memcpy (&m_state.context.vfp.__fpsr, &value->value.uint32, 4);
|
||||||
#else
|
#else
|
||||||
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + (32 * 16) + 0, &value->value.uint32, 4);
|
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + (32 * 16) + 0, &value->value.uint32, 4);
|
||||||
|
@ -1869,7 +1869,7 @@ DNBArchMachARM64::SetRegisterValue(int set, int reg, const DNBRegisterValue *val
|
||||||
}
|
}
|
||||||
else if (reg == vfp_fpcr)
|
else if (reg == vfp_fpcr)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&m_state.context.vfp.__fpcr, &value->value.uint32, 4);
|
memcpy (&m_state.context.vfp.__fpcr, &value->value.uint32, 4);
|
||||||
#else
|
#else
|
||||||
memcpy (((uint8_t *) m_state.context.vfp.opaque) + (32 * 16) + 4, &value->value.uint32, 4);
|
memcpy (((uint8_t *) m_state.context.vfp.opaque) + (32 * 16) + 4, &value->value.uint32, 4);
|
||||||
|
@ -1878,7 +1878,7 @@ DNBArchMachARM64::SetRegisterValue(int set, int reg, const DNBRegisterValue *val
|
||||||
}
|
}
|
||||||
else if (reg >= vfp_s0 && reg <= vfp_s31)
|
else if (reg >= vfp_s0 && reg <= vfp_s31)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&m_state.context.vfp.__v[reg - vfp_s0], &value->value.v_uint8, 4);
|
memcpy (&m_state.context.vfp.__v[reg - vfp_s0], &value->value.v_uint8, 4);
|
||||||
#else
|
#else
|
||||||
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_s0) * 16), &value->value.v_uint8, 4);
|
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_s0) * 16), &value->value.v_uint8, 4);
|
||||||
|
@ -1887,7 +1887,7 @@ DNBArchMachARM64::SetRegisterValue(int set, int reg, const DNBRegisterValue *val
|
||||||
}
|
}
|
||||||
else if (reg >= vfp_d0 && reg <= vfp_d31)
|
else if (reg >= vfp_d0 && reg <= vfp_d31)
|
||||||
{
|
{
|
||||||
#if defined (__arm64__)
|
#if defined (__arm64__) || defined (__aarch64__)
|
||||||
memcpy (&m_state.context.vfp.__v[reg - vfp_d0], &value->value.v_uint8, 8);
|
memcpy (&m_state.context.vfp.__v[reg - vfp_d0], &value->value.v_uint8, 8);
|
||||||
#else
|
#else
|
||||||
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_d0) * 16), &value->value.v_uint8, 8);
|
memcpy (((uint8_t *) &m_state.context.vfp.opaque) + ((reg - vfp_d0) * 16), &value->value.v_uint8, 8);
|
||||||
|
@ -2090,4 +2090,4 @@ DNBArchMachARM64::RestoreRegisterState (uint32_t save_id)
|
||||||
|
|
||||||
|
|
||||||
#endif // #if defined (ARM_THREAD_STATE64_COUNT)
|
#endif // #if defined (ARM_THREAD_STATE64_COUNT)
|
||||||
#endif // #if defined (__arm__)
|
#endif // #if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#ifndef __DNBArchImplARM64_h__
|
#ifndef __DNBArchImplARM64_h__
|
||||||
#define __DNBArchImplARM64_h__
|
#define __DNBArchImplARM64_h__
|
||||||
|
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <mach/thread_status.h>
|
#include <mach/thread_status.h>
|
||||||
|
|
|
@ -45,7 +45,7 @@ extern "C" const double debugserverVersionNumber;
|
||||||
|
|
||||||
#define RNB_ARCH "ppc"
|
#define RNB_ARCH "ppc"
|
||||||
|
|
||||||
#elif defined (__arm64__)
|
#elif defined (__arm64__) || defined (__aarch64__)
|
||||||
|
|
||||||
#define RNB_ARCH "arm64"
|
#define RNB_ARCH "arm64"
|
||||||
|
|
||||||
|
|
|
@ -798,7 +798,7 @@ RNBRemote::ThreadFunctionReadRemoteData(void *arg)
|
||||||
static cpu_type_t
|
static cpu_type_t
|
||||||
best_guess_cpu_type ()
|
best_guess_cpu_type ()
|
||||||
{
|
{
|
||||||
#if defined (__arm__) || defined (__arm64__)
|
#if defined (__arm__) || defined (__arm64__) || defined (__aarch64__)
|
||||||
if (sizeof (char *) == 8)
|
if (sizeof (char *) == 8)
|
||||||
{
|
{
|
||||||
return CPU_TYPE_ARM64;
|
return CPU_TYPE_ARM64;
|
||||||
|
@ -4488,7 +4488,7 @@ RNBRemote::HandlePacket_qProcessInfo (const char *p)
|
||||||
}
|
}
|
||||||
#elif defined (__arm__)
|
#elif defined (__arm__)
|
||||||
rep << "ptrsize:4;";
|
rep << "ptrsize:4;";
|
||||||
#elif defined (__arm64__) && defined (ARM_UNIFIED_THREAD_STATE)
|
#elif (defined (__arm64__) || defined (__aarch64__)) && defined (ARM_UNIFIED_THREAD_STATE)
|
||||||
nub_thread_t thread = DNBProcessGetCurrentThreadMachPort (pid);
|
nub_thread_t thread = DNBProcessGetCurrentThreadMachPort (pid);
|
||||||
kern_return_t kr;
|
kern_return_t kr;
|
||||||
arm_unified_thread_state_t gp_regs;
|
arm_unified_thread_state_t gp_regs;
|
||||||
|
|
Loading…
Reference in New Issue