diff options
author | Alan Hayward <alan.hayward@arm.com> | 2017-10-25 09:06:41 +0100 |
---|---|---|
committer | Alan Hayward <alan.hayward@arm.com> | 2017-10-25 09:06:41 +0100 |
commit | cc628f3dbb12c720dbc9ab714feeb197dc739944 (patch) | |
tree | dd2d0839d2b45b5a6c8078f72339039cc4f29ad0 /gdb/arch/aarch64.h | |
parent | e601d38b7cc222345d4128f45db18529b9fb477b (diff) | |
download | gdb-cc628f3dbb12c720dbc9ab714feeb197dc739944.zip gdb-cc628f3dbb12c720dbc9ab714feeb197dc739944.tar.gz gdb-cc628f3dbb12c720dbc9ab714feeb197dc739944.tar.bz2 |
Add common AARCH64 REGNUM defines
gdb/
* aarch64-tdep.h (enum aarch64_regnum): Remove.
* arch/aarch64.h: New file.
gdbserver/
* linux-aarch64-low.c (aarch64_fill_gregset): Replace defines
with REGNO.
(aarch64_store_gregset): Likewise.
(aarch64_fill_fpregset): Likewise.
(aarch64_store_fpregset): Likewise.
Diffstat (limited to 'gdb/arch/aarch64.h')
-rw-r--r-- | gdb/arch/aarch64.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h new file mode 100644 index 0000000..b527405 --- /dev/null +++ b/gdb/arch/aarch64.h @@ -0,0 +1,47 @@ +/* Common target-dependent functionality for AArch64. + + 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/>. */ + +#ifndef ARCH_AARCH64_H +#define ARCH_AARCH64_H + +/* Register numbers of various important registers. */ +enum aarch64_regnum +{ + AARCH64_X0_REGNUM, /* First integer register. */ + AARCH64_FP_REGNUM = AARCH64_X0_REGNUM + 29, /* Frame register, if used. */ + AARCH64_LR_REGNUM = AARCH64_X0_REGNUM + 30, /* Return address. */ + AARCH64_SP_REGNUM, /* Stack pointer. */ + AARCH64_PC_REGNUM, /* Program counter. */ + AARCH64_CPSR_REGNUM, /* Current Program Status Register. */ + AARCH64_V0_REGNUM, /* First fp/vec register. */ + AARCH64_V31_REGNUM = AARCH64_V0_REGNUM + 31, /* Last fp/vec register. */ + AARCH64_FPSR_REGNUM, /* Floating Point Status Register. */ + AARCH64_FPCR_REGNUM, /* Floating Point Control Register. */ + + /* Other useful registers. */ + AARCH64_LAST_X_ARG_REGNUM = AARCH64_X0_REGNUM + 7, + AARCH64_STRUCT_RETURN_REGNUM = AARCH64_X0_REGNUM + 8, + AARCH64_LAST_V_ARG_REGNUM = AARCH64_V0_REGNUM + 7 +}; + +#define AARCH64_X_REGS_NUM 31 +#define AARCH64_V_REGS_NUM 32 +#define AARCH64_NUM_REGS AARCH64_FPCR_REGNUM + 1 + +#endif /* ARCH_AARCH64_H */ |