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.
|
* m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881.
|
||||||
For 68303, 68332, cpu32, subtract MASK_68040_ONLY.
|
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)
|
Sun Sep 7 14:19:39 1997 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* version.c: Bump for snapshot.
|
* version.c: Bump for snapshot.
|
||||||
|
@ -860,6 +860,10 @@ dwarf2out_frame_debug (insn)
|
|||||||
label = dwarf2out_cfi_label ();
|
label = dwarf2out_cfi_label ();
|
||||||
|
|
||||||
insn = PATTERN (insn);
|
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);
|
assert (GET_CODE (insn) == SET);
|
||||||
|
|
||||||
src = SET_SRC (insn);
|
src = SET_SRC (insn);
|
||||||
@ -1239,7 +1243,10 @@ output_call_frame_info (for_eh)
|
|||||||
/* Output the CIE. */
|
/* Output the CIE. */
|
||||||
ASM_GENERATE_INTERNAL_LABEL (l1, CIE_AFTER_SIZE_LABEL, for_eh);
|
ASM_GENERATE_INTERNAL_LABEL (l1, CIE_AFTER_SIZE_LABEL, for_eh);
|
||||||
ASM_GENERATE_INTERNAL_LABEL (l2, CIE_END_LABEL, for_eh);
|
ASM_GENERATE_INTERNAL_LABEL (l2, CIE_END_LABEL, for_eh);
|
||||||
ASM_OUTPUT_DWARF_DELTA (asm_out_file, l2, l1);
|
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)
|
if (flag_verbose_asm)
|
||||||
fprintf (asm_out_file, "\t%s Length of Common Information Entry",
|
fprintf (asm_out_file, "\t%s Length of Common Information Entry",
|
||||||
ASM_COMMENT_START);
|
ASM_COMMENT_START);
|
||||||
@ -1252,7 +1259,7 @@ output_call_frame_info (for_eh)
|
|||||||
fprintf (asm_out_file, "\t%s CIE Identifier Tag", ASM_COMMENT_START);
|
fprintf (asm_out_file, "\t%s CIE Identifier Tag", ASM_COMMENT_START);
|
||||||
|
|
||||||
fputc ('\n', asm_out_file);
|
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);
|
ASM_OUTPUT_DWARF_DATA4 (asm_out_file, DW_CIE_ID);
|
||||||
fputc ('\n', asm_out_file);
|
fputc ('\n', asm_out_file);
|
||||||
@ -1315,12 +1322,13 @@ output_call_frame_info (for_eh)
|
|||||||
for (i = 0; i < fde_table_in_use; ++i)
|
for (i = 0; i < fde_table_in_use; ++i)
|
||||||
{
|
{
|
||||||
fde = &fde_table[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 (l1, FDE_AFTER_SIZE_LABEL, for_eh + i*2);
|
||||||
ASM_GENERATE_INTERNAL_LABEL (l2, FDE_END_LABEL, for_eh + i*2);
|
ASM_GENERATE_INTERNAL_LABEL (l2, FDE_END_LABEL, for_eh + i*2);
|
||||||
ASM_OUTPUT_DWARF_DELTA (asm_out_file, l2, l1);
|
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)
|
if (flag_verbose_asm)
|
||||||
fprintf (asm_out_file, "\t%s FDE Length", ASM_COMMENT_START);
|
fprintf (asm_out_file, "\t%s FDE Length", ASM_COMMENT_START);
|
||||||
fputc ('\n', asm_out_file);
|
fputc ('\n', asm_out_file);
|
||||||
@ -1380,7 +1388,7 @@ output_call_frame_info (for_eh)
|
|||||||
if (for_eh)
|
if (for_eh)
|
||||||
{
|
{
|
||||||
/* Emit terminating zero for table. */
|
/* 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);
|
fputc ('\n', asm_out_file);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user