+2004-10-25 Daniel Jacobowitz <dan@debian.org>
+
+ * Makefile.am: Run dep-am.
+ * aclocal.m4: Regenerate with automake 1.9.2.
+ * Makefile.in: Regenerate with automake 1.9.2.
+ * doc/Makefile.in: Likewise.
+
+ * config/tc-arm.c: Include "dw2gencfi.h".
+ (tc_arm_regname_to_dw2regnum, tc_arm_frame_initial_instructions):
+ New functions.
+ * config/tc-arm.h (TARGET_USE_CFIPOP, DWARF2_DEFAULT_RETURN_COLUMN)
+ (DWARF2_CIE_DATA_ALIGNMENT, tc_regname_to_dw2regnum)
+ (tc_cfi_frame_initial_instructions): Define.
+ (tc_arm_regname_to_dw2regnum, tc_arm_frame_initial_instructions):
+ Add prototypes.
+
2004-10-21 Tomer Levi <Tomer.Levi@nsc.com>
* config/tc-crx.c (assemble_insn): Check unsigned immediate
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-arm.h \
$(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
$(INCDIR)/opcode/arm.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h \
- dwarf2dbg.h
+ dwarf2dbg.h dw2gencfi.h $(INCDIR)/elf/dwarf2.h
DEPTC_avr_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \
$(srcdir)/config/tc-avr.h $(INCDIR)/coff/internal.h \
$(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h \
-# Makefile.in generated by automake 1.9.1 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-arm.h \
$(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
$(INCDIR)/opcode/arm.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h \
- dwarf2dbg.h
+ dwarf2dbg.h dw2gencfi.h $(INCDIR)/elf/dwarf2.h
DEPTC_avr_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \
$(srcdir)/config/tc-avr.h $(INCDIR)/coff/internal.h \
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
- -rm -f m68k-parse.c
-rm -f itbl-lex.c
-rm -f itbl-parse.c
+ -rm -f m68k-parse.c
clean: clean-recursive
clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
-# generated automatically by aclocal 1.9.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.2 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
# Free Software Foundation, Inc.
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.1])])
+ [AM_AUTOMAKE_VERSION([1.9.2])])
# AM_AUX_DIR_EXPAND
#ifdef OBJ_ELF
#include "elf/arm.h"
#include "dwarf2dbg.h"
+#include "dw2gencfi.h"
#endif
/* XXX Set this to 1 after the next binutils release. */
fragP->tc_frag_data = thumb_mode;
}
+#ifdef OBJ_ELF
+
+/* Convert REGNAME to a DWARF-2 register number. */
+
+int
+tc_arm_regname_to_dw2regnum (const char *regname)
+{
+ unsigned int i;
+
+ for (i = 0; rn_table[i].name; i++)
+ if (streq (regname, rn_table[i].name))
+ return rn_table[i].number;
+
+ return -1;
+}
+
+/* Initialize the DWARF-2 unwind information for this procedure. */
+
+void
+tc_arm_frame_initial_instructions (void)
+{
+ cfi_add_CFA_def_cfa (REG_SP, 0);
+}
+#endif
+
/* This table describes all the machine specific pseudo-ops the assembler
has to support. The fields are:
pseudo-op name without dot
MAP_THUMB
};
+/* We want .cfi_* pseudo-ops for generating unwind info. */
+#define TARGET_USE_CFIPOP 1
+
+/* The lr register is r14. */
+#define DWARF2_DEFAULT_RETURN_COLUMN 14
+
+/* Registers are generally saved at negative offsets to the CFA. */
+#define DWARF2_CIE_DATA_ALIGNMENT -4
+
+/* CFI hooks. */
+#define tc_regname_to_dw2regnum tc_arm_regname_to_dw2regnum
+#define tc_cfi_frame_initial_instructions tc_arm_frame_initial_instructions
+
#else /* Not OBJ_ELF. */
#define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_"
#endif
extern void arm_handle_align (struct frag *);
extern bfd_boolean arm_fix_adjustable (struct fix *);
extern int arm_elf_section_type (const char *, size_t);
-
+extern int tc_arm_regname_to_dw2regnum (const char *regname);
+extern void tc_arm_frame_initial_instructions (void);
-# Makefile.in generated by automake 1.9.1 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2004-10-23 Daniel Jacobowitz <dan@debian.org>
+
+ * gas/cfi/cfi-arm-1.d, gas/cfi/cfi-arm-1.s: New files.
+ * gas/cfi/cfi.exp: Run cfi-arm-1 test.
+
2004-10-21 Tomer Levi <Tomer.Levi@nsc.com>
* gas/crx/cop_insn.s: Reverse operands order in store co-processor
--- /dev/null
+#readelf: -wf
+#name: CFI on ARM
+
+The section .eh_frame contains:
+
+00000000 00000010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 2
+ Data alignment factor: -4
+ Return address column: 14
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r13 ofs 0
+
+00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000018
+ DW_CFA_advance_loc: 4 to 00000004
+ DW_CFA_def_cfa: r12 ofs 0
+ DW_CFA_advance_loc: 4 to 00000008
+ DW_CFA_def_cfa: r13 ofs 16
+ DW_CFA_advance_loc: 4 to 0000000c
+ DW_CFA_def_cfa_offset: 32
+ DW_CFA_offset: r11 at cfa-32
+ DW_CFA_offset: r14 at cfa-24
+ DW_CFA_advance_loc: 4 to 00000010
+ DW_CFA_def_cfa: r11 ofs 16
+
--- /dev/null
+#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
+
+ .file "a.c"
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ mov ip, sp
+ .cfi_def_cfa ip, 0
+ stmfd sp!, {r0, r1, r2, r3}
+ .cfi_def_cfa sp, 16
+ stmfd sp!, {fp, ip, lr, pc}
+ .cfi_adjust_cfa_offset 16
+ .cfi_rel_offset r11, 0
+ .cfi_rel_offset lr, 8
+ sub fp, ip, #20
+ .cfi_def_cfa fp, 16
+ nop
+ ldmea fp, {fp, sp, pc}
+ .cfi_endproc
+ .size foo, .-foo
run_dump_test "cfi-sh-1"
}
+} elseif { [istarget "arm*-*"] || [istarget "xscale*-*"] } then {
+ run_dump_test "cfi-arm-1"
+
} else {
return
}