This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[rfc] Replace macros by gdbarch functions in gdbint manual
- From: Markus Deuling <deuling at de dot ibm dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>, Eli Zaretskii <eliz at gnu dot org>
- Cc: Ulrich Weigand <uweigand at de dot ibm dot com>
- Date: Wed, 20 Jun 2007 12:17:34 +0200
- Subject: [rfc] Replace macros by gdbarch functions in gdbint manual
Hello,
this patch replaces the macros that have been replaced in gdbarch.sh in GDB's manuals.
ChangeLog:
* gdb.texinfo: Replace following macros by their appropriate gdbarch
routines:
(TARGET_CHAR_SIGNED, CALL_DUMMY_LOCATION, CANNOT_FETCH_REGISTER)
(CANNOT_STORE_REGISTER, GET_LONGJMP_TARGET, POINTER_TO_ADDRESS)
(ADDRESS_TO_POINTER, INNER_THAN, FRAME_NUM_ARGS)
(HAVE_NONSTEPPABLE_WATCHPOINT, TARGET_SHORT_BIT, TARGET_INT_BIT)
(TARGET_LONG_BIT, TARGET_LONG_LONG_BIT, TARGET_FLOAT_BIT)
(TARGET_DOUBLE_BIT, TARGET_LONG_DOUBLE_BIT, TARGET_PTR_BIT
(TARGET_ADDR_BIT, SP_REGNUM, PC_REGNUM, PS_REGNUM, FP0_REGNUM)
(STAB_REG_TO_REGNUM, ECOFF_REG_TO_REGNUM, DWARF_REG_TO_REGNUM)
(SDB_REG_TO_REGNUM, DWARF2_REG_TO_REGNUM, BELIEVE_PCC_PROMOTION)
(CONVERT_REGISTER_P, REGISTER_TO_VALUE, VALUE_TO_REGISTER)
(POINTER_TO_ADDRESS, ADDRESS_TO_POINTER, EXTRACT_RETURN_VALUE)
(STORE_RETURN_VALUE, SKIP_PROLOGUE, MEMORY_INSERT_BREAKPOINT)
(BREAKPOINT_FROM_PC, MEMORY_REMOVE_BREAKPOINT, DECR_PC_AFTER_BREAK)
(ADDR_BITS_REMOVE, TARGET_PRINT_INSN, SKIP_TRAMPOLINE_CODE)
(IN_SOLIB_RETURN_TRAMPOLINE, NAME_OF_MALLOC, ADDRESS_CLASS_TYPE_FLAGS)
(ADDRESS_CLASS_TYPE_FLAGS_TO_NAME, ADDRESS_CLASS_TYPE_FLAGS_P).
* gdb.texinfo: Replace REGISTER_NAME by gdbarch_register_name.
Is this ok to commit?
--
Markus Deuling
GNU Toolchain for Linux on Cell BE
deuling@de.ibm.com
diff -urN src/gdb/doc/gdbint.texinfo dev/gdb/doc/gdbint.texinfo
--- src/gdb/doc/gdbint.texinfo 2007-05-09 01:39:14.000000000 +0200
+++ dev/gdb/doc/gdbint.texinfo 2007-06-20 12:11:46.000000000 +0200
@@ -569,7 +569,7 @@
For example, the remote target @samp{Z0} packet does not require
shadowing memory, so @code{shadow_len} is left at zero. However,
-the length reported by @code{BREAKPOINT_FROM_PC} is cached in
+the length reported by @code{gdbarch_breakpoint_from_pc} is cached in
@code{placed_size}, so that a matching @samp{z0} packet can be
used to remove the breakpoint.
@@ -604,9 +604,9 @@
which are visible in the output of the @samp{maint info breakpoint}
command.
-@findex GET_LONGJMP_TARGET
-To make this work, you need to define a macro called
-@code{GET_LONGJMP_TARGET}, which will examine the @code{jmp_buf}
+@findex gdbarch_get_longjmp_target
+To make this work, you need to define a function called
+@code{gdbarch_get_longjmp_target}, which will examine the @code{jmp_buf}
structure and extract the longjmp target address. Since @code{jmp_buf}
is target specific, you will need to define it in the appropriate
@file{tm-@var{target}.h} file. Look in @file{tm-sun4os4.h} and
@@ -732,9 +732,9 @@
If defined to a non-zero value, it is not necessary to disable a
watchpoint to step over it.
-@findex HAVE_NONSTEPPABLE_WATCHPOINT
-@item HAVE_NONSTEPPABLE_WATCHPOINT
-If defined to a non-zero value, @value{GDBN} should disable a
+@findex gdbarch_have_nonsteppable_watchpoint
+@item gdbarch_have_nonsteppable_watchpoint (@var{current_gdbarch})
+If it returns a non-zero value, @value{GDBN} should disable a
watchpoint to step the inferior over it.
@findex HAVE_CONTINUABLE_WATCHPOINT
@@ -1521,7 +1521,7 @@
@{
if (nr_printable_breakpoints > 0)
annotate_field (4);
- if (TARGET_ADDR_BIT <= 32)
+ if (gdbarch_addr_bit (current_gdbarch) <= 32)
ui_out_table_header (uiout, 10, ui_left, "addr", "Address");/* 5 */
else
ui_out_table_header (uiout, 18, ui_left, "addr", "Address");/* 5 */
@@ -2775,7 +2775,7 @@
compiler's idea of which registers are which; however, it is critical
that they do match up accurately. The only way to make this work is
to get accurate information about the order that the compiler uses,
-and to reflect that in the @code{REGISTER_NAME} and related macros.
+nd to reflect that in the @code{gdbarch_register_name} and related functions.
@value{GDBN} can handle big-endian, little-endian, and bi-endian architectures.
@@ -2893,7 +2893,7 @@
definitions, appropriate for architectures on which all pointers are
simple unsigned byte addresses.
-@deftypefn {Target Macro} CORE_ADDR POINTER_TO_ADDRESS (struct type *@var{type}, char *@var{buf})
+@deftypefn {Target Macro} CORE_ADDR gdbarch_pointer_to_address (struct gdbarch *@var{current_gdbarch}, struct type *@var{type}, char *@var{buf})
Assume that @var{buf} holds a pointer of type @var{type}, in the
appropriate format for the current architecture. Return the byte
address the pointer refers to.
@@ -2902,7 +2902,7 @@
C@t{++} reference type.
@end deftypefn
-@deftypefn {Target Macro} void ADDRESS_TO_POINTER (struct type *@var{type}, char *@var{buf}, CORE_ADDR @var{addr})
+@deftypefn {Target Macro} void gdbarch_address_to_pointer (struct gdbarch *@var{current_gdbarch}, struct type *@var{type}, char *@var{buf}, CORE_ADDR @var{addr})
Store in @var{buf} a pointer of type @var{type} representing the address
@var{addr}, in the appropriate format for the current architecture.
@@ -2925,14 +2925,14 @@
types within @value{GDBN} as well as provide the added information to
a @value{GDBN} user when printing type expressions.
-@deftypefn {Target Macro} int ADDRESS_CLASS_TYPE_FLAGS (int @var{byte_size}, int @var{dwarf2_addr_class})
+@deftypefn {Target Macro} int gdbarch_address_class_type_flags (struct gdbarch *@var{current_gdbarch}, int @var{byte_size}, int @var{dwarf2_addr_class})
Returns the type flags needed to construct a pointer type whose size
is @var{byte_size} and whose address class is @var{dwarf2_addr_class}.
This function is normally called from within a symbol reader. See
@file{dwarf2read.c}.
@end deftypefn
-@deftypefn {Target Macro} char *ADDRESS_CLASS_TYPE_FLAGS_TO_NAME (int @var{type_flags})
+@deftypefn {Target Macro} char *gdbarch_address_class_type_flags_to_name (struct gdbarch *@var{current_gdbarch}, int @var{type_flags})
Given the type flags representing an address class qualifier, return
its name.
@end deftypefn
@@ -3146,36 +3146,36 @@
following macros to request conversions between the register and memory
representations of a data type:
-@deftypefn {Target Macro} int CONVERT_REGISTER_P (int @var{reg})
+@deftypefn {Target Macro} int gdbarch_convert_register_p (struct gdbarch *@var{gdbarch}, int @var{reg})
Return non-zero if the representation of a data value stored in this
register may be different to the representation of that same data value
when stored in memory.
-When non-zero, the macros @code{REGISTER_TO_VALUE} and
-@code{VALUE_TO_REGISTER} are used to perform any necessary conversion.
+When non-zero, the gdbarch functions @code{gdbarch_register_to_value} and
+@code{gdbarch_value_to_register} are used to perform any necessary conversion.
@end deftypefn
-@deftypefn {Target Macro} void REGISTER_TO_VALUE (int @var{reg}, struct type *@var{type}, char *@var{from}, char *@var{to})
+@deftypefn {Target Macro} void gdbarch_register_to_value (struct gdbarch *@var{current_gdbarch}, int @var{reg}, struct type *@var{type}, char *@var{from}, char *@var{to})
Convert the value of register number @var{reg} to a data object of type
@var{type}. The buffer at @var{from} holds the register's value in raw
format; the converted value should be placed in the buffer at @var{to}.
-Note that @code{REGISTER_TO_VALUE} and @code{VALUE_TO_REGISTER} take
-their @var{reg} and @var{type} arguments in different orders.
+Note that @code{gdbarch_register_to_value} and @code{gdbarch_value_to_register}
+take their @var{reg} and @var{type} arguments in different orders.
-You should only use @code{REGISTER_TO_VALUE} with registers for which
-the @code{CONVERT_REGISTER_P} macro returns a non-zero value.
+You should only use @code{gdbarch_register_to_value} with registers for which
+the @code{gdbarch_convert_register_p} function returns a non-zero value.
@end deftypefn
-@deftypefn {Target Macro} void VALUE_TO_REGISTER (struct type *@var{type}, int @var{reg}, char *@var{from}, char *@var{to})
+@deftypefn {Target Macro} void gdbarch_value_to_register (struct gdbarch *@var{current_gdbarch}, struct type *@var{type}, int @var{reg}, char *@var{from}, char *@var{to})
Convert a data value of type @var{type} to register number @var{reg}'
raw format.
-Note that @code{REGISTER_TO_VALUE} and @code{VALUE_TO_REGISTER} take
-their @var{reg} and @var{type} arguments in different orders.
+Note that @code{gdbarch_register_to_value} and @code{gdbarch_value_to_register}
+take their @var{reg} and @var{type} arguments in different orders.
-You should only use @code{VALUE_TO_REGISTER} with registers for which
-the @code{CONVERT_REGISTER_P} macro returns a non-zero value.
+You should only use @code{gdbarch_value_to_register} with registers for which
+the @code{gdbarch_convert_register_p} function returns a non-zero value.
@end deftypefn
@deftypefn {Target Macro} void REGISTER_CONVERT_TO_TYPE (int @var{regnum}, struct type *@var{type}, char *@var{buf})
@@ -3196,10 +3196,10 @@
@table @code
-@item ADDR_BITS_REMOVE (addr)
-@findex ADDR_BITS_REMOVE
+@item gdbarch_addr_bits_remove (@var{current_gdbarch}, @var{addr})
+@findex gdbarch_addr_bits_remove
If a raw machine instruction address includes any bits that are not
-really part of the address, then define this macro to expand into an
+really part of the address, then set this function to expand into an
expression that zeroes those bits in @var{addr}. This is only used for
addresses of instructions, and even then not in all contexts.
@@ -3207,7 +3207,7 @@
2.0 architecture contain the privilege level of the corresponding
instruction. Since instructions must always be aligned on four-byte
boundaries, the processor masks out these bits to generate the actual
-address of the instruction. ADDR_BITS_REMOVE should filter out these
+address of the instruction. gdbarch_addr_bits_remove should filter out these
bits with an expression such as @code{((addr) & ~3)}.
@item ADDRESS_CLASS_NAME_TO_TYPE_FLAGS (@var{name}, @var{type_flags_ptr})
@@ -3227,8 +3227,8 @@
Predicate which indicates whether @code{ADDRESS_CLASS_NAME_TO_TYPE_FLAGS}
has been defined.
-@item ADDRESS_CLASS_TYPE_FLAGS (@var{byte_size}, @var{dwarf2_addr_class})
-@findex ADDRESS_CLASS_TYPE_FLAGS (@var{byte_size}, @var{dwarf2_addr_class})
+@item gdbarch_address_class_type_flags (@var{current_gdbarch}, @var{byte_size}, @var{dwarf2_addr_class})
+@findex gdbarch_address_class_type_flags
Given a pointers byte size (as described by the debug information) and
the possible @code{DW_AT_address_class} value, return the type flags
used by @value{GDBN} to represent this address class. The value
@@ -3237,32 +3237,31 @@
values or'd together.
@xref{Target Architecture Definition, , Address Classes}.
-@item ADDRESS_CLASS_TYPE_FLAGS_P ()
-@findex ADDRESS_CLASS_TYPE_FLAGS_P
-Predicate which indicates whether @code{ADDRESS_CLASS_TYPE_FLAGS} has
+@item gdbarch_address_class_type_flags_p (@var{current_gdbarch})
+@findex gdbarch_address_class_type_flags_p
+Predicate which indicates whether @code{gdbarch_address_class_type_flags_p} has
been defined.
-@item ADDRESS_CLASS_TYPE_FLAGS_TO_NAME (@var{type_flags})
-@findex ADDRESS_CLASS_TYPE_FLAGS_TO_NAME
+@item gdbarch_address_class_type_flags_to_name (@var{current_gdbarch}, @var{type_flags})
+@findex gdbarch_address_class_type_flags_to_name
Return the name of the address class qualifier associated with the type
flags given by @var{type_flags}.
-@item ADDRESS_CLASS_TYPE_FLAGS_TO_NAME_P ()
-@findex ADDRESS_CLASS_TYPE_FLAGS_TO_NAME_P
-Predicate which indicates whether @code{ADDRESS_CLASS_TYPE_FLAGS_TO_NAME} has
-been defined.
+@item gdbarch_address_class_type_flags_to_name_p (@var{current_gdbarch})
+@findex gdbarch_address_class_type_flags_to_name_p
+Predicate which indicates whether @code{gdbarch_address_class_type_flags_to_name} has been defined.
@xref{Target Architecture Definition, , Address Classes}.
-@item ADDRESS_TO_POINTER (@var{type}, @var{buf}, @var{addr})
-@findex ADDRESS_TO_POINTER
+@item gdbarch_address_to_pointer (@var{current_gdbarch}, @var{type}, @var{buf}, @var{addr})
+@findex gdbarch_address_to_pointer
Store in @var{buf} a pointer of type @var{type} representing the address
@var{addr}, in the appropriate format for the current architecture.
-This macro may safely assume that @var{type} is either a pointer or a
+This function may safely assume that @var{type} is either a pointer or a
C@t{++} reference type.
@xref{Target Architecture Definition, , Pointers Are Not Always Addresses}.
-@item BELIEVE_PCC_PROMOTION
-@findex BELIEVE_PCC_PROMOTION
+@item gdbarch_believe_pcc_promotion (@var{current_gdbarch})
+@findex gdbarch_believe_pcc_promotion
Define if the compiler promotes a @code{short} or @code{char}
parameter to an @code{int}, but still reports the parameter as its
original type, rather than the promoted type.
@@ -3282,7 +3281,7 @@
longer than the shortest instruction of the architecture.
@code{BREAKPOINT} has been deprecated in favor of
-@code{BREAKPOINT_FROM_PC}.
+@code{gdbarch_breakpoint_from_pc}.
@item BIG_BREAKPOINT
@itemx LITTLE_BREAKPOINT
@@ -3291,11 +3290,11 @@
Similar to BREAKPOINT, but used for bi-endian targets.
@code{BIG_BREAKPOINT} and @code{LITTLE_BREAKPOINT} have been deprecated in
-favor of @code{BREAKPOINT_FROM_PC}.
+favor of @code{gdbarch_breakpoint_from_pc}.
-@item BREAKPOINT_FROM_PC (@var{pcptr}, @var{lenptr})
-@findex BREAKPOINT_FROM_PC
-@anchor{BREAKPOINT_FROM_PC} Use the program counter to determine the
+@item gdbarch_breakpoint_from_pc (@var{current_gdbarch}, @var{pcptr}, @var{lenptr})
+@findex gdbarch_breakpoint_from_pc
+@anchor{gdbarch_breakpoint_from_pc} Use the program counter to determine the
contents and size of a breakpoint instruction. It returns a pointer to
a string of bytes that encode a breakpoint instruction, stores the
length of the string to @code{*@var{lenptr}}, and adjusts the program
@@ -3309,22 +3308,21 @@
Replaces all the other @var{BREAKPOINT} macros.
-@item MEMORY_INSERT_BREAKPOINT (@var{bp_tgt})
-@itemx MEMORY_REMOVE_BREAKPOINT (@var{bp_tgt})
-@findex MEMORY_REMOVE_BREAKPOINT
-@findex MEMORY_INSERT_BREAKPOINT
+@item gdbarch_memory_insert_breakpoint (@var{current_gdbarch}, @var{bp_tgt})
+@itemx gdbarch_memory_remove_breakpoint (@var{current_gdbarch}, @var{bp_tgt})
+@findex gdbarch_memory_remove_breakpoint
+@findex gdbarch_memory_insert_breakpoint
Insert or remove memory based breakpoints. Reasonable defaults
(@code{default_memory_insert_breakpoint} and
@code{default_memory_remove_breakpoint} respectively) have been
-provided so that it is not necessary to define these for most
-architectures. Architectures which may want to define
-@code{MEMORY_INSERT_BREAKPOINT} and @code{MEMORY_REMOVE_BREAKPOINT} will
-likely have instructions that are oddly sized or are not stored in a
+provided so that it is not necessary to set these for most
+architectures. Architectures which may want to set
+@code{gdbarch_memory_insert_breakpoint} and @code{gdbarch_memory_remove_breakpoint} will likely have instructions that are oddly sized or are not stored in a
conventional manner.
It may also be desirable (from an efficiency standpoint) to define
custom breakpoint insertion and removal routines if
-@code{BREAKPOINT_FROM_PC} needs to read the target's memory for some
+@code{gdbarch_breakpoint_from_pc} needs to read the target's memory for some
reason.
@item ADJUST_BREAKPOINT_ADDRESS (@var{address})
@@ -3360,35 +3358,35 @@
expectation, @value{GDBN} prints a warning when an adjusted breakpoint
is initially set and each time that that breakpoint is hit.
-@item CALL_DUMMY_LOCATION
-@findex CALL_DUMMY_LOCATION
+@item gdbarch_call_dummy_location (@var{current_gdbarch})
+@findex gdbarch_call_dummy_location
See the file @file{inferior.h}.
This method has been replaced by @code{push_dummy_code}
(@pxref{push_dummy_code}).
-@item CANNOT_FETCH_REGISTER (@var{regno})
-@findex CANNOT_FETCH_REGISTER
+@item gdbarch_cannot_fetch_register (@var{current_gdbarch}, @var{regno})
+@findex gdbarch_cannot_fetch_register
A C expression that should be nonzero if @var{regno} cannot be fetched
from an inferior process. This is only relevant if
@code{FETCH_INFERIOR_REGISTERS} is not defined.
-@item CANNOT_STORE_REGISTER (@var{regno})
-@findex CANNOT_STORE_REGISTER
+@item gdbarch_cannot_store_register (@var{current_gdbarch}, @var{regno})
+@findex gdbarch_cannot_store_register
A C expression that should be nonzero if @var{regno} should not be
written to the target. This is often the case for program counters,
status words, and other special registers. If this is not defined,
@value{GDBN} will assume that all registers may be written.
-@item int CONVERT_REGISTER_P(@var{regnum})
-@findex CONVERT_REGISTER_P
+@item int gdbarch_convert_register_p (@var{current_gdbarch}, @var{regnum})
+@findex gdbarch_convert_register_p
Return non-zero if register @var{regnum} can represent data values in a
non-standard form.
@xref{Target Architecture Definition, , Using Different Register and Memory Data Representations}.
-@item DECR_PC_AFTER_BREAK
-@findex DECR_PC_AFTER_BREAK
-Define this to be the amount by which to decrement the PC after the
+@item gdbarch_decr_pc_after_break (@var{current_gdbarch})
+@findex gdbarch_decr_pc_after_break
+Set this to the amount by which to decrement the PC after the
program encounters a breakpoint. This is often the number of bytes in
@code{BREAKPOINT}, though not always. For most targets this value will be 0.
@@ -3420,19 +3418,19 @@
By default, the @samp{info vector} command will print all vector
registers (the register's type having the vector attribute).
-@item DWARF_REG_TO_REGNUM
-@findex DWARF_REG_TO_REGNUM
-Convert DWARF register number into @value{GDBN} regnum. If not defined,
+@item gdbarch_dwarf_reg_to_regnum (@var{current_gdbarch})
+@findex gdbarch_dwarf_reg_to_regnum
+Convert DWARF register number into @value{GDBN} regnum. If not set,
no conversion will be performed.
-@item DWARF2_REG_TO_REGNUM
-@findex DWARF2_REG_TO_REGNUM
+@item gdbarch_dwarf2_reg_to_regnum (@var{current_gdbarch})
+@findex gdbarch_dwarf2_reg_to_regnum
Convert DWARF2 register number into @value{GDBN} regnum. If not
-defined, no conversion will be performed.
+set, no conversion will be performed.
-@item ECOFF_REG_TO_REGNUM
-@findex ECOFF_REG_TO_REGNUM
-Convert ECOFF register number into @value{GDBN} regnum. If not defined,
+@item gdbarch_ecoff_reg_to_regnum (@var{current_gdbarch})
+@findex gdbarch_ecoff_reg_to_regnum
+Convert ECOFF register number into @value{GDBN} regnum. If not set,
no conversion will be performed.
@item END_OF_TEXT_DEFAULT
@@ -3440,8 +3438,8 @@
This is an expression that should designate the end of the text section.
@c (? FIXME ?)
-@item EXTRACT_RETURN_VALUE(@var{type}, @var{regbuf}, @var{valbuf})
-@findex EXTRACT_RETURN_VALUE
+@item gdbarch_extract_return_value (@var{current_gdbarch}, @var{type}, @var{regbuf}, @var{valbuf})
+@findex gdbarch_extract_return_value
Define this to extract a function's return value of type @var{type} from
the raw register state @var{regbuf} and copy that, in virtual format,
into @var{valbuf}.
@@ -3534,8 +3532,8 @@
@code{FRAME_FIND_SAVED_REGS} is deprecated.
-@item FRAME_NUM_ARGS (@var{fi})
-@findex FRAME_NUM_ARGS
+@item gdbarch_frame_num_args (@var{current_gdbarch}, @var{fi})
+@findex gdbarch_frame_num_args
For the frame described by @var{fi} return the number of arguments that
are being passed. If the number of arguments is not known, return
@code{-1}.
@@ -3630,8 +3628,8 @@
HPPA's. This should all be ripped out, and a scheme like @file{elfread.c}
used instead.
-@item GET_LONGJMP_TARGET
-@findex GET_LONGJMP_TARGET
+@item gdbarch_get_longjmp_target
+@findex gdbarch_get_longjmp_target
For most machines, this is a target-dependent parameter. On the
DECstation and the Iris, this is a native-dependent parameter, since
the header file @file{setjmp.h} is needed to define it.
@@ -3678,8 +3676,8 @@
This is a C statement that sets the pc of the frame pointed to by
@var{prev}. [By default...]
-@item INNER_THAN (@var{lhs}, @var{rhs})
-@findex INNER_THAN
+@item gdbarch_inner_than (@var{gdbarch}, @var{lhs}, @var{rhs})
+@findex gdbarch_inner_than
Returns non-zero if stack address @var{lhs} is inner than (nearer to the
stack top) stack address @var{rhs}. Define this as @code{lhs < rhs} if
the target's stack grows downward in memory, or @code{lhs > rsh} if the
@@ -3706,8 +3704,8 @@
Define this to evaluate to nonzero if the program is stopped in the
trampoline that connects to a shared library.
-@item IN_SOLIB_RETURN_TRAMPOLINE (@var{pc}, @var{name})
-@findex IN_SOLIB_RETURN_TRAMPOLINE
+@item gdbarch_in_solib_trampoline (@var{current_gdbarch}, @var{pc}, @var{name})
+@findex gdbarch_in_solib_trampoline
Define this to evaluate to nonzero if the program is stopped in the
trampoline that returns from a shared library.
@@ -3751,8 +3749,8 @@
@findex NO_HIF_SUPPORT
(Specific to the a29k.)
-@item POINTER_TO_ADDRESS (@var{type}, @var{buf})
-@findex POINTER_TO_ADDRESS
+@item gdbarch_pointer_to_address (@var{current_gdbarch}, @var{type}, @var{buf})
+@findex gdbarch_pointer_to_address
Assume that @var{buf} holds a pointer of type @var{type}, in the
appropriate format for the current architecture. Return the byte
address the pointer refers to.
@@ -3763,8 +3761,8 @@
Return non-zero if @var{reg} uses different raw and virtual formats.
@xref{Target Architecture Definition, , Raw and Virtual Register Representations}.
-@item REGISTER_TO_VALUE(@var{regnum}, @var{type}, @var{from}, @var{to})
-@findex REGISTER_TO_VALUE
+@item gdbarch_register_to_value(@var{current_gdbarch}, @var{regnum}, @var{type}, @var{from}, @var{to})
+@findex gdbarch_register_to_value
Convert the raw contents of register @var{regnum} into a value of type
@var{type}.
@xref{Target Architecture Definition, , Using Different Register and Memory Data Representations}.
@@ -3881,10 +3879,10 @@
If defined, print information about the load segment for the program
counter. (Defined only for the RS/6000.)
-@item PC_REGNUM
-@findex PC_REGNUM
-If the program counter is kept in a register, then define this macro to
-be the number (greater than or equal to zero) of that register.
+@item gdbarch_pc_regnum (@var{current_gdbarch})
+@findex gdbarch_pc_regnum
+If the program counter is kept in a register, then let this function return
+the number (greater than or equal to zero) of that register.
This should only need to be defined if @code{TARGET_READ_PC} and
@code{TARGET_WRITE_PC} are not defined.
@@ -3912,10 +3910,10 @@
@findex PROLOGUE_FIRSTLINE_OVERLAP
(Only used in unsupported Convex configuration.)
-@item PS_REGNUM
-@findex PS_REGNUM
-If defined, this is the number of the processor status register. (This
-definition is only used in generic code when parsing "$ps".)
+@item gdbarch_ps_regnum (@var{current_gdbarch}
+@findex gdbarch_ps_regnum
+If set, this function returns is the number of the processor status register.
+(This definition is only used in generic code when parsing "$ps".)
@item DEPRECATED_POP_FRAME
@findex DEPRECATED_POP_FRAME
@@ -3952,11 +3950,11 @@
(@pxref{frame_align}) breakpoint, @var{bp_addr} is set to the address
reserved for that breakpoint, and @var{real_pc} set to @var{funaddr}.
-This method replaces @code{CALL_DUMMY_LOCATION},
+This method replaces @code{gdbarch_call_dummy_location (@var{current_gdbarch})},
@code{DEPRECATED_REGISTER_SIZE}.
-@item REGISTER_NAME(@var{i})
-@findex REGISTER_NAME
+@item gdbarch_register_name (@var{current_gdbarch}, @var{i})
+@findex gdbarch_register_name
Return the name of register @var{i} as a string. May return @code{NULL}
or @code{NUL} to indicate that register @var{i} is not valid.
@@ -3976,10 +3974,10 @@
after both the dummy frame and space for parameters/results have been
allocated on the stack. @xref{unwind_dummy_id}.
-@item SDB_REG_TO_REGNUM
-@findex SDB_REG_TO_REGNUM
-Define this to convert sdb register numbers into @value{GDBN} regnums. If not
-defined, no conversion will be done.
+@item gdbarch_sdb_reg_to_regnum (@var{current_gdbarch})
+@findex gdbarch_sdb_reg_to_regnum
+Use this function to convert sdb register numbers into @value{GDBN} regnums.
+If not set, no conversion will be done.
@item enum return_value_convention gdbarch_return_value (struct gdbarch *@var{gdbarch}, struct type *@var{valtype}, struct regcache *@var{regcache}, void *@var{readbuf}, const void *@var{writebuf})
@findex gdbarch_return_value
@@ -4034,27 +4032,27 @@
macro does the right thing even when the breakpoint is in the delay slot
of a branch or jump.
-@item SKIP_PROLOGUE (@var{pc})
-@findex SKIP_PROLOGUE
+@item gdbarch_skip_prologue (@var{current_gdbarch}, @var{pc})
+@findex gdbarch_skip_prologue
A C expression that returns the address of the ``real'' code beyond the
function entry prologue found at @var{pc}.
-@item SKIP_TRAMPOLINE_CODE (@var{pc})
-@findex SKIP_TRAMPOLINE_CODE
+@item gdbarch_skip_trampoline_code (@var{current_gdbarch}, @var{pc})
+@findex gdbarch_skip_trampoline_code
If the target machine has trampoline code that sits between callers and
-the functions being called, then define this macro to return a new PC
+the functions being called, then set this function to return a new PC
that is at the start of the real function.
-@item SP_REGNUM
-@findex SP_REGNUM
-If the stack-pointer is kept in a register, then define this macro to be
+@item gdbarch_sp_regnum (@var{current_gdbarch})
+@findex gdbarch_sp_regnum
+If the stack-pointer is kept in a register, then use this function to return
the number (greater than or equal to zero) of that register, or -1 if
there is no such register.
-@item STAB_REG_TO_REGNUM
-@findex STAB_REG_TO_REGNUM
-Define this to convert stab register numbers (as gotten from `r'
-declarations) into @value{GDBN} regnums. If not defined, no conversion will be
+@item gdbarch_stab_reg_to_regnum (@var{current_gdbarch})
+@findex gdbarch_stab_reg_to_regnum
+Use this function to convert stab register numbers (as gotten from `r'
+declarations) into @value{GDBN} regnums. If not set, no conversion will be
done.
@item DEPRECATED_STACK_ALIGN (@var{addr})
@@ -4075,8 +4073,8 @@
slot, @value{GDBN} will single-step over that instruction before resuming
normally. Currently only defined for the Mips.
-@item STORE_RETURN_VALUE (@var{type}, @var{regcache}, @var{valbuf})
-@findex STORE_RETURN_VALUE
+@item gdbarch_store_return_value (@var{current_gdbarch}, @var{type}, @var{regcache}, @var{valbuf})
+@findex gdbarch_store_return_value
A C expression that writes the function return value, found in
@var{valbuf}, into the @var{regcache}. @var{type} is the type of the
value that is to be returned.
@@ -4093,8 +4091,8 @@
@findex TARGET_CHAR_BIT
Number of bits in a char; defaults to 8.
-@item TARGET_CHAR_SIGNED
-@findex TARGET_CHAR_SIGNED
+@item gdbarch_char_signed (@var{current_gdbarch})
+@findex gdbarch_char_signed
Non-zero if @code{char} is normally signed on this architecture; zero if
it should be unsigned.
@@ -4106,47 +4104,50 @@
@item TARGET_COMPLEX_BIT
@findex TARGET_COMPLEX_BIT
-Number of bits in a complex number; defaults to @code{2 * TARGET_FLOAT_BIT}.
+Number of bits in a complex number; defaults to @code{2 * gdbarch_float_bit
+ (@var{current_gdbarch})}.
At present this macro is not used.
-@item TARGET_DOUBLE_BIT
-@findex TARGET_DOUBLE_BIT
+@item gdbarch_double_bit (@var{current_gdbarch})
+@findex gdbarch_double_bit
Number of bits in a double float; defaults to @code{8 * TARGET_CHAR_BIT}.
@item TARGET_DOUBLE_COMPLEX_BIT
@findex TARGET_DOUBLE_COMPLEX_BIT
-Number of bits in a double complex; defaults to @code{2 * TARGET_DOUBLE_BIT}.
+Number of bits in a double complex; defaults to @code{2 * gdbarch_double_bit
+ (@var{current_gdbarch})}.
At present this macro is not used.
-@item TARGET_FLOAT_BIT
-@findex TARGET_FLOAT_BIT
+@item gdbarch_float_bit (@var{current_gdbarch})
+@findex gdbarch_float_bit
Number of bits in a float; defaults to @code{4 * TARGET_CHAR_BIT}.
-@item TARGET_INT_BIT
-@findex TARGET_INT_BIT
+@item gdbarch_int_bit (@var{current_gdbarch})
+@findex gdbarch_int_bit
Number of bits in an integer; defaults to @code{4 * TARGET_CHAR_BIT}.
-@item TARGET_LONG_BIT
-@findex TARGET_LONG_BIT
+@item gdbarch_long_bit (@var{current_gdbarch})
+@findex gdbarch_long_bit
Number of bits in a long integer; defaults to @code{4 * TARGET_CHAR_BIT}.
-@item TARGET_LONG_DOUBLE_BIT
-@findex TARGET_LONG_DOUBLE_BIT
+@item gdbarch_long_double_bit (@var{current_gdbarch})
+@findex gdbarch_long_double_bit
Number of bits in a long double float;
-defaults to @code{2 * TARGET_DOUBLE_BIT}.
+defaults to @code{2 * gdbarch_double_bit (@var{current_gdbarch})}.
-@item TARGET_LONG_LONG_BIT
-@findex TARGET_LONG_LONG_BIT
-Number of bits in a long long integer; defaults to @code{2 * TARGET_LONG_BIT}.
-
-@item TARGET_PTR_BIT
-@findex TARGET_PTR_BIT
-Number of bits in a pointer; defaults to @code{TARGET_INT_BIT}.
+@item gdbarch_long_long_bit (@var{current_gdbarch})
+@findex gdbarch_long_long_bit
+Number of bits in a long long integer; defaults to @code{2 * gdbarch_long_bit
+ (@var{current_gdbarch})}.
+
+@item gdbarch_ptr_bit (@var{current_gdbarch})
+@findex gdbarch_ptr_bit
+Number of bits in a pointer; defaults to @code{gdbarch_int_bit (@var{current_gdbarch})}.
-@item TARGET_SHORT_BIT
-@findex TARGET_SHORT_BIT
+@item gdbarch_short_bit (@var{current_gdbarch})
+@findex gdbarch_short_bit
Number of bits in a short integer; defaults to @code{2 * TARGET_CHAR_BIT}.
@item TARGET_READ_PC
@@ -4185,8 +4186,8 @@
watchpoints. @xref{Algorithms, watchpoints}, for more details and
other related macros.
-@item TARGET_PRINT_INSN (@var{addr}, @var{info})
-@findex TARGET_PRINT_INSN
+@item gdbarch_target_print_insn (@var{current_gdbarch}, @var{addr}, @var{info})
+@findex gdbarch_target_print_insn
This is the function used by @value{GDBN} to print an assembly
instruction. It prints the instruction at address @var{addr} in
debugged memory and returns the length of the instruction, in bytes. If
@@ -4218,8 +4219,8 @@
This method has been deprecated in favour of @code{gdbarch_return_value}
(@pxref{gdbarch_return_value}).
-@item VALUE_TO_REGISTER(@var{type}, @var{regnum}, @var{from}, @var{to})
-@findex VALUE_TO_REGISTER
+@item gdbarch_value_to_register(@var{current_gdbarch}, @var{type}, @var{regnum}, @var{from}, @var{to})
+@findex gdbarch_value_to_register
Convert a value of type @var{type} into the raw contents of register
@var{regnum}'s.
@xref{Target Architecture Definition, , Using Different Register and Memory Data Representations}.
@@ -4248,8 +4249,8 @@
@item REMOTE_BPT_VECTOR
Defaults to @code{1}.
-@item NAME_OF_MALLOC
-@findex NAME_OF_MALLOC
+@item gdbarch_name_of_malloc (@var{current_gdbarch})
+@findex gdbarch_name_of_malloc
A string containing the name of the function to call in order to
allocate some memory in the inferior. The default value is "malloc".
@@ -4873,20 +4874,20 @@
@file{infptrace.c} is included in this configuration, the default
routines in @file{infptrace.c} are used for these functions.
-@item FP0_REGNUM
-@findex FP0_REGNUM
-This macro is normally defined to be the number of the first floating
+@item gdbarch_fp0_regnum (@var{current_gdbarch})
+@findex gdbarch_fp0_regnum
+This functions normally returns the number of the first floating
point register, if the machine has such registers. As such, it would
appear only in target-specific code. However, @file{/proc} support uses this
to decide whether floats are in use on this target.
-@item GET_LONGJMP_TARGET
-@findex GET_LONGJMP_TARGET
+@item gdbarch_get_longjmp_target (@var{current_gdbarch})
+@findex gdbarch_get_longjmp_target
For most machines, this is a target-dependent parameter. On the
DECstation and the Iris, this is a native-dependent parameter, since
@file{setjmp.h} is needed to define it.
-This macro determines the target PC address that @code{longjmp} will jump to,
+This function determines the target PC address that @code{longjmp} will jump to,
assuming that we have just stopped at a longjmp breakpoint. It takes a
@code{CORE_ADDR *} as argument, and stores the target PC value through this
pointer. It examines the current state of the machine as needed.
diff -urN src/gdb/doc/gdb.texinfo dev/gdb/doc/gdb.texinfo
--- src/gdb/doc/gdb.texinfo 2007-06-19 05:22:05.000000000 +0200
+++ dev/gdb/doc/gdb.texinfo 2007-06-20 10:49:17.000000000 +0200
@@ -22763,8 +22763,8 @@
Each byte of register data is described by two hex digits. The bytes
with the register are transmitted in target byte order. The size of
each register and their position within the @samp{g} packet are
-determined by the @value{GDBN} internal macros
-@code{DEPRECATED_REGISTER_RAW_SIZE} and @code{REGISTER_NAME} macros. The
+determined by the @value{GDBN} internal gdbarch functions
+@code{DEPRECATED_REGISTER_RAW_SIZE} and @code{gdbarch_register_name}. The
specification of several standard @samp{g} packets is specified below.
@item E @var{NN}
for an error.