dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL prologue insn, only the first elt is significant.
* dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL prologue insn, only the first elt is significant. (output_call_frame_info): For exception handling, always use 4-byte fields as specified by the dwarf2 spec. Don't skip trivial FDEs. From-SVN: r15154
This commit is contained in:
parent
0c82f6bfae
commit
267c09ab53
@ -13,6 +13,14 @@ Sun Sep 7 18:44:50 1997 Jim Wilson <wilson@cygnus.com>
|
||||
* m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881.
|
||||
For 68303, 68332, cpu32, subtract MASK_68040_ONLY.
|
||||
|
||||
Sun Sep 7 18:30:46 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL
|
||||
prologue insn, only the first elt is significant.
|
||||
(output_call_frame_info): For exception handling, always use 4-byte
|
||||
fields as specified by the dwarf2 spec.
|
||||
Don't skip trivial FDEs.
|
||||
|
||||
Sun Sep 7 14:19:39 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
@ -860,6 +860,10 @@ dwarf2out_frame_debug (insn)
|
||||
label = dwarf2out_cfi_label ();
|
||||
|
||||
insn = PATTERN (insn);
|
||||
/* Assume that in a PARALLEL prologue insn, only the first elt is
|
||||
significant. Currently this is true. */
|
||||
if (GET_CODE (insn) == PARALLEL)
|
||||
insn = XVECEXP (insn, 0, 0);
|
||||
assert (GET_CODE (insn) == SET);
|
||||
|
||||
src = SET_SRC (insn);
|
||||
@ -1239,6 +1243,9 @@ output_call_frame_info (for_eh)
|
||||
/* Output the CIE. */
|
||||
ASM_GENERATE_INTERNAL_LABEL (l1, CIE_AFTER_SIZE_LABEL, for_eh);
|
||||
ASM_GENERATE_INTERNAL_LABEL (l2, CIE_END_LABEL, for_eh);
|
||||
if (for_eh)
|
||||
ASM_OUTPUT_DWARF_DELTA4 (asm_out_file, l2, l1);
|
||||
else
|
||||
ASM_OUTPUT_DWARF_DELTA (asm_out_file, l2, l1);
|
||||
if (flag_verbose_asm)
|
||||
fprintf (asm_out_file, "\t%s Length of Common Information Entry",
|
||||
@ -1252,7 +1259,7 @@ output_call_frame_info (for_eh)
|
||||
fprintf (asm_out_file, "\t%s CIE Identifier Tag", ASM_COMMENT_START);
|
||||
|
||||
fputc ('\n', asm_out_file);
|
||||
if (DWARF_OFFSET_SIZE == 8)
|
||||
if (for_eh ? PTR_SIZE == 8 : DWARF_OFFSET_SIZE == 8)
|
||||
{
|
||||
ASM_OUTPUT_DWARF_DATA4 (asm_out_file, DW_CIE_ID);
|
||||
fputc ('\n', asm_out_file);
|
||||
@ -1315,11 +1322,12 @@ output_call_frame_info (for_eh)
|
||||
for (i = 0; i < fde_table_in_use; ++i)
|
||||
{
|
||||
fde = &fde_table[i];
|
||||
if (fde->dw_fde_cfi == NULL)
|
||||
continue;
|
||||
|
||||
ASM_GENERATE_INTERNAL_LABEL (l1, FDE_AFTER_SIZE_LABEL, for_eh + i*2);
|
||||
ASM_GENERATE_INTERNAL_LABEL (l2, FDE_END_LABEL, for_eh + i*2);
|
||||
if (for_eh)
|
||||
ASM_OUTPUT_DWARF_DELTA4 (asm_out_file, l2, l1);
|
||||
else
|
||||
ASM_OUTPUT_DWARF_DELTA (asm_out_file, l2, l1);
|
||||
if (flag_verbose_asm)
|
||||
fprintf (asm_out_file, "\t%s FDE Length", ASM_COMMENT_START);
|
||||
@ -1380,7 +1388,7 @@ output_call_frame_info (for_eh)
|
||||
if (for_eh)
|
||||
{
|
||||
/* Emit terminating zero for table. */
|
||||
ASM_OUTPUT_DWARF_DATA (asm_out_file, 0);
|
||||
ASM_OUTPUT_DWARF_DATA4 (asm_out_file, 0);
|
||||
fputc ('\n', asm_out_file);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user