X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fconfig%2Fvax%2Ftm-vax.h;h=62729b370ce323b19045c50266efab28011ea82d;hb=b83266a0e1813b7f4891d5d6b0ed6b7302a3fe98;hp=ddf0dcf7179296317f5fc3bc80d0a2c34eaf849c;hpb=4ed97c9a835c5d05a900e66b997eb6e77a141950;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/config/vax/tm-vax.h b/gdb/config/vax/tm-vax.h index ddf0dcf717..62729b370c 100644 --- a/gdb/config/vax/tm-vax.h +++ b/gdb/config/vax/tm-vax.h @@ -15,7 +15,7 @@ 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, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define TARGET_BYTE_ORDER LITTLE_ENDIAN @@ -28,26 +28,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Advance PC across any function entry prologue instructions to reach some "real" code. */ -#define SKIP_PROLOGUE(pc) \ -{ register int op = (unsigned char) read_memory_integer (pc, 1); \ - if (op == 0x11) pc += 2; /* skip brb */ \ - if (op == 0x31) pc += 3; /* skip brw */ \ - if (op == 0xC2 && \ - ((unsigned char) read_memory_integer (pc+2, 1)) == 0x5E) \ - pc += 3; /* skip subl2 */ \ - if (op == 0x9E && \ - ((unsigned char) read_memory_integer (pc+1, 1)) == 0xAE && \ - ((unsigned char) read_memory_integer(pc+3, 1)) == 0x5E) \ - pc += 4; /* skip movab */ \ - if (op == 0x9E && \ - ((unsigned char) read_memory_integer (pc+1, 1)) == 0xCE && \ - ((unsigned char) read_memory_integer(pc+4, 1)) == 0x5E) \ - pc += 5; /* skip movab */ \ - if (op == 0x9E && \ - ((unsigned char) read_memory_integer (pc+1, 1)) == 0xEE && \ - ((unsigned char) read_memory_integer(pc+6, 1)) == 0x5E) \ - pc += 7; /* skip movab */ \ -} +extern CORE_ADDR vax_skip_prologue PARAMS ((CORE_ADDR)); +#define SKIP_PROLOGUE(pc) (vax_skip_prologue (pc)) /* Immediately after a function call, return the saved pc. Can't always go through the frames for this because on some machines @@ -63,12 +45,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* On the VAX, sigtramp is in the u area. Can't check the exact addresses because for cross-debugging we don't have VAX include files around. This should be close enough. */ -#define SIGTRAMP_START STACK_END_ADDR -#define SIGTRAMP_END 0x80000000 +#define SIGTRAMP_START(pc) STACK_END_ADDR +#define SIGTRAMP_END(pc) 0x80000000 /* Stack grows downward. */ -#define INNER_THAN < +#define INNER_THAN(lhs,rhs) ((lhs) < (rhs)) /* Sequence of bytes for breakpoint instruction. */ @@ -80,18 +62,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define DECR_PC_AFTER_BREAK 0 -/* Nonzero if instruction at PC is a return instruction. */ - -#define ABOUT_TO_RETURN(pc) (read_memory_integer (pc, 1) == 04) - /* Return 1 if P points to an invalid floating point value. LEN is the length in bytes -- not relevant on the Vax. */ #define INVALID_FLOAT(p, len) ((*(short *) p & 0xff80) == 0x8000) -/* Say how long (ordinary) registers are. */ +/* Say how long (ordinary) registers are. This is a piece of bogosity + used in push_word and a few other places; REGISTER_RAW_SIZE is the + real way to know how big a register is. */ -#define REGISTER_TYPE long +#define REGISTER_SIZE 4 /* Number of machine registers */ @@ -142,23 +122,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define MAX_REGISTER_VIRTUAL_SIZE 4 -/* Nonzero if register N requires conversion - from raw format to virtual format. */ - -#define REGISTER_CONVERTIBLE(N) 0 - -/* Convert data from raw format for register REGNUM - to virtual format for register REGNUM. */ - -#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) \ - memcpy ((TO), (FROM), 4); - -/* Convert data from virtual format for register REGNUM - to raw format for register REGNUM. */ - -#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) \ - memcpy ((TO), (FROM), 4); - /* Return the GDB type object for the "standard" data type of data in register N. */ @@ -324,8 +287,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ fp += (regnum + 1) * 4; } \ write_register (SP_REGNUM, fp); \ flush_cached_frames (); \ - set_current_frame (create_new_frame (read_register (FP_REGNUM),\ - read_pc ())); } +} /* This sequence of words is the instructions calls #69, @#32323232 @@ -336,6 +298,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define CALL_DUMMY_START_OFFSET 0 /* Start execution at beginning of dummy */ +#define CALL_DUMMY_BREAKPOINT_OFFSET 7 + /* Insert the specified number of args and function address into a call sequence of the above form stored at DUMMYNAME. */