diff --git a/gas/ChangeLog b/gas/ChangeLog index 9c5d0819886..ba51ee72d0b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -11,6 +11,9 @@ Wed Mar 16 17:11:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) Wed Mar 16 11:54:12 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + * config/tc-hppa.c (pa_callinfo): Accept "millicode" as an + argument to a .callinfo directive. Don't loop forever on errors. + * config/tc-hppa.c (pa_reg): Use pa_parse_number so that we can use pre-defined registers as arguments. diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 7539f036e9b..82af7a0f881 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -4323,9 +4323,20 @@ pa_callinfo (unused) *p = c; last_call_info->ci_unwind.descriptor.hpux_interrupt_marker = 1; } + /* Is this a millicode routine. "millicode" isn't in my + assembler manual, but my copy is old. The HP assembler + accepts it, and there's a place in the unwind descriptor + to drop the information, so we'll accept it too. */ + else if ((strncasecmp (name, "millicode", 9) == 0)) + { + p = input_line_pointer; + *p = c; + last_call_info->ci_unwind.descriptor.millicode = 1; + } else { as_bad ("Invalid .CALLINFO argument: %s", name); + *input_line_pointer = c; } if (!is_end_of_statement ()) input_line_pointer++; @@ -4478,7 +4489,7 @@ pa_equ (reg) if (label_symbol) { symbol = label_symbol->lss_label; - S_SET_VALUE (symbol, (unsigned int) get_absolute_expression ()); + S_SET_VALUE (symbol, pa_parse_number (&input_line_pointer, 0)); S_SET_SEGMENT (symbol, &bfd_abs_section); } else