* tc-hppa.c: Add %dp and %rp as synonyms for %r27 and %r2 in the

predefined register table.
	(pa_parse_number): Handle %rp in common register shortcut code.
	Consistently set return value to -1 for an error.  Clean up error
	messages and only print them when "print_errors" is true.  Handle
	empty string case like the HP assembler -- assume a value of
	zero.
This commit is contained in:
Jeff Law 1993-11-03 06:21:14 +00:00
parent 9ac55becf6
commit d6e524f308
2 changed files with 37 additions and 10 deletions

View File

@ -6,6 +6,14 @@ Tue Nov 2 18:04:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Tue Nov 2 15:07:07 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
* tc-hppa.c: Add %dp and %rp as synonyms for %r27 and %r2 in the
predefined register table.
(pa_parse_number): Handle %rp in common register shortcut code.
Consistently set return value to -1 for an error. Clean up error
messages and only print them when "print_errors" is true. Handle
empty string case like the HP assembler -- assume a value of
zero.
* config/ho-hpux.h: Do not include ho-sysv.h. Instead include
standard hpux include files to pick up various function decls.

View File

@ -832,6 +832,8 @@ static int print_errors = 1;
%r26 - %r23 have %arg0 - %arg3 as synonyms
%r28 - %r29 have %ret0 - %ret1 as synonyms
%r30 has %sp as a synonym
%r27 has %dp as a synonym
%r2 has %rp as a synonym
Almost every control register has a synonym; they are not listed
here for brevity.
@ -869,6 +871,7 @@ static const struct pd_reg pre_defined_registers[] =
{"%cr31", 31},
{"%cr8", 8},
{"%cr9", 9},
{"%dp", 27},
{"%eiem", 15},
{"%eirr", 23},
{"%fr0", 0},
@ -1028,6 +1031,7 @@ static const struct pd_reg pre_defined_registers[] =
{"%rctr", 0},
{"%ret0", 28},
{"%ret1", 29},
{"%rp", 2},
{"%sar", 11},
{"%sp", 30},
{"%sr0", 0},
@ -3395,8 +3399,17 @@ pa_parse_number (s, result)
num = *p - '0' + 28;
p++;
}
else if (*p == 'p')
{
num = 2;
p++;
}
else if (!isdigit (*p))
as_bad ("Undefined register: '%s'. ASSUMING 0", name);
{
if (print_errors)
as_bad ("Undefined register: '%s'.", name);
num = -1;
}
else
{
do
@ -3419,9 +3432,8 @@ pa_parse_number (s, result)
else
{
if (print_errors)
as_bad ("Undefined register: '%s'. ASSUMING 0", name);
else
num = -1;
as_bad ("Undefined register: '%s'.", name);
num = -1;
}
*p = c;
}
@ -3458,17 +3470,24 @@ pa_parse_number (s, result)
else
{
if (print_errors)
as_bad ("Non-absolute constant: '%s'. ASSUMING 0", name);
else
num = -1;
as_bad ("Non-absolute symbol: '%s'.", name);
num = -1;
}
}
else
{
if (print_errors)
as_bad ("Undefined absolute constant: '%s'. ASSUMING 0", name);
/* There is where we'd come for an undefined symbol
or for an empty string. For an empty string we
will return zero. That's a concession made for
compatability with the braindamaged HP assemblers. */
if (*p == 0)
num = 0;
else
num = -1;
{
if (print_errors)
as_bad ("Undefined absolute constant: '%s'.", name);
num = -1;
}
}
*p = c;