From: Jim Kingdon Date: Fri, 21 May 1993 16:29:24 +0000 (+0000) Subject: * stabs.texinfo (Builtin Type Descriptors): Document the floating X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1a8b5668494dd302e614481b0cfd573184334359;p=binutils-gdb.git * stabs.texinfo (Builtin Type Descriptors): Document the floating point types used with @samp{R} type descriptor. (Symbol Descriptors): Describe how to handle conflict between different meanings of @samp{P} symbol descriptor. --- diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 64d9e7b61aa..323a17aa7cb 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,10 @@ +Fri May 21 11:20:31 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabs.texinfo (Builtin Type Descriptors): Document the floating + point types used with @samp{R} type descriptor. + (Symbol Descriptors): Describe how to handle conflict between + different meanings of @samp{P} symbol descriptor. + Thu May 20 13:35:10 1993 Jim Kingdon (kingdon@lioth.cygnus.com) * stabs.texinfo: Remove node Quick Reference and put its children diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo index 1aa2143f6e6..4aa09725fb8 100644 --- a/gdb/doc/stabs.texinfo +++ b/gdb/doc/stabs.texinfo @@ -1208,7 +1208,8 @@ I'm not sure how a boolean type is represented. There are various type descriptors to define builtin types: @table @code -@c FIXME: clean up description of width and offset +@c FIXME: clean up description of width and offset, once we figure out +@c what they mean @item b @var{signed} @var{char-flag} @var{width} ; @var{offset} ; @var{nbits} ; Define an integral type. @var{signed} is @samp{u} for unsigned or @samp{s} for signed. @var{char-flag} is @samp{c} which indicates this @@ -1233,11 +1234,32 @@ will be a digit, @samp{(}, or @samp{-} for a Pascal space type, or Documented by AIX to define a wide character type, but their compiler actually uses negative type numbers (@pxref{Negative Type Numbers}). -@item R @var{details} ; @var{bytes} ; -@c FIXME: What does @var{details} mean? -Define a floating point type. @var{details} is a number which has -details about the type, for example whether it is complex. @var{bytes} -is the number of bytes occupied by the type. +@item R @var{fp_type} ; @var{bytes} ; +Define a floating point type. @var{fp_type} has one of the following values: + +@table @code +@item 1 (NF_SINGLE) +IEEE 32-bit (single precision) floating point format. + +@item 2 (NF_DOUBLE) +IEEE 64-bit (double precision) floating point format. + +@item 3 (NF_COMPLEX) +@item 4 (NF_COMPLEX16) +@item 5 (NF_COMPLEX32) +These are for complex numbers. A comment in +@file{include/aout/stab_gnu.h} describes them as Fortran complex, double +complex, and complex*16, respectively, but what does that mean? (i.e. +Single precision? Double precison?). + +@item 6 (NF_LDOUBLE) +Long double. It would be cleaner to define a different code for every +possible format of long double. +@end table + +@var{bytes} is the number of bytes occupied by the type. This allows a +debugger to perform some operations with the type even if it doesn't +understand @var{fp_code}. @item g @var{type-information} ; @var{nbits} Documented by AIX to define a floating type, but their compiler actually @@ -2923,11 +2945,12 @@ Argument list parameter, @xref{Parameters}. FORTRAN Function parameter, @xref{Parameters}. @item P -Global Procedure (AIX), @xref{Procedures}. Register parameter (GNU), -@xref{Parameters}. These two uses can be distinguised because a -register parameter uses N_PSYM and a procedure uses some other symbol -type. Prototype of function referenced by this file (Sun acc) (have not -yet investigated this conflict. FIXME). +Unfortunately, three separate meanings have been independently invented +for this symbol descriptor. At least the GNU and Sun uses can be +distinguished by the symbol type. Global Procedure (AIX) (symbol type +used unknown), @xref{Procedures}. Register parameter (GNU) (symbol type +N_PSYM), @xref{Parameters}. Prototype of function referenced by this +file (Sun acc) (symbol type N_FUN). @item Q Static Procedure, @xref{Procedures}. @@ -3631,9 +3654,6 @@ dbx? @appendix Differences between GNU stabs in a.out and GNU stabs in xcoff @c FIXME: Merge *all* these into the main body of the document. -@c Progress report: I have merged all the information from the -@c "dbx stabstring grammar" section of the AIX documentation into -@c the main body of this document, except the types. (The AIX/RS6000 native object file format is xcoff with stabs). This appendix only covers those differences which are not covered in the main body of this document. @@ -3644,9 +3664,10 @@ Instead of .stabs, xcoff uses .stabx. @item The data fields of an xcoff .stabx are in a different order than an -a.out .stabs. The order is: string, value, type. The desc and null -fields present in a.out stabs are missing in xcoff stabs. For N_GSYM -the value field is the name of the symbol. +a.out .stabs. The order is: string, value, type, sdb-type. The desc +and null fields present in a.out stabs are missing in xcoff stabs. For +N_GSYM the value field is the name of the symbol. sdb-type is unused +with stabs; it can always be set to 0. @item BSD a.out stab types correspond to AIX xcoff storage classes. In general the