Commit 01e2750c by Richard Stallman

*** empty log message ***

From-SVN: r993
parent cebfccda
...@@ -249,7 +249,10 @@ do { \ ...@@ -249,7 +249,10 @@ do { \
/* #define MULTIBYTE_CHARS */ /* #define MULTIBYTE_CHARS */
#undef ASM_BYTE_OP #undef ASM_BYTE_OP
#define ASM_BYTE_OP "\t.byte" #define ASM_BYTE_OP ".byte"
#undef SET_ASM_OP
#define SET_ASM_OP ".set"
/* This is how to begin an assembly language file. Most svr4 assemblers want /* This is how to begin an assembly language file. Most svr4 assemblers want
at least a .file directive to come first, and some want to see a .version at least a .file directive to come first, and some want to see a .version
......
...@@ -94,8 +94,8 @@ extern int errno; ...@@ -94,8 +94,8 @@ extern int errno;
#define ASM_STABN_OP ".stabn" #define ASM_STABN_OP ".stabn"
#endif #endif
#ifndef DBX_DECL_STABS_CODE #ifndef DBX_TYPE_DECL_STABS_CODE
#define DBX_DECL_STABS_CODE N_LSYM #define DBX_TYPE_DECL_STABS_CODE N_LSYM
#endif #endif
#ifndef DBX_STATIC_CONST_VAR_CODE #ifndef DBX_STATIC_CONST_VAR_CODE
...@@ -110,6 +110,10 @@ extern int errno; ...@@ -110,6 +110,10 @@ extern int errno;
#define DBX_REGPARM_STABS_LETTER 'P' #define DBX_REGPARM_STABS_LETTER 'P'
#endif #endif
#ifndef DBX_MEMPARM_STABS_LETTER
#define DBX_MEMPARM_STABS_LETTER 'p'
#endif
/* Nonzero means if the type has methods, only output debugging /* Nonzero means if the type has methods, only output debugging
information if methods are actually written to the asm file. */ information if methods are actually written to the asm file. */
...@@ -1098,6 +1102,9 @@ dbxout_type (type, full, show_arg_types) ...@@ -1098,6 +1102,9 @@ dbxout_type (type, full, show_arg_types)
fprintf (asmfile, ":"); fprintf (asmfile, ":");
return; return;
} }
#ifdef DBX_OUTPUT_ENUM
DBX_OUTPUT_ENUM (asmfile, type);
#else
putc ('e', asmfile); putc ('e', asmfile);
CHARS (1); CHARS (1);
for (tem = TYPE_VALUES (type); tem; tem = TREE_CHAIN (tem)) for (tem = TYPE_VALUES (type); tem; tem = TREE_CHAIN (tem))
...@@ -1110,6 +1117,7 @@ dbxout_type (type, full, show_arg_types) ...@@ -1110,6 +1117,7 @@ dbxout_type (type, full, show_arg_types)
} }
putc (';', asmfile); putc (';', asmfile);
CHARS (1); CHARS (1);
#endif
break; break;
case POINTER_TYPE: case POINTER_TYPE:
...@@ -1367,6 +1375,16 @@ dbxout_symbol (decl, local) ...@@ -1367,6 +1375,16 @@ dbxout_symbol (decl, local)
fprintf (asmfile, "%s \"%s:", ASM_STABS_OP, fprintf (asmfile, "%s \"%s:", ASM_STABS_OP,
IDENTIFIER_POINTER (DECL_NAME (decl))); IDENTIFIER_POINTER (DECL_NAME (decl)));
/* #ifndef DBX_NO_EXTRA_TAGS rms: I think this is no longer needed. */
/* This section makes absolutely no sense to me. Why would a tag
ever be needed at this point? The result of this is that any
structure typedef with the tag omitted is treated as if the
tag was given to be the same as the typedef name. Probably
no harm in it, unless the programmer used the same name for
the tag of a *different* structure. At any rate, Alliant's
debugger would want the tag output before the typedef, so
this code still loses. -- hyc */
/* Short cut way to output a tag also. */ /* Short cut way to output a tag also. */
if ((TREE_CODE (type) == RECORD_TYPE if ((TREE_CODE (type) == RECORD_TYPE
|| TREE_CODE (type) == UNION_TYPE) || TREE_CODE (type) == UNION_TYPE)
...@@ -1380,9 +1398,10 @@ dbxout_symbol (decl, local) ...@@ -1380,9 +1398,10 @@ dbxout_symbol (decl, local)
else else
tag_needed = 1; tag_needed = 1;
} }
/* #endif */
putc ('t', asmfile); putc ('t', asmfile);
current_sym_code = DBX_DECL_STABS_CODE; current_sym_code = DBX_TYPE_DECL_STABS_CODE;
dbxout_type (type, 1, 0); dbxout_type (type, 1, 0);
dbxout_finish_symbol (decl); dbxout_finish_symbol (decl);
...@@ -1400,7 +1419,7 @@ dbxout_symbol (decl, local) ...@@ -1400,7 +1419,7 @@ dbxout_symbol (decl, local)
if (TREE_CODE (name) == TYPE_DECL) if (TREE_CODE (name) == TYPE_DECL)
name = DECL_NAME (name); name = DECL_NAME (name);
current_sym_code = DBX_DECL_STABS_CODE; current_sym_code = DBX_TYPE_DECL_STABS_CODE;
current_sym_value = 0; current_sym_value = 0;
current_sym_addr = 0; current_sym_addr = 0;
current_sym_nchars = 2 + IDENTIFIER_LENGTH (name); current_sym_nchars = 2 + IDENTIFIER_LENGTH (name);
...@@ -1771,13 +1790,15 @@ dbxout_parms (parms) ...@@ -1771,13 +1790,15 @@ dbxout_parms (parms)
{ {
current_sym_nchars = 2 + IDENTIFIER_LENGTH (DECL_NAME (parms)); current_sym_nchars = 2 + IDENTIFIER_LENGTH (DECL_NAME (parms));
fprintf (asmfile, "%s \"%s:p", ASM_STABS_OP, fprintf (asmfile, "%s \"%s:%c", ASM_STABS_OP,
IDENTIFIER_POINTER (DECL_NAME (parms))); IDENTIFIER_POINTER (DECL_NAME (parms)),
DBX_MEMPARM_STABS_LETTER);
} }
else else
{ {
current_sym_nchars = 8; current_sym_nchars = 8;
fprintf (asmfile, "%s \"(anon):p", ASM_STABS_OP); fprintf (asmfile, "%s \"(anon):%c", ASM_STABS_OP,
DBX_MEMPARM_STABS_LETTER);
} }
if (GET_CODE (DECL_RTL (parms)) == REG if (GET_CODE (DECL_RTL (parms)) == REG
...@@ -1917,13 +1938,15 @@ dbxout_parms (parms) ...@@ -1917,13 +1938,15 @@ dbxout_parms (parms)
{ {
current_sym_nchars = 2 + strlen (IDENTIFIER_POINTER (DECL_NAME (parms))); current_sym_nchars = 2 + strlen (IDENTIFIER_POINTER (DECL_NAME (parms)));
fprintf (asmfile, "%s \"%s:p", ASM_STABS_OP, fprintf (asmfile, "%s \"%s:%c", ASM_STABS_OP,
IDENTIFIER_POINTER (DECL_NAME (parms))); IDENTIFIER_POINTER (DECL_NAME (parms)),
DBX_MEMPARM_STABS_LETTER);
} }
else else
{ {
current_sym_nchars = 8; current_sym_nchars = 8;
fprintf (asmfile, "%s \"(anon):p", ASM_STABS_OP); fprintf (asmfile, "%s \"(anon):%c", ASM_STABS_OP,
DBX_MEMPARM_STABS_LETTER);
} }
current_sym_value current_sym_value
...@@ -2121,9 +2144,13 @@ dbxout_block (block, depth, args) ...@@ -2121,9 +2144,13 @@ dbxout_block (block, depth, args)
} }
} }
#ifdef DBX_OUTPUT_LBRAC
DBX_OUTPUT_LBRAC (asmfile, buf);
#else
fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_LBRAC); fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_LBRAC);
assemble_name (asmfile, buf); assemble_name (asmfile, buf);
fprintf (asmfile, "\n"); fprintf (asmfile, "\n");
#endif
} }
else if (depth > 0) else if (depth > 0)
/* Count blocks the same way regardless of debug_info_level. */ /* Count blocks the same way regardless of debug_info_level. */
...@@ -2146,9 +2173,13 @@ dbxout_block (block, depth, args) ...@@ -2146,9 +2173,13 @@ dbxout_block (block, depth, args)
{ {
char buf[20]; char buf[20];
ASM_GENERATE_INTERNAL_LABEL (buf, "LBE", blocknum); ASM_GENERATE_INTERNAL_LABEL (buf, "LBE", blocknum);
#ifdef DBX_OUTPUT_RBRAC
DBX_OUTPUT_RBRAC (asmfile, buf);
#else
fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_RBRAC); fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_RBRAC);
assemble_name (asmfile, buf); assemble_name (asmfile, buf);
fprintf (asmfile, "\n"); fprintf (asmfile, "\n");
#endif
} }
} }
block = BLOCK_CHAIN (block); block = BLOCK_CHAIN (block);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment