* 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.
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);
/* Output the CIE. */
ASM_GENERATE_INTERNAL_LABEL (l1, CIE_AFTER_SIZE_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)
fprintf (asm_out_file, "\t%s Length of Common Information Entry",
ASM_COMMENT_START);
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);
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);
- 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)
fprintf (asm_out_file, "\t%s FDE Length", ASM_COMMENT_START);
fputc ('\n', asm_out_file);
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