*** empty log message ***
This commit is contained in:
parent
e66408edfd
commit
f8624c62cc
|
@ -1,3 +1,12 @@
|
||||||
|
2010-04-29 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||||
|
|
||||||
|
* arm-linux-tdep.c (ARM_LINUX_JB_PC): Remove.
|
||||||
|
(ARM_LINUX_JB_PC_FPA): Add, offset of PC in longjmp buffer for FPA.
|
||||||
|
(ARM_LINUX_JB_PC_EABI): Add, offset of PC in longjmp buffer for
|
||||||
|
EABI.
|
||||||
|
(arm_linux_init_abi): Set up JB_PC field dependent on FP model in
|
||||||
|
use.
|
||||||
|
|
||||||
2010-04-29 Pedro Alves <pedro@codesourcery.com>
|
2010-04-29 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
PR gdb/11557
|
PR gdb/11557
|
||||||
|
|
|
@ -82,9 +82,20 @@ static const char arm_linux_thumb2_be_breakpoint[] = { 0xf7, 0xf0, 0xa0, 0x00 };
|
||||||
|
|
||||||
static const char arm_linux_thumb2_le_breakpoint[] = { 0xf0, 0xf7, 0x00, 0xa0 };
|
static const char arm_linux_thumb2_le_breakpoint[] = { 0xf0, 0xf7, 0x00, 0xa0 };
|
||||||
|
|
||||||
/* Description of the longjmp buffer. */
|
/* Description of the longjmp buffer. The buffer is treated as an array of
|
||||||
|
elements of size ARM_LINUX_JB_ELEMENT_SIZE.
|
||||||
|
|
||||||
|
The location of saved registers in this buffer (in particular the PC
|
||||||
|
to use after longjmp is called) varies depending on the ABI (in
|
||||||
|
particular the FP model) and also (possibly) the C Library.
|
||||||
|
|
||||||
|
For glibc, eglibc, and uclibc the following holds: If the FP model is
|
||||||
|
SoftVFP or VFP (which implies EABI) then the PC is at offset 9 in the
|
||||||
|
buffer. This is also true for the SoftFPA model. However, for the FPA
|
||||||
|
model the PC is at offset 21 in the buffer. */
|
||||||
#define ARM_LINUX_JB_ELEMENT_SIZE INT_REGISTER_SIZE
|
#define ARM_LINUX_JB_ELEMENT_SIZE INT_REGISTER_SIZE
|
||||||
#define ARM_LINUX_JB_PC 21
|
#define ARM_LINUX_JB_PC_FPA 21
|
||||||
|
#define ARM_LINUX_JB_PC_EABI 9
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Dynamic Linking on ARM GNU/Linux
|
Dynamic Linking on ARM GNU/Linux
|
||||||
|
@ -877,7 +888,22 @@ arm_linux_init_abi (struct gdbarch_info info,
|
||||||
if (tdep->fp_model == ARM_FLOAT_AUTO)
|
if (tdep->fp_model == ARM_FLOAT_AUTO)
|
||||||
tdep->fp_model = ARM_FLOAT_FPA;
|
tdep->fp_model = ARM_FLOAT_FPA;
|
||||||
|
|
||||||
tdep->jb_pc = ARM_LINUX_JB_PC;
|
switch (tdep->fp_model)
|
||||||
|
{
|
||||||
|
case ARM_FLOAT_FPA:
|
||||||
|
tdep->jb_pc = ARM_LINUX_JB_PC_FPA;
|
||||||
|
break;
|
||||||
|
case ARM_FLOAT_SOFT_FPA:
|
||||||
|
case ARM_FLOAT_SOFT_VFP:
|
||||||
|
case ARM_FLOAT_VFP:
|
||||||
|
tdep->jb_pc = ARM_LINUX_JB_PC_EABI;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
internal_error
|
||||||
|
(__FILE__, __LINE__,
|
||||||
|
_("arm_linux_init_abi: Floating point model not supported"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
tdep->jb_elt_size = ARM_LINUX_JB_ELEMENT_SIZE;
|
tdep->jb_elt_size = ARM_LINUX_JB_ELEMENT_SIZE;
|
||||||
|
|
||||||
set_solib_svr4_fetch_link_map_offsets
|
set_solib_svr4_fetch_link_map_offsets
|
||||||
|
|
Loading…
Reference in New Issue