Add aarch64_create_target_description
gdb/ * Makefile.in: Add new files. * aarch64-linux-nat.c (aarch64_linux_read_description): Call aarch64_read_description. * aarch64-linux-tdep.c (aarch64_linux_core_read_description): Call aarch64_read_description. * aarch64-tdep.c (aarch64_read_description): New function. (aarch64_gdbarch_init): Call aarch64_read_description. * aarch64-tdep.h (aarch64_read_description): New function. * arch/aarch64.c: New file. * configure.tgt: Add new files.
This commit is contained in:
parent
98ead37e97
commit
da434ccbc3
@ -1,3 +1,17 @@
|
||||
|
||||
2017-11-24 Alan Hayward <alan.hayward@arm.com>
|
||||
|
||||
* Makefile.in: Add new files.
|
||||
* aarch64-linux-nat.c (aarch64_linux_read_description): Call
|
||||
aarch64_read_description.
|
||||
* aarch64-linux-tdep.c (aarch64_linux_core_read_description):
|
||||
Call aarch64_read_description.
|
||||
* aarch64-tdep.c (aarch64_read_description): New function.
|
||||
(aarch64_gdbarch_init): Call aarch64_read_description.
|
||||
* aarch64-tdep.h (aarch64_read_description): New function.
|
||||
* arch/aarch64.c: New file.
|
||||
* configure.tgt: Add new files.
|
||||
|
||||
2017-11-24 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* mi/mi-main.c (register_changed_p): Update.
|
||||
|
@ -783,6 +783,7 @@ ALL_64_TARGET_OBS = \
|
||||
amd64-sol2-tdep.o \
|
||||
amd64-tdep.o \
|
||||
amd64-windows-tdep.o \
|
||||
arch/aarch64.o \
|
||||
arch/aarch64-insn.o \
|
||||
arch/amd64.o \
|
||||
ia64-linux-tdep.o \
|
||||
@ -1515,6 +1516,7 @@ HFILES_NO_SRCDIR = \
|
||||
xml-syscall.h \
|
||||
xml-tdesc.h \
|
||||
xtensa-tdep.h \
|
||||
arch/aarch64.h \
|
||||
arch/aarch64-insn.h \
|
||||
arch/arm.h \
|
||||
arch/i386.h \
|
||||
|
@ -501,7 +501,7 @@ aarch64_linux_read_description (struct target_ops *ops)
|
||||
if (ret == 0)
|
||||
return tdesc_arm_with_neon;
|
||||
else
|
||||
return tdesc_aarch64;
|
||||
return aarch64_read_description ();
|
||||
}
|
||||
|
||||
/* Convert a native/host siginfo object, into/from the siginfo in the
|
||||
|
@ -244,7 +244,7 @@ aarch64_linux_core_read_description (struct gdbarch *gdbarch,
|
||||
if (target_auxv_search (target, AT_HWCAP, &aarch64_hwcap) != 1)
|
||||
return NULL;
|
||||
|
||||
return tdesc_aarch64;
|
||||
return aarch64_read_description ();
|
||||
}
|
||||
|
||||
/* Implementation of `gdbarch_stap_is_single_operand', as defined in
|
||||
|
@ -2828,6 +2828,20 @@ aarch64_displaced_step_hw_singlestep (struct gdbarch *gdbarch,
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Get the correct target description. */
|
||||
|
||||
const target_desc *
|
||||
aarch64_read_description ()
|
||||
{
|
||||
static target_desc *aarch64_tdesc = NULL;
|
||||
target_desc **tdesc = &aarch64_tdesc;
|
||||
|
||||
if (*tdesc == NULL)
|
||||
*tdesc = aarch64_create_target_description ();
|
||||
|
||||
return *tdesc;
|
||||
}
|
||||
|
||||
/* Initialize the current architecture based on INFO. If possible,
|
||||
re-use an architecture from ARCHES, which is a list of
|
||||
architectures already created during this debugging session.
|
||||
@ -2851,7 +2865,7 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
|
||||
/* Ensure we always have a target descriptor. */
|
||||
if (!tdesc_has_registers (tdesc))
|
||||
tdesc = tdesc_aarch64;
|
||||
tdesc = aarch64_read_description ();
|
||||
|
||||
gdb_assert (tdesc);
|
||||
|
||||
|
@ -75,7 +75,7 @@ struct gdbarch_tdep
|
||||
int (*aarch64_syscall_record) (struct regcache *regcache, unsigned long svc_number);
|
||||
};
|
||||
|
||||
extern struct target_desc *tdesc_aarch64;
|
||||
const target_desc *aarch64_read_description ();
|
||||
|
||||
extern int aarch64_process_record (struct gdbarch *gdbarch,
|
||||
struct regcache *regcache, CORE_ADDR addr);
|
||||
|
30
gdb/arch/aarch64.c
Normal file
30
gdb/arch/aarch64.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
#include "aarch64.h"
|
||||
|
||||
extern struct target_desc *tdesc_aarch64;
|
||||
|
||||
/* Create the aarch64 target description. */
|
||||
|
||||
target_desc *
|
||||
aarch64_create_target_description ()
|
||||
{
|
||||
return tdesc_aarch64;
|
||||
}
|
||||
|
@ -20,6 +20,10 @@
|
||||
#ifndef ARCH_AARCH64_H
|
||||
#define ARCH_AARCH64_H
|
||||
|
||||
#include "tdesc.h"
|
||||
|
||||
target_desc *aarch64_create_target_description ();
|
||||
|
||||
/* Register numbers of various important registers. */
|
||||
enum aarch64_regnum
|
||||
{
|
||||
|
@ -114,7 +114,7 @@ aarch64*-*-freebsd*)
|
||||
|
||||
aarch64*-*-linux*)
|
||||
# Target: AArch64 linux
|
||||
gdb_target_obs="aarch64-linux-tdep.o \
|
||||
gdb_target_obs="aarch64-linux-tdep.o arch/aarch64.o\
|
||||
arch/arm.o arch/arm-linux.o arch/arm-get-next-pcs.o \
|
||||
arm-tdep.o arm-linux-tdep.o \
|
||||
glibc-tdep.o linux-tdep.o solib-svr4.o \
|
||||
|
Loading…
x
Reference in New Issue
Block a user