The restoring of the line pointer needs to happen in more cases.
While there also adjust a slightly misleading comment.
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
if (is_whitespace (c))
c = *++input_line_pointer;
if (c != '(')
- {
- input_line_pointer = ilp_save;
- e->type = CFI_ESC_byte;
- }
+ e->type = CFI_ESC_byte;
}
+ if (e->type == CFI_ESC_byte)
+ input_line_pointer = ilp_save;
if (e->type == CFI_ESC_sleb128 || e->type == CFI_ESC_uleb128)
{
}
else
{
- /* We may still be at the opening parenthesis. Leave it to expression()
+ /* We may still be at an opening parenthesis. Leave it to expression()
to parse it and find the matching closing one. */
e->reloc = do_parse_cons_expression (&e->exp, e->type);
}
[ ]*[0-9]*[ ]+(4[048]00 ?0000|0000 ?004[048]) *
[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
[ ]*[0-9]*[ ]+/\* DW_CFA_register reg127, reg129. \*/
-[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.09 ?7F81[ ]+\.cfi_escape 0x09, uleb128\(127\), uleb128\(129\)
+[ ]*[0-9]*[ ]+\.equiv DW_CFA_register, 0x09
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.09 ?7F81[ ]+\.cfi_escape DW_CFA_register, uleb128\(127\), uleb128\(129\)
[ ]*[0-9]*[ ]+01
[ ]*[0-9]*[ ]+/\* DW_CFA_val_expression reg250, ... \*/
[ ]*[0-9]*[ ]+[0-9a-f]{4} 16FA ?01[ ]+\.cfi_escape 0x16, uleb128\(250\)
.cfi_startproc
.nop
/* DW_CFA_register reg127, reg129. */
- .cfi_escape 0x09, uleb128(127), uleb128(129)
+ .equiv DW_CFA_register, 0x09
+ .cfi_escape DW_CFA_register, uleb128(127), uleb128(129)
/* DW_CFA_val_expression reg250, ... */
.cfi_escape 0x16, uleb128(250)
/* ... <len>. */