forked from Imagelibrary/binutils-gdb
* a29k-tdep.c (get_longjmp_target): add this function, from WRS.
* remote-vx.c: move read_register and write_register out to
target specific files.
* remote-vx29k.c (get_fp_contnets): add this function, from WRS.
This commit is contained in:
@@ -97,7 +97,7 @@ vx_read_register (regno)
|
||||
|
||||
/* PAD For now, don't care about exop register */
|
||||
|
||||
bzero (®isters[REGISTER_BYTE (EXO_REGNUM)], 1 * AM29K_GREG_SIZE);
|
||||
memset (®isters[REGISTER_BYTE (EXO_REGNUM)], '\0', AM29K_GREG_SIZE);
|
||||
|
||||
/* If the target has floating point registers, fetch them.
|
||||
Otherwise, zero the floating point register values in
|
||||
@@ -113,16 +113,16 @@ vx_read_register (regno)
|
||||
|
||||
/* PAD For now, don't care about registers (?) AI0 to q */
|
||||
|
||||
bzero (®isters[REGISTER_BYTE (161)], 21 * AM29K_FPREG_SIZE);
|
||||
memset (®isters[REGISTER_BYTE (161)], '\0', 21 * AM29K_FPREG_SIZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
bzero (®isters[REGISTER_BYTE (FPE_REGNUM)], 1 * AM29K_FPREG_SIZE);
|
||||
bzero (®isters[REGISTER_BYTE (FPS_REGNUM)], 1 * AM29K_FPREG_SIZE);
|
||||
memset (®isters[REGISTER_BYTE (FPE_REGNUM)], '\0', AM29K_FPREG_SIZE);
|
||||
memset (®isters[REGISTER_BYTE (FPS_REGNUM)], '\0', AM29K_FPREG_SIZE);
|
||||
|
||||
/* PAD For now, don't care about registers (?) AI0 to q */
|
||||
|
||||
bzero (®isters[REGISTER_BYTE (161)], 21 * AM29K_FPREG_SIZE);
|
||||
memset (®isters[REGISTER_BYTE (161)], '\0', 21 * AM29K_FPREG_SIZE);
|
||||
}
|
||||
|
||||
/* Mark the register cache valid. */
|
||||
@@ -167,3 +167,22 @@ vx_write_register (regno)
|
||||
}
|
||||
}
|
||||
|
||||
/* VxWorks zeroes fp when the task is initialized; we use this
|
||||
to terminate the frame chain. Chain means here the nominal address of
|
||||
a frame, that is, the return address (lr0) address in the stack. To
|
||||
obtain the frame pointer (lr1) contents, we must add 4 bytes.
|
||||
Note : may be we should modify init_frame_info() to get the frame pointer
|
||||
and store it into the frame_info struct rather than reading its
|
||||
contents when FRAME_CHAIN_VALID is invoked. */
|
||||
|
||||
int
|
||||
get_fp_contents (chain, thisframe)
|
||||
CORE_ADDR chain;
|
||||
struct frame_info *thisframe; /* not used here */
|
||||
{
|
||||
int fp_contents;
|
||||
|
||||
read_memory ((CORE_ADDR)(chain + 4), (char *) &fp_contents, 4);
|
||||
return (fp_contents != 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user