From 3c1a78a44bc61a8991c3b4fe7e5ce6ad1844bbf2 Mon Sep 17 00:00:00 2001
From: Nick Clifton <nickc@redhat.com>
Date: Thu, 3 Mar 2005 16:59:20 +0000
Subject: [PATCH] * gas/sh/basic.exp: Add an sh-hms version of the pcrel test.
 * gas/sh/pcrel-hms.d: New file.  Adjusted form of pcrel-coff.d for the sh-hms
   target. * gas/sh/arch/arch.exp: Expect the same failures for sh-hms port as
 for the   sh-coff port.

---
 gas/testsuite/ChangeLog            |  6 ++++++
 gas/testsuite/gas/macros/strings.d |  1 -
 gas/testsuite/gas/sh/arch/arch.exp |  2 +-
 gas/testsuite/gas/sh/basic.exp     |  2 ++
 gas/testsuite/gas/sh/pcrel-hms.d   | 29 +++++++++++++++++++++++++++++
 5 files changed, 38 insertions(+), 2 deletions(-)
 create mode 100644 gas/testsuite/gas/sh/pcrel-hms.d

diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index b711098402c..228e5419761 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -4,6 +4,12 @@
 
 2005-03-03  Nick Clifton  <nickc@redhat.com>
 
+	* gas/sh/basic.exp: Add an sh-hms version of the pcrel test.
+	* gas/sh/pcrel-hms.d: New file.  Adjusted form of pcrel-coff.d for
+	the sh-hms target.
+	* gas/sh/arch/arch.exp: Expect the same failures for sh-hms port
+	as for the sh-coff port.
+
 	* gas/macros/macros.exp (run_list_test): Also expect the msp430
 	port to fail the strings test because it defines
 	ONLY_STANDARD_ESCAPES.
diff --git a/gas/testsuite/gas/macros/strings.d b/gas/testsuite/gas/macros/strings.d
index 4fabca2212d..f06263fd9e2 100644
--- a/gas/testsuite/gas/macros/strings.d
+++ b/gas/testsuite/gas/macros/strings.d
@@ -1,6 +1,5 @@
 #objdump: -s -j .data
 #name: strings
-
 .*: .*
 
 Contents of section .data:
diff --git a/gas/testsuite/gas/sh/arch/arch.exp b/gas/testsuite/gas/sh/arch/arch.exp
index 0d9a796a671..ee64a14d19a 100644
--- a/gas/testsuite/gas/sh/arch/arch.exp
+++ b/gas/testsuite/gas/sh/arch/arch.exp
@@ -503,7 +503,7 @@ foreach arch [array names insns_valid] {
     if {$errormessages == $expected} then {
 	pass "$expected insns should not assemble on $arch"
     } else {
-	if {[istarget sh*-*-coff] && [string match {*dsp} $arch]} {
+	if {([istarget sh*-*-coff] || [istarget sh*-hms]) && [string match {*dsp} $arch]} {
 	    xfail "$expected insns should not assemble on $arch ($errormessages did not)"
 	} else {
 	    fail "$expected insns should not assemble on $arch ($errormessages did not)"
diff --git a/gas/testsuite/gas/sh/basic.exp b/gas/testsuite/gas/sh/basic.exp
index 554feaa9a59..b3580177534 100644
--- a/gas/testsuite/gas/sh/basic.exp
+++ b/gas/testsuite/gas/sh/basic.exp
@@ -131,6 +131,8 @@ if [istarget sh*-*-*] then {
     # dumped as sh4.
     if {[istarget sh*-*coff] || [istarget sh*-pe*] || [istarget sh*-rtems]} then {
 	run_dump_test "pcrel-coff"
+    } elseif {[istarget sh*-hms] } {
+	run_dump_test "pcrel-hms"
     } elseif {![istarget sh64*-*-*] && ![istarget sh5*-*-*] } {
 	# Test DSP instructions
 	run_dump_test "dsp"
diff --git a/gas/testsuite/gas/sh/pcrel-hms.d b/gas/testsuite/gas/sh/pcrel-hms.d
new file mode 100644
index 00000000000..12df6677193
--- /dev/null
+++ b/gas/testsuite/gas/sh/pcrel-hms.d
@@ -0,0 +1,29 @@
+#as: -big
+#source: pcrel.s
+#objdump: -d -EB
+#name: PC-relative loads
+#stderr: pcrel.l
+
+.*:     file format .*sh.*
+
+Disassembly of section .text:
+
+00000000 <code>:
+   0:	d0 04       	mov\.l	14 <litpool>,r0	! 0xffffffec
+   2:	d1 05       	mov\.l	18 <litpool\+0x4>,r1	! 0x90009
+   4:	d1 03       	mov\.l	14 <litpool>,r1	! 0xffffffec
+   6:	d1 03       	mov\.l	14 <litpool>,r1	! 0xffffffec
+   8:	c7 02       	mova	14 <litpool>,r0
+   a:	61 02       	mov\.l	@r0,r1
+   c:	d1 01       	mov\.l	14 <litpool>,r1	! 0xffffffec
+   e:	01 03       	bsrf	r1
+  10:	00 09       	nop	
+  12:	00 09       	nop	
+
+00000014 <litpool>:
+  14:	ff ff       	\.word 0xffff
+  16:	ff ec       	fmov	fr14,fr15
+  18:	00 09       	nop	
+  1a:	00 09       	nop	
+  1c:	00 09       	nop	
+  1e:	00 09       	nop