[patch] m68k multi-arch: clean up tm-m68k file.

Grace Sainsbury graces@redhat.com
Tue Jul 9 14:00:00 GMT 2002


I removed the unused macros from tm-m68k.h

Committed.

grace

2002-07-09  Grace Sainsbury  <graces@redhat.com>

	    * config/m68k/tm-m68k.h: Remove macros wrapped in 
	    #if !GDB_MULTI_ARCH.
-------------- next part --------------
Index: tm-m68k.h
===================================================================
RCS file: /cvs/src/src/gdb/config/m68k/tm-m68k.h,v
retrieving revision 1.18
diff -u -r1.18 tm-m68k.h
--- tm-m68k.h	2 Jul 2002 18:13:54 -0000	1.18
+++ tm-m68k.h	9 Jul 2002 19:36:13 -0000
@@ -25,399 +25,9 @@
 
 /* Generic 68000 stuff, to be included by other tm-*.h files.  */
 
-/* struct frame_info; */
-
 /* D0_REGNM and A0_REGNUM must be defined here because they are
    used by the monitor.  */
 
 #define D0_REGNUM 0
 #define A0_REGNUM 8
 
-/* Sequence of bytes for breakpoint instruction.
-   This is a TRAP instruction.  The last 4 bits (0xf below) is the
-   vector.  Systems which don't use 0xf should define BPT_VECTOR
-   themselves before including this file.  */
-
-#if !GDB_MULTI_ARCH
-#if !defined (BPT_VECTOR)
-#define BPT_VECTOR 0xf
-#endif
-
-#if !defined (BREAKPOINT)
-#define BREAKPOINT {0x4e, (0x40 | BPT_VECTOR)}
-#endif
-
-/* We default to vector 1 for the "remote" target, but allow targets
-   to override.  */
-#if !defined (REMOTE_BPT_VECTOR)
-#define REMOTE_BPT_VECTOR 1
-#endif
-#endif
-
-#if !GDB_MULTI_ARCH
-#if !defined (REMOTE_BREAKPOINT)
-#define REMOTE_BREAKPOINT {0x4e, (0x40 | REMOTE_BPT_VECTOR)}
-#endif
-#endif
-
-#if !GDB_MULTI_ARCH
-#define REGISTER_BYTES_FP (16*4 + 8 + 8*12 + 3*4)
-#define REGISTER_BYTES_NOFP (16*4 + 8)
-
-
-#define NUM_FREGS (NUM_REGS-24)
-
-
-/* This was determined by experimentation on hp300 BSD 4.3.  Perhaps
-   it corresponds to some offset in /usr/include/sys/user.h or
-   something like that.  Using some system include file would
-   have the advantage of probably being more robust in the face
-   of OS upgrades, but the disadvantage of being wrong for
-   cross-debugging.  */
-
-#define SIG_PC_FP_OFFSET 530
-
-/* Offset from SP to first arg on stack at first instruction of a function */
-
-#define SP_ARG0 (1 * 4)
-
-#define TARGET_M68K
-#endif
-
-#if !GDB_MULTI_ARCH
-#define TARGET_LONG_DOUBLE_FORMAT &floatformat_m68881_ext
-
-#define TARGET_LONG_DOUBLE_BIT 96
-
-/* Offset from address of function to start of its code.
-   Zero on most machines.  */
-
-#define FUNCTION_START_OFFSET 0
-
-/* Advance PC across any function entry prologue instructions
-   to reach some "real" code.  */
-
-#if !defined(SKIP_PROLOGUE)
-#define SKIP_PROLOGUE(ip) (m68k_skip_prologue (ip))
-#endif
-#endif
-extern CORE_ADDR m68k_skip_prologue (CORE_ADDR ip);
-
-
-/* Immediately after a function call, return the saved pc.
-   Can't always go through the frames for this because on some machines
-   the new frame is not set up until the new function executes
-   some instructions.  */
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR m68k_saved_pc_after_call (struct frame_info *);
-
-#define SAVED_PC_AFTER_CALL(frame) \
-  m68k_saved_pc_after_call(frame)
-#endif
-
-/* Stack grows downward.  */
-
-#if !GDB_MULTI_ARCH
-#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
-
-/* Stack must be kept short aligned when doing function calls.  */
-
-#define STACK_ALIGN(ADDR) (((ADDR) + 1) & ~1)
-#endif
-
-/* If your kernel resets the pc after the trap happens you may need to
-   define this before including this file.  */
-
-#if !GDB_MULTI_ARCH
-#if !defined (DECR_PC_AFTER_BREAK)
-#define DECR_PC_AFTER_BREAK 2
-#endif
-#endif
-
-#if !GDB_MULTI_ARCH
-#ifndef NUM_REGS
-#define NUM_REGS 29
-#endif
-#endif
-
-/* 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.  */
-
-#if !GDB_MULTI_ARCH
-#define REGISTER_SIZE 4
-#endif
-
-#if !GDB_MULTI_ARCH
-#ifndef REGISTER_BYTES_OK
-#define REGISTER_BYTES_OK(b) \
-   ((b) == REGISTER_BYTES_FP \
-    || (b) == REGISTER_BYTES_NOFP)
-#endif
-
-#ifndef REGISTER_BYTES
-#define REGISTER_BYTES (16*4 + 8 + 8*12 + 3*4)
-#endif
-#endif /* multi-arch */
-
-/* Index within `registers' of the first byte of the space for
-   register N.  */
-
-#if !GDB_MULTI_ARCH
-#define REGISTER_BYTE(N)  \
- ((N) >= FPC_REGNUM ? (((N) - FPC_REGNUM) * 4) + 168	\
-  : (N) >= FP0_REGNUM ? (((N) - FP0_REGNUM) * 12) + 72	\
-  : (N) * 4)
-#endif
-
-/* Number of bytes of storage in the actual machine representation
-   for register N.  On the 68000, all regs are 4 bytes
-   except the floating point regs which are 12 bytes.  */
-/* Note that the unsigned cast here forces the result of the
-   subtraction to very high positive values if N < FP0_REGNUM */
-#if !GDB_MULTI_ARCH
-#define REGISTER_RAW_SIZE(N) (((unsigned)(N) - FP0_REGNUM) < 8 ? 12 : 4)
-
-/* Number of bytes of storage in the program's representation
-   for register N.  On the 68000, all regs are 4 bytes
-   except the floating point regs which are 12-byte long doubles.  */
-
-#define REGISTER_VIRTUAL_SIZE(N) (((unsigned)(N) - FP0_REGNUM) < 8 ? 12 : 4)
-
-/* Largest value REGISTER_RAW_SIZE can have.  */
-
-#define MAX_REGISTER_RAW_SIZE 12
-
-/* Largest value REGISTER_VIRTUAL_SIZE can have.  */
-
-#define MAX_REGISTER_VIRTUAL_SIZE 12
-#endif /* multi-arch */
-
-/* Return the GDB type object for the "standard" data type of data 
-   in register N.  This should be int for D0-D7, long double for FP0-FP7,
-   and void pointer for all others (A0-A7, PC, SR, FPCONTROL etc).
-   Note, for registers which contain addresses return pointer to void, 
-   not pointer to char, because we don't want to attempt to print 
-   the string after printing the address.  */
-#if !GDB_MULTI_ARCH
-#define REGISTER_VIRTUAL_TYPE(N) \
-  ((unsigned) (N) >= FPC_REGNUM ? lookup_pointer_type (builtin_type_void) : \
-   (unsigned) (N) >= FP0_REGNUM ? builtin_type_long_double :                \
-   (unsigned) (N) >=  A0_REGNUM ? lookup_pointer_type (builtin_type_void) : \
-   builtin_type_int)
-#endif
-/* Initializer for an array of names of registers.
-   Entries beyond the first NUM_REGS are ignored.  */
-
-#if !GDB_MULTI_ARCH
-#define REGISTER_NAMES  \
- {"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", \
-  "a0", "a1", "a2", "a3", "a4", "a5", "fp", "sp", \
-  "ps", "pc",  \
-  "fp0", "fp1", "fp2", "fp3", "fp4", "fp5", "fp6", "fp7", \
-  "fpcontrol", "fpstatus", "fpiaddr", "fpcode", "fpflags" }
-#endif
-
-/* Register numbers of various important registers.
-   Note that some of these values are "real" register numbers,
-   and correspond to the general registers of the machine,
-   and some are "phony" register numbers which are too large
-   to be actual register numbers as far as the user is concerned
-   but do serve to get the desired values when passed to read_register.  */
-
-#if !GDB_MULTI_ARCH
-
-#define A1_REGNUM 9
-#define FP_REGNUM 14		/* Contains address of executing stack frame */
-#define SP_REGNUM 15		/* Contains address of top of stack */
-#define PS_REGNUM 16		/* Contains processor status */
-#define PC_REGNUM 17		/* Contains program counter */
-#define FP0_REGNUM 18		/* Floating point register 0 */
-#define FPC_REGNUM 26		/* 68881 control register */
-#define FPS_REGNUM 27		/* 68881 status register */
-#define FPI_REGNUM 28		/* 68881 iaddr register */
-#endif
-
-/* Store the address of the place in which to copy the structure the
-   subroutine will return.  This is called from call_function. */
-#if !GDB_MULTI_ARCH
-#define STORE_STRUCT_RETURN(ADDR, SP) \
-  { write_register (A1_REGNUM, (ADDR)); }
-
-/* Extract from an array REGBUF containing the (raw) register state
-   a function return value of type TYPE, and copy that, in virtual format,
-   into VALBUF.  This is assuming that floating point values are returned
-   as doubles in d0/d1.  */
-
-#if !defined (DEPRECATED_EXTRACT_RETURN_VALUE)
-#define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
-  memcpy ((VALBUF),							\
-	  (char *)(REGBUF) +						\
-	         (TYPE_LENGTH(TYPE) >= 4 ? 0 : 4 - TYPE_LENGTH(TYPE)),	\
-	  TYPE_LENGTH(TYPE))
-#endif
-#endif /* multi-arch */
-
-/* Write into appropriate registers a function return value
-   of type TYPE, given in virtual format.  Assumes floats are passed
-   in d0/d1.  */
-
-#if !GDB_MULTI_ARCH
-#if !defined (STORE_RETURN_VALUE)
-#define STORE_RETURN_VALUE(TYPE,VALBUF) \
-  write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE))
-#endif
-
-/* Extract from an array REGBUF containing the (raw) register state
-   the address in which a function should return its structure value,
-   as a CORE_ADDR (or an expression that can be used as one).  */
-
-#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (*(CORE_ADDR *)(REGBUF))
-#endif /* multi-arch */
-
-/* Describe the pointer in each stack frame to the previous stack frame
-   (its caller).  */
-
-/* FRAME_CHAIN takes a frame's nominal address and produces the frame's
-   chain-pointer.
-   In the case of the 68000, the frame's nominal address
-   is the address of a 4-byte word containing the calling frame's address.  */
-
-/* If we are chaining from sigtramp, then manufacture a sigtramp frame
-   (which isn't really on the stack.  I'm not sure this is right for anything
-   but BSD4.3 on an hp300.  */
-#if !GDB_MULTI_ARCH
-#define FRAME_CHAIN(thisframe)  \
-  (thisframe->signal_handler_caller \
-   ? thisframe->frame \
-   : (!inside_entry_file ((thisframe)->pc) \
-      ? read_memory_integer ((thisframe)->frame, 4) \
-      : 0))
-#endif
-
-/* Define other aspects of the stack frame.  */
-
-/* A macro that tells us whether the function invocation represented
-   by FI does not have a frame on the stack associated with it.  If it
-   does not, FRAMELESS is set to 1, else 0.  */
-#if !GDB_MULTI_ARCH
-#define FRAMELESS_FUNCTION_INVOCATION(FI) \
-     (((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue(FI))
-#endif
-
-
-
-#if !GDB_MULTI_ARCH
-#define FRAME_SAVED_PC(FRAME) \
-  (((FRAME)->signal_handler_caller \
-    ? ((FRAME)->next \
-       ? read_memory_integer ((FRAME)->next->frame + SIG_PC_FP_OFFSET, 4) \
-       : read_memory_integer (read_register (SP_REGNUM) \
-			      + SIG_PC_FP_OFFSET - 8, 4) \
-       ) \
-    : read_memory_integer ((FRAME)->frame + 4, 4)) \
-   )
-#endif
-
-#if !GDB_MULTI_ARCH
-#define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
-
-#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
-#endif
-
-/* Set VAL to the number of args passed to frame described by FI.
-   Can set VAL to -1, meaning no way to tell.  */
-
-/* We can't tell how many args there are
-   now that the C compiler delays popping them.  */
-#if !GDB_MULTI_ARCH
-#if !defined (FRAME_NUM_ARGS)
-#define FRAME_NUM_ARGS(fi) (-1)
-#endif
-
-
-/* Return number of bytes at start of arglist that are not really args.  */
-
-#define FRAME_ARGS_SKIP 8
-#endif
-
-/* Put here the code to store, into a struct frame_saved_regs,
-   the addresses of the saved registers of frame described by FRAME_INFO.
-   This includes special registers such as pc and fp saved in special
-   ways in the stack frame.  sp is even more special:
-   the address we return for it IS the sp for the next frame.  */
-
-#if !GDB_MULTI_ARCH
-#if !defined (FRAME_INIT_SAVED_REGS)
-#define FRAME_INIT_SAVED_REGS(fi) m68k_frame_init_saved_regs ((fi))
-void m68k_frame_init_saved_regs (struct frame_info *frame_info);
-#endif /* no FRAME_INIT_SAVED_REGS.  */
-#endif
-
-
-/* Things needed for making the inferior call functions.  */
-
-/* The CALL_DUMMY macro is the sequence of instructions, as disassembled
-   by gdb itself:
-
-   These instructions exist only so that m68k_find_saved_regs can parse
-   them as a "prologue"; they are never executed.
-
-   fmovemx fp0-fp7,sp@-                 0xf227 0xe0ff
-   moveml d0-a5,sp@-                    0x48e7 0xfffc
-   clrw sp@-                            0x4267
-   movew ccr,sp@-                               0x42e7
-
-   The arguments are pushed at this point by GDB; no code is needed in
-   the dummy for this.  The CALL_DUMMY_START_OFFSET gives the position
-   of the following jsr instruction.  That is where we start
-   executing.
-
-   jsr @#0x32323232                     0x4eb9 0x3232 0x3232
-   addal #0x69696969,sp                 0xdffc 0x6969 0x6969
-   trap #<your BPT_VECTOR number here>  0x4e4?
-   nop                                  0x4e71
-
-   Note this is CALL_DUMMY_LENGTH bytes (28 for the above example).
-
-   The dummy frame always saves the floating-point registers, whether they
-   actually exist on this target or not.  */
-
-/* FIXME: Wrong to hardwire this as BPT_VECTOR when sometimes it
-   should be REMOTE_BPT_VECTOR.  Best way to fix it would be to define
-   CALL_DUMMY_BREAKPOINT_OFFSET.  */
-#if !GDB_MULTI_ARCH
-#define CALL_DUMMY {0xf227e0ff, 0x48e7fffc, 0x426742e7, 0x4eb93232, 0x3232dffc, 0x69696969, (0x4e404e71 | (BPT_VECTOR << 16))}
-#define CALL_DUMMY_LENGTH 28	/* Size of CALL_DUMMY */
-#define CALL_DUMMY_START_OFFSET 12	/* Offset to jsr instruction */
-#define CALL_DUMMY_BREAKPOINT_OFFSET (CALL_DUMMY_START_OFFSET + 12)
-
-/* Insert the specified number of args and function address
-   into a call sequence of the above form stored at DUMMYNAME.
-   We use the BFD routines to store a big-endian value of known size.  */
-
-#define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p)     \
-{ bfd_putb32 (fun,     (unsigned char *) dummyname + CALL_DUMMY_START_OFFSET + 2);  \
-  bfd_putb32 (nargs*4, (unsigned char *) dummyname + CALL_DUMMY_START_OFFSET + 8); }
-
-/* Push an empty stack frame, to record the current PC, etc.  */
-
-#define PUSH_DUMMY_FRAME	{ m68k_push_dummy_frame (); }
-
-extern void m68k_push_dummy_frame (void);
-
-extern void m68k_pop_frame (void);
-
-/* Discard from the stack the innermost frame, restoring all registers.  */
-
-#define POP_FRAME		{ m68k_pop_frame (); }
-
-
-/* Figure out where the longjmp will land.  Slurp the args out of the stack.
-   We expect the first arg to be a pointer to the jmp_buf structure from which
-   we extract the pc (JB_PC) that we will land at.  The pc is copied into ADDR.
-   This routine returns true on success */
-
-extern int m68k_get_longjmp_target (CORE_ADDR *);
-#endif


More information about the Gdb-patches mailing list