From 66b4202f3069768b4a1c202422444f6f524b5838 Mon Sep 17 00:00:00 2001
From: Tristan Gingold <gingold@adacore.com>
Date: Tue, 27 Oct 2009 15:39:27 +0000
Subject: [PATCH] 2009-10-27  Tristan Gingold  <gingold@adacore.com>

	* config/tc-avr.c (md_pseudo_table): Add dwarf2 debug pseudo.
	* config/tc-avr.h (DWARF2_LINE_MIN_INSN_LENGTH): Define.
	(DWARF2_ADDR_SIZE): Define.
---
 gas/ChangeLog       | 6 ++++++
 gas/config/tc-avr.c | 3 +++
 gas/config/tc-avr.h | 6 ++++++
 3 files changed, 15 insertions(+)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5cb302a7247..62c8f8f2cf7 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2009-10-27  Tristan Gingold  <gingold@adacore.com>
+
+	* config/tc-avr.c (md_pseudo_table): Add dwarf2 debug pseudo.
+	* config/tc-avr.h (DWARF2_LINE_MIN_INSN_LENGTH): Define.
+	(DWARF2_ADDR_SIZE): Define.
+
 2009-10-27  Alan Modra  <amodra@bigpond.net.au>
 
 	PR gas/10850
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index 9d14f6418ea..81a34cb7ab3 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -241,6 +241,9 @@ static void avr_set_arch (int);
 const pseudo_typeS md_pseudo_table[] =
 {
   {"arch", avr_set_arch,	0},
+  {"file", (void (*) (int)) dwarf2_directive_file, 0},
+  {"loc", dwarf2_directive_loc, 0},
+  {"loc_mark_labels", dwarf2_directive_loc_mark_labels, 0},
   { NULL,	NULL,		0}
 };
 
diff --git a/gas/config/tc-avr.h b/gas/config/tc-avr.h
index f68bbbd508a..b976d5a89bf 100644
--- a/gas/config/tc-avr.h
+++ b/gas/config/tc-avr.h
@@ -147,3 +147,9 @@ extern long md_pcrel_from_section (struct fix *, segT);
 
 /* This target is buggy, and sets fix size too large.  */
 #define TC_FX_SIZE_SLACK(FIX) 2
+
+/* AVR instructions are 2 or 4 bytes long.  */
+#define DWARF2_LINE_MIN_INSN_LENGTH 	2
+
+/* 32 bits pseudo-addresses are used on AVR.  */
+#define DWARF2_ADDR_SIZE(bfd) 4