From 7c0fc5246b2cdaa6f12c8693732f05e440c125d0 Mon Sep 17 00:00:00 2001
From: "Maciej W. Rozycki" <macro@linux-mips.org>
Date: Sat, 19 Dec 2009 00:21:29 +0000
Subject: [PATCH] 	gas/ 	* config/tc-mips.c (s_mips_ent): Also set
 BSF_FUNCTION for 	".aent".

	gas/testsuite/
	* gas/mips/aent.d: New test.
	* gas/mips/aent.s: Source for the new test.
	* gas/mips/mips.exp: Run it.
---
 gas/ChangeLog                   |  5 +++++
 gas/config/tc-mips.c            |  4 ++--
 gas/testsuite/ChangeLog         |  6 ++++++
 gas/testsuite/gas/mips/aent.d   | 14 ++++++++++++++
 gas/testsuite/gas/mips/aent.s   | 19 +++++++++++++++++++
 gas/testsuite/gas/mips/mips.exp |  2 ++
 6 files changed, 48 insertions(+), 2 deletions(-)
 create mode 100644 gas/testsuite/gas/mips/aent.d
 create mode 100644 gas/testsuite/gas/mips/aent.s

diff --git a/gas/ChangeLog b/gas/ChangeLog
index c1adad57421..1bdb37e944f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-19  Maciej W. Rozycki  <macro@codesourcery.com>
+
+	* config/tc-mips.c (s_mips_ent): Also set BSF_FUNCTION for
+	".aent".
+
 2009-12-18  Steve Ellcey  <sje@cup.hp.com>
 
 	* config/tc-hppa.c: Change access to access_ctr.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index ff2ffc6f9a2..94128fee510 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -15047,8 +15047,6 @@ s_mips_ent (int aent)
 
       cur_proc_ptr->func_sym = symbolP;
 
-      symbol_get_bfdsym (symbolP)->flags |= BSF_FUNCTION;
-
       ++numprocs;
 
       if (debug_type == DEBUG_STABS)
@@ -15056,6 +15054,8 @@ s_mips_ent (int aent)
 				 S_GET_NAME (symbolP));
     }
 
+  symbol_get_bfdsym (symbolP)->flags |= BSF_FUNCTION;
+
   demand_empty_rest_of_line ();
 }
 
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index bad0ab934d7..e79289401b4 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-12-19  Maciej W. Rozycki  <macro@codesourcery.com>
+
+	* gas/mips/aent.d: New test.
+	* gas/mips/aent.s: Source for the new test.
+	* gas/mips/mips.exp: Run it.
+
 2009-12-17  Nick Clifton  <nickc@redhat.com>
 
 	PR binutils/10924
diff --git a/gas/testsuite/gas/mips/aent.d b/gas/testsuite/gas/mips/aent.d
new file mode 100644
index 00000000000..21d13d4277e
--- /dev/null
+++ b/gas/testsuite/gas/mips/aent.d
@@ -0,0 +1,14 @@
+#objdump: -dr --prefix-addresses
+#name: MIPS .aent directive
+#as: -32
+
+# Test the .aent directive retains function symbol type annotation.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <foo[^>]*> sllv	v0,a0,a2
+[0-9a-f]+ <foo[^>]*> srav	t0,t2,t4
+[0-9a-f]+ <bar[^>]*> sllv	v0,a0,a2
+[0-9a-f]+ <bar[^>]*> srav	t0,t2,t4
+	\.\.\.
diff --git a/gas/testsuite/gas/mips/aent.s b/gas/testsuite/gas/mips/aent.s
new file mode 100644
index 00000000000..4061fdacca3
--- /dev/null
+++ b/gas/testsuite/gas/mips/aent.s
@@ -0,0 +1,19 @@
+	.text
+
+	.globl	foo
+	.ent	foo
+foo:
+	sllv	$2, $4, $6
+	srav	$8, $10, $12
+
+	.globl	bar
+	.aent	bar
+bar:
+	sllv	$2, $4, $6
+	srav	$8, $10, $12
+
+	.end	foo
+	.size	foo, . - foo
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+	.space  8
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index b1adde0885c..14ce5ccd517 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -841,4 +841,6 @@ if { [istarget mips*-*-vxworks*] } {
     run_dump_test "mips32-sync"
 
     if $has_newabi { run_dump_test "cfi-n64-1" }
+
+    run_dump_test_arches "aent"		[mips_arch_list_matching mips1]
 }