Commit e5c90c23 by Tom Wood

*** empty log message ***

From-SVN: r395
parent bf4400c2
...@@ -326,18 +326,14 @@ fix_register (name, fixed, call_used) ...@@ -326,18 +326,14 @@ fix_register (name, fixed, call_used)
/* Decode the name and update the primary form of /* Decode the name and update the primary form of
the register info. */ the register info. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) if ((i = decode_reg_name (name)) >= 0)
if (reg_names[i][0] && ! strcmp (reg_names[i], name)) {
{ fixed_regs[i] = fixed;
fixed_regs[i] = fixed; call_used_regs[i] = call_used;
call_used_regs[i] = call_used; }
break; else
}
if (i == FIRST_PSEUDO_REGISTER)
{ {
warning ("unknown register name: %s", name); warning ("unknown register name: %s", name);
return;
} }
} }
......
...@@ -191,7 +191,8 @@ make_function_rtl (decl) ...@@ -191,7 +191,8 @@ make_function_rtl (decl)
/* Decode an `asm' spec for a declaration as a register name. /* Decode an `asm' spec for a declaration as a register name.
Return the register number, or -1 if nothing specified, Return the register number, or -1 if nothing specified,
or -2 if the name is not a register. */ or -2 if the name is not a register. Accept an exact spelling,
a decimal number, or an optional prefix of '%' or '#'. */
int int
decode_reg_name (asmspec) decode_reg_name (asmspec)
...@@ -218,7 +219,7 @@ decode_reg_name (asmspec) ...@@ -218,7 +219,7 @@ decode_reg_name (asmspec)
if (reg_names[i][0] && ! strcmp (asmspec, reg_names[i])) if (reg_names[i][0] && ! strcmp (asmspec, reg_names[i]))
return i; return i;
if (asmspec[0] == '%') if (asmspec[0] == '%' || asmspec[0] == '#')
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (reg_names[i][0] && ! strcmp (asmspec + 1, reg_names[i])) if (reg_names[i][0] && ! strcmp (asmspec + 1, reg_names[i]))
return i; return i;
...@@ -232,7 +233,7 @@ decode_reg_name (asmspec) ...@@ -232,7 +233,7 @@ decode_reg_name (asmspec)
if (! strcmp (asmspec, table[i].name)) if (! strcmp (asmspec, table[i].name))
return table[i].number; return table[i].number;
if (asmspec[0] == '%') if (asmspec[0] == '%' || asmspec[0] == '#')
for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
if (! strcmp (asmspec + 1, table[i].name)) if (! strcmp (asmspec + 1, table[i].name))
return table[i].number; return table[i].number;
...@@ -499,9 +500,9 @@ assemble_start_function (decl, fnname) ...@@ -499,9 +500,9 @@ assemble_start_function (decl, fnname)
#endif #endif
#ifdef DBX_DEBUGGING_INFO #ifdef DBX_DEBUGGING_INFO
/* Output SDB definition of the function. */ /* Output DBX definition of the function. */
if (write_symbols == DBX_DEBUG) if (write_symbols == DBX_DEBUG)
dbxout_begin_function (); dbxout_begin_function (decl);
#endif #endif
/* Make function name accessible from other files, if appropriate. */ /* Make function name accessible from other files, if appropriate. */
......
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