mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-28 14:30:48 +00:00
CARP:
Convert ADDR_BITS_REMOVE to a function.
This commit is contained in:
parent
3a0c96a996
commit
8743fc885f
@ -1,3 +1,14 @@
|
||||
Sun Nov 29 11:18:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* z8k-tdep.c (z8k_addr_bits_remove), w65-tdep.c
|
||||
(w65_addr_bits_remove), h8500-tdep.c (h8500_addr_bits_remove),
|
||||
m88k-tdep.c (m88k_addr_bits_remove): Function to clean up an
|
||||
address.
|
||||
* config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/m88k/tm-m88k.h,
|
||||
config/h8500/tm-h8500.h: Define ADDR_BITS_REMOVE to call targets
|
||||
corresponding function.
|
||||
* z8k-tdep.c (saved_pc_after_call): Update.
|
||||
|
||||
Sat Nov 28 12:24:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/vax/tm-vax.h,
|
||||
|
@ -251,7 +251,8 @@ extern void h8500_pop_frame PARAMS ((void));
|
||||
|
||||
typedef unsigned short INSN_WORD;
|
||||
|
||||
#define ADDR_BITS_REMOVE(addr) ((addr) & 0xffffff)
|
||||
extern CORE_ADDR h8500_addr_bits_remove PARAMS ((CORE_ADDR));
|
||||
#define ADDR_BITS_REMOVE(addr) h8500_addr_bits_remove (addr)
|
||||
|
||||
#define read_memory_short(x) (read_memory_integer(x,2) & 0xffff)
|
||||
|
||||
|
@ -63,7 +63,8 @@ extern CORE_ADDR skip_prologue ();
|
||||
to realize that those two bits are not really a part of the address
|
||||
of an instruction. Shrug. */
|
||||
|
||||
#define ADDR_BITS_REMOVE(addr) ((addr) & ~3)
|
||||
extern CORE_ADDR m88k_addr_bits_remove PARAMS ((CORE_ADDR));
|
||||
#define ADDR_BITS_REMOVE(addr) m88k_addr_bits_remove (addr)
|
||||
|
||||
/* Immediately after a function call, return the saved pc.
|
||||
Can't always go through the frames for this because on some machines
|
||||
|
@ -191,7 +191,8 @@ extern CORE_ADDR w65_skip_prologue ();
|
||||
|
||||
typedef unsigned short INSN_WORD;
|
||||
|
||||
#define ADDR_BITS_REMOVE(addr) ((addr) & 0xffffff)
|
||||
extern CORE_ADDR w65_addr_bits_remove PARAMS ((CORE_ADDR));
|
||||
#define ADDR_BITS_REMOVE(addr) w65_addr_bits_remove (addr)
|
||||
|
||||
#define CALL_DUMMY_LENGTH 10
|
||||
|
||||
|
@ -263,7 +263,8 @@ extern void z8k_pop_frame PARAMS ((void));
|
||||
|
||||
#define SP_ARG0 (1 * 4)
|
||||
|
||||
#define ADDR_BITS_REMOVE(x) addr_bits_remove(x)
|
||||
extern CORE_ADDR z8k_addr_bits_remove PARAMS ((CORE_ADDR));
|
||||
#define ADDR_BITS_REMOVE(addr) z8k_addr_bits_remove (addr)
|
||||
int sim_z8001_mode;
|
||||
#define BIG (sim_z8001_mode)
|
||||
|
||||
|
@ -98,6 +98,13 @@ h8500_skip_prologue (start_pc)
|
||||
return start_pc;
|
||||
}
|
||||
|
||||
CORE_ADDR
|
||||
h8500_addr_bits_remove (addr)
|
||||
CORE_ADDR addr;
|
||||
{
|
||||
return ((addr) & 0xffffff);
|
||||
}
|
||||
|
||||
/* Given a GDB frame, determine the address of the calling function's frame.
|
||||
This will be used to create a new GDB frame struct, and then
|
||||
INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
|
||||
|
@ -36,6 +36,21 @@ void frame_find_saved_regs ();
|
||||
|
||||
int target_is_m88110 = 0;
|
||||
|
||||
/* The m88k kernel aligns all instructions on 4-byte boundaries. The
|
||||
kernel also uses the least significant two bits for its own hocus
|
||||
pocus. When gdb receives an address from the kernel, it needs to
|
||||
preserve those right-most two bits, but gdb also needs to be careful
|
||||
to realize that those two bits are not really a part of the address
|
||||
of an instruction. Shrug. */
|
||||
|
||||
CORE_ADDR
|
||||
m88k_addr_bits_remove (addr)
|
||||
CORE_ADDR addr;
|
||||
{
|
||||
return ((addr) & ~3);
|
||||
}
|
||||
|
||||
|
||||
/* Given a GDB frame, determine the address of the calling function's frame.
|
||||
This will be used to create a new GDB frame struct, and then
|
||||
INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
|
||||
|
@ -42,10 +42,10 @@ w65_frame_saved_pc (frame)
|
||||
}
|
||||
|
||||
CORE_ADDR
|
||||
addr_bits_remove (x)
|
||||
CORE_ADDR x;
|
||||
w65_addr_bits_remove (addr)
|
||||
CORE_ADDR addr;
|
||||
{
|
||||
return x;
|
||||
return ((addr) & 0xffffff);
|
||||
}
|
||||
|
||||
read_memory_pointer (x)
|
||||
|
@ -31,6 +31,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "dis-asm.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
|
||||
/* Return the saved PC from this frame.
|
||||
|
||||
If the frame has a memory copy of SRP_REGNUM, use that. If not,
|
||||
@ -143,10 +144,10 @@ z8k_skip_prologue (start_pc)
|
||||
}
|
||||
|
||||
CORE_ADDR
|
||||
addr_bits_remove (x)
|
||||
CORE_ADDR x;
|
||||
z8k_addr_bits_remove (addr)
|
||||
CORE_ADDR addr;
|
||||
{
|
||||
return x & PTR_MASK;
|
||||
return (addr & PTR_MASK);
|
||||
}
|
||||
|
||||
int
|
||||
@ -293,7 +294,7 @@ frame_find_saved_regs (fip, fsrp)
|
||||
int
|
||||
saved_pc_after_call ()
|
||||
{
|
||||
return addr_bits_remove
|
||||
return ADDR_BITS_REMOVE
|
||||
(read_memory_integer (read_register (SP_REGNUM), PTR_SIZE));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user