This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sh64-elf (SH5) port: directory gas/testsuite


On Feb  3, 2002, Alexandre Oliva <aoliva@redhat.com> wrote:

> I'm extremely pleased to contribute the SH5 port of binutils,
> developed mostly by Hans-Peter Nilsson, with some contributions by DJ
> Delorie and Ben Elliston, later extended to support PIC by myself.

Index: gas/testsuite/ChangeLog
from  Alexandre Oliva  <aoliva@redhat.com>

	Contribute sh64-elf.
	2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
	* gas/sh/sh64/syntax-1.s: Remove `-4' from @(expr-4,pc).
	2002-01-28  Alexandre Oliva  <aoliva@redhat.com>
	* gas/sh/sh64/crange1-1.d: Formatting changes to match the current
	output of objdump.
	* gas/sh/sh64/crange1-2.d: Likewise.
	* gas/sh/sh64/crange2-2.d: Likewise.
	* gas/sh/sh64/crange3-1.d: Likewise.
	* gas/sh/sh64/crange4-1.d: Likewise.
	* gas/sh/sh64/datal-2.d: Likewise.
	* gas/sh/sh64/datal32-1.d: Likewise.
	* gas/sh/sh64/datal32-3.d: Likewise.
	* gas/sh/sh64/localcom-1.d: Likewise.
	* gas/sh/sh64/mix-1.d: Likewise.
	* gas/sh/sh64/pt32-1.d: Likewise.
	* gas/sh/sh64/rel32-1.d: Likewise.
	* gas/sh/sh64/rel32-2.d: Likewise.
	* gas/sh/sh64/rel32-3.d: Likewise.
	* gas/sh/sh64/rel32-4.d: Likewise.
	* gas/sh/sh64/rel32-5.d: Likewise.
	* gas/sh/sh64/ua32-1.d: Likewise.
	2001-03-14  DJ Delorie  <dj@redhat.com>
	* gas/sh/sh64/endian-1.d: New test - Little Endianness.
	* gas/sh/sh64/endian-1.s: New test - Little Endianness.
	* gas/sh/sh64/endian-2.d: New test - Big Endianness.
	* gas/sh/sh64/endian-2.s: New test - Big Endianness.
	2001-03-12  DJ Delorie  <dj@redhat.com>
	* gas/sh/sh64/syntax-1.d: New test - basic syntax.
	* gas/sh/sh64/syntax-1.s: New test - basic syntax.
	* gas/sh/sh64/syntax-2.d: New test - basic syntax, pseudos.
	* gas/sh/sh64/syntax-2.s: New test - basic syntax, pseudos.
	2001-03-06  DJ Delorie  <dj@redhat.com>
	* gas/sh/sh64/lineno.d: New, test dwarf2 line numbers vs macros.
	* gas/sh/sh64/lineno.s: Ditto.
	2001-01-14  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/err-dsp.s: New test.
	2001-01-13  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/err-abi-64.s, gas/sh/sh64/err-abi-32.s,
	gas/sh/sh64/abi-64.s, gas/sh/sh64/abi-64.d, gas/sh/sh64/abi-32.s,
	gas/sh/sh64/abi-32.d, gas/sh/sh64/crange3.s,
	gas/sh/sh64/crange3-1.d, gas/sh/sh64/crange4.s,
	gas/sh/sh64/crange4-1.d, gas/sh/sh64/crange5.s,
	gas/sh/sh64/crange5-1.d: New tests.
	2001-01-07  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/relax-1.s, gas/sh/sh64/relax-1.d: New test.
	* gas/sh/sh64/err-pt-1.s: New test.
	* gas/sh/sh64/relax-2.s, gas/sh/sh64/relax-2.d: New test.
	* gas/sh/sh64/localcom-1.s, gas/sh/sh64/localcom-1.d: New test.
	* gas/sh/sh64/movi-3.s, gas/sh/sh64/movi-3.d: New test.
	* gas/sh/sh64/relax-3.s, gas/sh/sh64/relax-3.d: New test.
	2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/case-noexp-1.d: Adjust to changed GAS output for
	check-PTA/PTB / perhaps-change-to-PTB bit in target field.
	* gas/sh/sh64/case-noexp-1.d: Ditto.
	* gas/sh/sh64/mix-noexp-1.d: Ditto.
	* gas/sh/sh64/pt32-noexp-2.d: Ditto.
	* gas/sh/sh64/pt64-noexp-2.d: Ditto.
	* gas/sh/sh64/ptc32-noexp-1.d: Ditto.
	* gas/sh/sh64/ptc64-noexp-1.d: Ditto.
	* gas/sh/sh64/ptext32-noexp-1.d: Ditto.
	* gas/sh/sh64/ptext64-noexp-1.d: Ditto.
	2000-12-31  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/shift64-3.d: Fix typo.
	* gas/sh/sh64/shift64-noexp-3.d, gas/sh/sh64/shift32-noexp-3.d,
	gas/sh/sh64/ptext64-noexp-1.d, gas/sh/sh64/ptext64-32-1.d,
	gas/sh/sh64/ptext32-noexp-1.d, gas/sh/sh64/ptc64-noexp-1.d,
	gas/sh/sh64/ptc64-32-1.d, gas/sh/sh64/ptc32-noexp-1.d,
	gas/sh/sh64/pt64-noexp-2.d, gas/sh/sh64/pt64-32-2.d,
	gas/sh/sh64/pt64-32-1.d, gas/sh/sh64/pt32-noexp-2.d,
	gas/sh/sh64/pt-noexp-1.d, gas/sh/sh64/movi64-noexp-2.d,
	gas/sh/sh64/movi32-noexp-2.d, gas/sh/sh64/mix-noexp-1.d,
	gas/sh/sh64/err-ptb-2.s, gas/sh/sh64/err-ptb-1.s,
	gas/sh/sh64/err-pt32-cmd3.s, gas/sh/sh64/err-pt32-cmd2.s,
	gas/sh/sh64/err-pt32-cmd1.s, gas/sh/sh64/err-noexp-cmd1.s,
	gas/sh/sh64/err-movi-noexp-1.s, gas/sh/sh64/crange2.s,
	gas/sh/sh64/crange2-noexp-1.d, gas/sh/sh64/crange2-2.d,
	gas/sh/sh64/crange2-1.d, gas/sh/sh64/case-noexp-1.d: New tests.
	2000-12-18  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/err-4.s: Use option -no-mix to see errors.  Adjust
	for errors not being emitted at the .mode directives anymore.
	* gas/sh/sh64/crange1.s, gas/sh/sh64/crange1-2.d,
	gas/sh/sh64/crange1-1.d: New tests for .cranges section.
	2000-12-12  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/err-3.s: New test.
	* gas/sh/sh64/immexpr1.s, gas/sh/sh64/immexpr32-1.d,
	gas/sh/sh64/immexpr64-1.d: New tests.
	* gas/sh/sh64/immexpr2.s, gas/sh/sh64/immexpr32-2.d,
	gas/sh/sh64/immexpr64-2.d: New tests.
	2000-12-11  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/rel-1.s, gas/sh/sh64/rel-2.s, gas/sh/sh64/rel-3.s,
	gas/sh/sh64/rel-4.s, gas/sh/sh64/rel-5.s, gas/sh/sh64/rel32-1.d,
	gas/sh/sh64/rel32-2.d, gas/sh/sh64/rel32-3.d,
	gas/sh/sh64/rel32-4.d, gas/sh/sh64/rel32-5.d,
	gas/sh/sh64/rel64-1.d, gas/sh/sh64/rel64-2.d,
	gas/sh/sh64/rel64-3.d, gas/sh/sh64/rel64-4.d,
	gas/sh/sh64/rel64-5.d: New tests.
	2000-12-07  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/case-1.d, gas/sh/sh64/mix-1.d, gas/sh/sh64/pt32-1.d,
	gas/sh/sh64/pt64-1.d, gas/sh/sh64/ptc32-1.d,
	gas/sh/sh64/ptc64-1.d, gas/sh/sh64/ptext32-1.d,
	gas/sh/sh64/ptext64-1.d: Correct offsets in PT/PTA/PTB expansion.
	2000-12-05  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/datal-3.s, gas/sh/sh64/datal32-3.d,
	gas/sh/sh64/datal64-3.d: New tests.
	2000-11-27  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/datal-1.s: Remove whitespace at end of line.
	* gas/sh/sh64/datal32-1.d, gas/sh/sh64/datal64-1.d,
	gas/sh/sh64/movi32-1.d, gas/sh/sh64/movi32-2.d,
	gas/sh/sh64/movi64-1.d, gas/sh/sh64/movi64-3.d: Correct register.
	* gas/sh/sh64/mix-1.s, gas/sh/sh64/mix-1.d, gas/sh/sh64/err-4.s:
	New tests.
	2000-11-26  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/macros/macros.exp: Import xfail sh*-*-* from net binutils.
	* gas/sh/sh64/case-1.d: Correct offsets in PT/PTA/PTB expansion.
	gas/sh/sh64/pt32-1.d, gas/sh/sh64/pt64-1.d: Ditto.
	gas/sh/sh64/ptc32-1.d, gas/sh/sh64/ptc64-1.d: Ditto.
	gas/sh/sh64/ptext32-1.d, gas/sh/sh64/ptext64-1.d: Ditto.
	2000-11-25  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64/ptc32-1.d, gas/sh/sh64/ptc64-1.d: Correct.
	* gas/sh/sh64/datal-1.s, gas/sh/sh64/datal32-1.d,
	gas/sh/sh64/datal64-1.d: New test.
	* gas/sh/sh64/datal-2.s, gas/sh/sh64/datal-2.d: New test.
	* gas/sh/sh64/creg-1.d, gas/sh/sh64/creg-1.s: New test.
	* gas/sh/sh64/creg-2.d, gas/sh/sh64/creg-2.s: New test.
	2000-11-24  Hans-Peter Nilsson  <hpn@cygnus.com>
	* gas/sh/sh64: New testsuite.

Index: gas/testsuite/gas/sh/sh64/abi-32.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/abi-32.d
diff -N gas/testsuite/gas/sh/sh64/abi-32.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/abi-32.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+#as: --abi=32
+#objdump: -dr
+#name: Assertion .abi 32.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
Index: gas/testsuite/gas/sh/sh64/abi-32.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/abi-32.s
diff -N gas/testsuite/gas/sh/sh64/abi-32.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/abi-32.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,7 @@
+! Check successful .abi assertion for 32-bit ABI.
+
+	.text
+	.abi 32
+	.mode SHmedia
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/abi-64.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/abi-64.d
diff -N gas/testsuite/gas/sh/sh64/abi-64.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/abi-64.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,9 @@
+#as: --abi=64
+#objdump: -dr
+#name: Assertion .abi 64.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/abi-64.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/abi-64.s
diff -N gas/testsuite/gas/sh/sh64/abi-64.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/abi-64.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,7 @@
+! Check successful .abi assertion for 64-bit ABI.
+
+	.text
+	.abi 64
+
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/basic-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/basic-1.d
diff -N gas/testsuite/gas/sh/sh64/basic-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/basic-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,234 @@
+#as: --isa=shmedia
+#objdump: -dr
+#name: Basic SHmedia instructions.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+[0]+ <start>:
+[ 	]+0:[ 	]+003966b0[ 	]+add	r3,r25,r43
+[ 	]+4:[ 	]+00d80be0[ 	]+add\.l	r13,r2,r62
+[ 	]+8:[ 	]+d2c7d210[ 	]+addi	r44,500,r33
+[ 	]+c:[ 	]+d55832b0[ 	]+addi\.l	r21,-500,r43
+[ 	]+10:[ 	]+033ca9e0[ 	]+addz\.l	r51,r42,r30
+[ 	]+14:[ 	]+e1347bf0[ 	]+alloco	r19,960
+[ 	]+18:[ 	]+048be4c0[ 	]+and	r8,r57,r12
+[ 	]+1c:[ 	]+070f8d20[ 	]+andc	r48,r35,r18
+[ 	]+20:[ 	]+d987f660[ 	]+andi	r24,509,r38
+[ 	]+24:[ 	]+65719620[ 	]+beq/l	r23,r37,tr2
+[ 	]+28:[ 	]+65716e40[ 	]+beq/l	r23,r27,tr4
+[ 	]+2c:[ 	]+6431bc60[ 	]+beq/u	r3,r47,tr6
+[ 	]+30:[ 	]+e4417a50[ 	]+beqi/l	r4,30,tr5
+[ 	]+34:[ 	]+e4418600[ 	]+beqi/l	r4,-31,tr0
+[ 	]+38:[ 	]+e761a420[ 	]+beqi/u	r54,-23,tr2
+[ 	]+3c:[ 	]+6403fe70[ 	]+bge/l	r0,r63,tr7
+[ 	]+40:[ 	]+64a31a40[ 	]+bge/l	r10,r6,tr4
+[ 	]+44:[ 	]+64b39010[ 	]+bge/u	r11,r36,tr1
+[ 	]+48:[ 	]+65ebae30[ 	]+bgeu/l	r30,r43,tr3
+[ 	]+4c:[ 	]+64ab6a50[ 	]+bgeu/l	r10,r26,tr5
+[ 	]+50:[ 	]+673b9020[ 	]+bgeu/u	r51,r36,tr2
+[ 	]+54:[ 	]+6617b270[ 	]+bgt/l	r33,r44,tr7
+[ 	]+58:[ 	]+6517fa40[ 	]+bgt/l	r17,r62,tr4
+[ 	]+5c:[ 	]+64f71810[ 	]+bgt/u	r15,r6,tr1
+[ 	]+60:[ 	]+662f6e60[ 	]+bgtu/l	r34,r27,tr6
+[ 	]+64:[ 	]+65cffa00[ 	]+bgtu/l	r28,r62,tr0
+[ 	]+68:[ 	]+652f6450[ 	]+bgtu/u	r18,r25,tr5
+[ 	]+6c:[ 	]+4411fe60[ 	]+blink	tr1,r38
+[ 	]+70:[ 	]+67e5be00[ 	]+bne/l	r62,r47,tr0
+[ 	]+74:[ 	]+65d55a10[ 	]+bne/l	r29,r22,tr1
+[ 	]+78:[ 	]+6675bc60[ 	]+bne/u	r39,r47,tr6
+[ 	]+7c:[ 	]+e4e5ce70[ 	]+bnei/l	r14,-13,tr7
+[ 	]+80:[ 	]+e5857e30[ 	]+bnei/l	r24,31,tr3
+[ 	]+84:[ 	]+e765a820[ 	]+bnei/u	r54,-22,tr2
+[ 	]+88:[ 	]+6ff5fff0[ 	]+brk	
+[ 	]+8c:[ 	]+015ffcc0[ 	]+byterev	r21,r12
+[ 	]+90:[ 	]+00a12d50[ 	]+cmpeq	r10,r11,r21
+[ 	]+94:[ 	]+01e37f30[ 	]+cmpgt	r30,r31,r51
+[ 	]+98:[ 	]+017786d0[ 	]+cmpgtu	r23,r33,r45
+[ 	]+9c:[ 	]+22010ec0[ 	]+cmveq	r32,r3,r44
+[ 	]+a0:[ 	]+20d5f040[ 	]+cmvne	r13,r60,r4
+[ 	]+a4:[ 	]+19615be0[ 	]+fabs\.d	dr22,dr62
+[ 	]+a8:[ 	]+1bb0ed90[ 	]+fabs\.s	fr59,fr25
+[ 	]+ac:[ 	]+3681f140[ 	]+fadd\.d	dr40,dr60,dr20
+[ 	]+b0:[ 	]+3690ed30[ 	]+fadd\.s	fr41,fr59,fr19
+[ 	]+b4:[ 	]+3049cb90[ 	]+fcmpeq\.d	dr4,dr50,r57
+[ 	]+b8:[ 	]+32f87910[ 	]+fcmpeq\.s	fr47,fr30,r17
+[ 	]+bc:[ 	]+32cfd140[ 	]+fcmpge\.d	dr44,dr52,r20
+[ 	]+c0:[ 	]+325e5e00[ 	]+fcmpge\.s	fr37,fr23,r32
+[ 	]+c4:[ 	]+314d7330[ 	]+fcmpgt\.d	dr20,dr28,r51
+[ 	]+c8:[ 	]+32fc5560[ 	]+fcmpgt\.s	fr47,fr21,r22
+[ 	]+cc:[ 	]+320beaf0[ 	]+fcmpun\.d	dr32,dr58,r47
+[ 	]+d0:[ 	]+315aa8c0[ 	]+fcmpun\.s	fr21,fr42,r12
+[ 	]+d4:[ 	]+3a87a150[ 	]+fcnv\.ds	dr40,fr21
+[ 	]+d8:[ 	]+3ab6ae00[ 	]+fcnv\.sd	fr43,dr32
+[ 	]+dc:[ 	]+3625e140[ 	]+fdiv\.d	dr34,dr56,dr20
+[ 	]+e0:[ 	]+34d46930[ 	]+fdiv\.s	fr13,fr26,fr19
+[ 	]+e4:[ 	]+1ff2fe70[ 	]+fgetscr	fr39
+[ 	]+e8:[ 	]+14062270[ 	]+fipr\.s	fv0,fv8,fr39
+[ 	]+ec:[ 	]+9df3eb00[ 	]+fld\.d	r31,2000,dr48
+[ 	]+f0:[ 	]+9b5a2660[ 	]+fld\.p	r53,-3000,fp38
+[ 	]+f4:[ 	]+9757f750[ 	]+fld\.s	r53,2036,fr53
+[ 	]+f8:[ 	]+1d79a820[ 	]+fldx\.d	r23,r42,dr2
+[ 	]+fc:[ 	]+1c2d5a00[ 	]+fldx\.p	r2,r22,fp32
+[ 	]+100:[ 	]+1db8e8c0[ 	]+fldx\.s	r27,r58,fr12
+[ 	]+104:[ 	]+385e15c0[ 	]+float\.ld	fr5,dr28
+[ 	]+108:[ 	]+3b7cde40[ 	]+float\.ls	fr55,fr36
+[ 	]+10c:[ 	]+3acdb100[ 	]+float\.qd	dr44,dr16
+[ 	]+110:[ 	]+39ef78b0[ 	]+float\.qs	dr30,fr11
+[ 	]+114:[ 	]+368e9440[ 	]+fmac\.s	fr40,fr37,fr4
+[ 	]+118:[ 	]+38812280[ 	]+fmov\.d	dr8,dr40
+[ 	]+11c:[ 	]+33a1ea20[ 	]+fmov\.dq	dr58,r34
+[ 	]+120:[ 	]+1d90ff40[ 	]+fmov\.ls	r25,fr52
+[ 	]+124:[ 	]+1ed1ff20[ 	]+fmov\.qd	r45,dr50
+[ 	]+128:[ 	]+38401370[ 	]+fmov\.s	fr4,fr55
+[ 	]+12c:[ 	]+30e038f0[ 	]+fmov\.sl	fr14,r15
+[ 	]+130:[ 	]+3587eaa0[ 	]+fmul\.d	dr24,dr58,dr42
+[ 	]+134:[ 	]+35b68220[ 	]+fmul\.s	fr27,fr32,fr34
+[ 	]+138:[ 	]+18230800[ 	]+fneg\.d	dr2,dr0
+[ 	]+13c:[ 	]+18020210[ 	]+fneg\.s	fr0,fr33
+[ 	]+140:[ 	]+32c2b3f0[ 	]+fputscr	fr44
+[ 	]+144:[ 	]+39e57ac0[ 	]+fsqrt\.d	dr30,dr44
+[ 	]+148:[ 	]+38340d70[ 	]+fsqrt\.s	fr3,fr23
+[ 	]+14c:[ 	]+bc37d020[ 	]+fst\.d	r3,4000,dr2
+[ 	]+150:[ 	]+bb682cc0[ 	]+fst\.p	r54,-4008,fp12
+[ 	]+154:[ 	]+b5282570[ 	]+fst\.s	r18,-2012,fr23
+[ 	]+158:[ 	]+3d29b8c0[ 	]+fstx\.d	r18,r46,dr12
+[ 	]+15c:[ 	]+3e6d6b40[ 	]+fstx\.p	r38,r26,fp52
+[ 	]+160:[ 	]+3c785da0[ 	]+fstx\.s	r7,r23,fr26
+[ 	]+164:[ 	]+3403b200[ 	]+fsub\.d	dr0,dr44,dr32
+[ 	]+168:[ 	]+3432f830[ 	]+fsub\.s	fr3,fr62,fr3
+[ 	]+16c:[ 	]+3a6b9b50[ 	]+ftrc\.dl	dr38,fr53
+[ 	]+170:[ 	]+3ba8eb10[ 	]+ftrc\.sl	fr58,fr49
+[ 	]+174:[ 	]+38e939a0[ 	]+ftrc\.dq	dr14,dr26
+[ 	]+178:[ 	]+3bcaf160[ 	]+ftrc\.sq	fr60,dr22
+[ 	]+17c:[ 	]+150e81c0[ 	]+ftrv\.s	mtrx16,fv32,fv28
+[ 	]+180:[ 	]+c05fd7e0[ 	]+getcfg	r5,-11,r62
+[ 	]+184:[ 	]+274ffd00[ 	]+getcon	cr52,r16
+[ 	]+188:[ 	]+4465fda0[ 	]+gettr	tr6,r26
+[ 	]+18c:[ 	]+e3058bf0[ 	]+icbi	r48,-960
+[ 	]+190:[ 	]+83200fe0[ 	]+ld\.b	r50,3,r62
+[ 	]+194:[ 	]+885da560[ 	]+ld\.l	r5,-604,r22
+[ 	]+198:[ 	]+8e3cdea0[ 	]+ld\.q	r35,-1608,r42
+[ 	]+19c:[ 	]+935cdc20[ 	]+ld\.ub	r53,-201,r2
+[ 	]+1a0:[ 	]+b17cdea0[ 	]+ld\.uw	r23,-402,r42
+[ 	]+1a4:[ 	]+86e25cb0[ 	]+ld\.w	r46,302,r11
+[ 	]+1a8:[ 	]+c0668a90[ 	]+ldhi\.l	r6,-30,r41
+[ 	]+1ac:[ 	]+c2477df0[ 	]+ldhi\.q	r36,31,r31
+[ 	]+1b0:[ 	]+c1325300[ 	]+ldlo\.l	r19,20,r48
+[ 	]+1b4:[ 	]+c09381d0[ 	]+ldlo\.q	r9,-32,r29
+[ 	]+1b8:[ 	]+40500ef0[ 	]+ldx\.b	r5,r3,r47
+[ 	]+1bc:[ 	]+4192ace0[ 	]+ldx\.l	r25,r43,r14
+[ 	]+1c0:[ 	]+40c3f290[ 	]+ldx\.q	r12,r60,r41
+[ 	]+1c4:[ 	]+40d40010[ 	]+ldx\.ub	r13,r0,r1
+[ 	]+1c8:[ 	]+40d50910[ 	]+ldx\.uw	r13,r2,r17
+[ 	]+1cc:[ 	]+40a15bc0[ 	]+ldx\.w	r10,r22,r60
+[ 	]+1d0:[ 	]+287afe10[ 	]+mabs\.l	r7,r33
+[ 	]+1d4:[ 	]+2a59fe20[ 	]+mabs\.w	r37,r34
+[ 	]+1d8:[ 	]+0a228070[ 	]+madd\.l	r34,r32,r7
+[ 	]+1dc:[ 	]+0971d510[ 	]+madd\.w	r23,r53,r17
+[ 	]+1e0:[ 	]+09865c90[ 	]+madds\.l	r24,r23,r9
+[ 	]+1e4:[ 	]+0a245f10[ 	]+madds\.ub	r34,r23,r49
+[ 	]+1e8:[ 	]+08450bb0[ 	]+madds\.w	r4,r2,r59
+[ 	]+1ec:[ 	]+2960e1f0[ 	]+mcmpeq\.b	r22,r56,r31
+[ 	]+1f0:[ 	]+2952b7d0[ 	]+mcmpeq\.l	r21,r45,r61
+[ 	]+1f4:[ 	]+2a01d810[ 	]+mcmpeq\.w	r32,r54,r1
+[ 	]+1f8:[ 	]+28361130[ 	]+mcmpgt\.l	r3,r4,r19
+[ 	]+1fc:[ 	]+2a24d8d0[ 	]+mcmpgt\.ub	r34,r54,r13
+[ 	]+200:[ 	]+29751430[ 	]+mcmpgt\.w	r23,r5,r3
+[ 	]+204:[ 	]+4be3c9e0[ 	]+mcmv	r62,r50,r30
+[ 	]+208:[ 	]+4c2d1400[ 	]+mcnvs\.lw	r2,r5,r0
+[ 	]+20c:[ 	]+4d581ca0[ 	]+mcnvs\.wb	r21,r7,r10
+[ 	]+210:[ 	]+4d7cbcd0[ 	]+mcnvs\.wub	r23,r47,r13
+[ 	]+214:[ 	]+2847a470[ 	]+mextr1	r4,r41,r7
+[ 	]+218:[ 	]+2a0b12f0[ 	]+mextr2	r32,r4,r47
+[ 	]+21c:[ 	]+299fb9b0[ 	]+mextr3	r25,r46,r27
+[ 	]+220:[ 	]+2f431820[ 	]+mextr4	r52,r6,r2
+[ 	]+224:[ 	]+2d574150[ 	]+mextr5	r21,r16,r21
+[ 	]+228:[ 	]+2d8bfaa0[ 	]+mextr6	r24,r62,r42
+[ 	]+22c:[ 	]+2f9fb970[ 	]+mextr7	r57,r46,r23
+[ 	]+230:[ 	]+48511020[ 	]+mmacfx\.wl	r5,r4,r2
+[ 	]+234:[ 	]+48b5b160[ 	]+mmacnfx\.wl	r11,r44,r22
+[ 	]+238:[ 	]+4d6286c0[ 	]+mmul\.l	r22,r33,r44
+[ 	]+23c:[ 	]+4cc18ef0[ 	]+mmul\.w	r12,r35,r47
+[ 	]+240:[ 	]+4fd69700[ 	]+mmulfx\.l	r61,r37,r48
+[ 	]+244:[ 	]+4c151c50[ 	]+mmulfx\.w	r1,r7,r5
+[ 	]+248:[ 	]+4ca99720[ 	]+mmulfxrp\.w	r10,r37,r50
+[ 	]+24c:[ 	]+4c0e1f70[ 	]+mmulhi\.wl	r0,r7,r55
+[ 	]+250:[ 	]+4caa6e30[ 	]+mmullo\.wl	r10,r27,r35
+[ 	]+254:[ 	]+4a998250[ 	]+mmulsum\.wq	r41,r32,r37
+[ 	]+258:[ 	]+cffe16b0[ 	]+movi	-123,r43
+[ 	]+25c:[ 	]+2b9d8040[ 	]+mperm\.w	r57,r32,r4
+[ 	]+260:[ 	]+48505d40[ 	]+msad\.ubq	r5,r23,r20
+[ 	]+264:[ 	]+0e363140[ 	]+mshalds\.l	r35,r12,r20
+[ 	]+268:[ 	]+0eb5d1e0[ 	]+mshalds\.w	r43,r52,r30
+[ 	]+26c:[ 	]+0c4a5e80[ 	]+mshard\.l	r4,r23,r40
+[ 	]+270:[ 	]+0d89f8a0[ 	]+mshard\.w	r24,r62,r10
+[ 	]+274:[ 	]+0c2b4320[ 	]+mshards\.q	r2,r16,r50
+[ 	]+278:[ 	]+2ea41bc0[ 	]+mshfhi\.b	r42,r6,r60
+[ 	]+27c:[ 	]+2f464bb0[ 	]+mshfhi\.l	r52,r18,r59
+[ 	]+280:[ 	]+2c857ee0[ 	]+mshfhi\.w	r8,r31,r46
+[ 	]+284:[ 	]+2dc09e90[ 	]+mshflo\.b	r28,r39,r41
+[ 	]+288:[ 	]+2dd29ab0[ 	]+mshflo\.l	r29,r38,r43
+[ 	]+28c:[ 	]+2de196c0[ 	]+mshflo\.w	r30,r37,r44
+[ 	]+290:[ 	]+0df292e0[ 	]+mshlld\.l	r31,r36,r46
+[ 	]+294:[ 	]+0e018ef0[ 	]+mshlld\.w	r32,r35,r47
+[ 	]+298:[ 	]+0e1e8b10[ 	]+mshlrd\.l	r33,r34,r49
+[ 	]+29c:[ 	]+0e2d8720[ 	]+mshlrd\.w	r34,r33,r50
+[ 	]+2a0:[ 	]+0a3a8340[ 	]+msub\.l	r35,r32,r52
+[ 	]+2a4:[ 	]+0a497f50[ 	]+msub\.w	r36,r31,r53
+[ 	]+2a8:[ 	]+0a5e7b70[ 	]+msubs\.l	r37,r30,r55
+[ 	]+2ac:[ 	]+0a6c7780[ 	]+msubs\.ub	r38,r29,r56
+[ 	]+2b0:[ 	]+0a7d73a0[ 	]+msubs\.w	r39,r28,r58
+[ 	]+2b4:[ 	]+03dea5a0[ 	]+mulu\.l	r61,r41,r26
+[ 	]+2b8:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+2bc:[ 	]+03cdfea0[ 	]+nsb	r60,r42
+[ 	]+2c0:[ 	]+e2b987f0[ 	]+ocbi	r43,-992
+[ 	]+2c4:[ 	]+e28883f0[ 	]+ocbp	r40,-1024
+[ 	]+2c8:[ 	]+e2cc7ff0[ 	]+ocbwb	r44,992
+[ 	]+2cc:[ 	]+07b90e80[ 	]+or	r59,r3,r40
+[ 	]+2d0:[ 	]+dfa4e680[ 	]+ori	r58,313,r40
+[ 	]+2d4:[ 	]+e391fff0[ 	]+prefi	r57,-32
+[ 	]+2d8:[ 	]+6bf1e260[ 	]+ptabs/l	r56,tr6
+[ 	]+2dc:[ 	]+6bf1fe60[ 	]+ptabs/l	r63,tr6
+[ 	]+2e0:[ 	]+6bf1f060[ 	]+ptabs/u	r60,tr6
+[ 	]+2e4:[ 	]+6bf5de30[ 	]+ptrel/l	r55,tr3
+[ 	]+2e8:[ 	]+6bf53e30[ 	]+ptrel/l	r15,tr3
+[ 	]+2ec:[ 	]+6bf5fc30[ 	]+ptrel/u	r63,tr3
+[ 	]+2f0:[ 	]+e29fd7e0[ 	]+putcfg	r41,-11,r62
+[ 	]+2f4:[ 	]+6e8ffde0[ 	]+putcon	r40,cr30
+[ 	]+2f8:[ 	]+6ff3fff0[ 	]+rte	
+[ 	]+2fc:[ 	]+0727a930[ 	]+shard	r50,r42,r19
+[ 	]+300:[ 	]+0746a540[ 	]+shard\.l	r52,r41,r20
+[ 	]+304:[ 	]+c757a150[ 	]+shari	r53,40,r21
+[ 	]+308:[ 	]+c7769d60[ 	]+shari\.l	r55,39,r22
+[ 	]+30c:[ 	]+07819970[ 	]+shlld	r56,r38,r23
+[ 	]+310:[ 	]+07909580[ 	]+shlld\.l	r57,r37,r24
+[ 	]+314:[ 	]+c7c19190[ 	]+shlli	r60,36,r25
+[ 	]+318:[ 	]+c7d07da0[ 	]+shlli\.l	r61,31,r26
+[ 	]+31c:[ 	]+07f389b0[ 	]+shlrd	r63,r34,r27
+[ 	]+320:[ 	]+040285c0[ 	]+shlrd\.l	r0,r33,r28
+[ 	]+324:[ 	]+c42381d0[ 	]+shlri	r2,32,r29
+[ 	]+328:[ 	]+c4327de0[ 	]+shlri\.l	r3,31,r30
+[ 	]+32c:[ 	]+cbff70d0[ 	]+shori	65500,r13
+[ 	]+330:[ 	]+6ff7fff0[ 	]+sleep	
+[ 	]+334:[ 	]+a057d5d0[ 	]+st\.b	r5,501,r29
+[ 	]+338:[ 	]+a867cdf0[ 	]+st\.l	r6,1996,r31
+[ 	]+33c:[ 	]+ac77d600[ 	]+st\.q	r7,4008,r32
+[ 	]+340:[ 	]+a497d610[ 	]+st\.w	r9,1002,r33
+[ 	]+344:[ 	]+e0a6b2b0[ 	]+sthi\.l	r10,-20,r43
+[ 	]+348:[ 	]+e0c75ec0[ 	]+sthi\.q	r12,23,r44
+[ 	]+34c:[ 	]+e0d296d0[ 	]+stlo\.l	r13,-27,r45
+[ 	]+350:[ 	]+e0f356e0[ 	]+stlo\.q	r15,21,r46
+[ 	]+354:[ 	]+610076f0[ 	]+stx\.b	r16,r29,r47
+[ 	]+358:[ 	]+6112cb00[ 	]+stx\.l	r17,r50,r48
+[ 	]+35c:[ 	]+6133c710[ 	]+stx\.q	r19,r49,r49
+[ 	]+360:[ 	]+61413f20[ 	]+stx\.w	r20,r15,r50
+[ 	]+364:[ 	]+016b7730[ 	]+sub	r22,r29,r51
+[ 	]+368:[ 	]+017a7340[ 	]+sub\.l	r23,r28,r52
+[ 	]+36c:[ 	]+21936f50[ 	]+swap\.q	r25,r27,r53
+[ 	]+370:[ 	]+6ff2fff0[ 	]+synci	
+[ 	]+374:[ 	]+6ff6fff0[ 	]+synco	
+[ 	]+378:[ 	]+6da1fff0[ 	]+trapa	r26
+[ 	]+37c:[ 	]+05cd6b60[ 	]+xor	r28,r26,r54
+[ 	]+380:[ 	]+c5dd7f70[ 	]+xori	r29,31,r55
+[ 	]+384:[ 	]+047ed510[ 	]+muls\.l	r7,r53,r17
Index: gas/testsuite/gas/sh/sh64/basic-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/basic-1.s
diff -N gas/testsuite/gas/sh/sh64/basic-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/basic-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,233 @@
+! Various straightforward insn tests, one per insns basic insn format.
+! No insns with strange relocs.  The insns are from the alphabetical list
+! in SH-5/ST50-023-04.
+
+	.text
+start:
+	add	r3,r25,r43
+	add.l	r13,r2,r62
+	addi	r44,500,r33
+	addi.l	r21,-500,r43
+	addz.l	r51,r42,r30
+	alloco	r19,960
+	and	r8,r57,r12
+	andc	r48,r35,r18
+	andi	r24,509,r38
+	beq	r23,r37,tr2
+	beq/l	r23,r27,tr4
+	beq/u	r3,r47,tr6
+	beqi	r4,30,tr5
+	beqi/l	r4,-31,tr0
+	beqi/u	r54,-23,tr2
+	bge	r0,r63,tr7
+	bge/l	r10,r6,tr4
+	bge/u	r11,r36,tr1
+	bgeu	r30,r43,tr3
+	bgeu/l	r10,r26,tr5
+	bgeu/u	r51,r36,tr2
+	bgt	r33,r44,tr7
+	bgt/l	r17,r62,tr4
+	bgt/u	r15,r6,tr1
+	bgtu	r34,r27,tr6
+	bgtu/l	r28,r62,tr0
+	bgtu/u	r18,r25,tr5
+	blink	tr1,r38
+	bne	r62,r47,tr0
+	bne/l	r29,r22,tr1
+	bne/u	r39,r47,tr6
+	bnei	r14,-13,tr7
+	bnei/l	r24,31,tr3
+	bnei/u	r54,-22,tr2
+	brk
+	byterev	r21,r12
+	cmpeq	r10,r11,r21
+	cmpgt	r30,r31,r51
+	cmpgtu	r23,r33,r45
+	cmveq	r32,r3,r44
+	cmvne	r13,r60,r4
+	fabs.d	dr22,dr62
+	fabs.s	fr59,fr25
+	fadd.d	dr40,dr60,dr20
+	fadd.s	fr41,fr59,fr19
+	fcmpeq.d	dr4,dr50,r57
+	fcmpeq.s	fr47,fr30,r17
+	fcmpge.d	dr44,dr52,r20
+	fcmpge.s	fr37,fr23,r32
+	fcmpgt.d	dr20,dr28,r51
+	fcmpgt.s	fr47,fr21,r22
+	fcmpun.d	dr32,dr58,r47
+	fcmpun.s	fr21,fr42,r12
+	fcnv.ds	dr40,fr21
+	fcnv.sd	fr43,dr32
+	fdiv.d	dr34,dr56,dr20
+	fdiv.s	fr13,fr26,fr19
+	fgetscr	fr39
+	fipr.s	fv0,fv8,fr39
+	fld.d	r31,2000,dr48
+	fld.p	r53,-3000,fp38
+	fld.s	r53,2036,fr53
+	fldx.d	r23,r42,dr2
+	fldx.p	r2,r22,fp32
+	fldx.s	r27,r58,fr12
+	float.ld	fr5,dr28
+	float.ls	fr55,fr36
+	float.qd	dr44,dr16
+	float.qs	dr30,fr11
+	fmac.s	fr40,fr37,fr4
+	fmov.d	dr8,dr40
+	fmov.dq	dr58,r34
+	fmov.ls	r25,fr52
+	fmov.qd	r45,dr50
+	fmov.s	fr4,fr55
+	fmov.sl	fr14,r15
+	fmul.d	dr24,dr58,dr42
+	fmul.s	fr27,fr32,fr34
+	fneg.d	dr2,dr0
+	fneg.s	fr0,fr33
+	fputscr	fr44
+	fsqrt.d	dr30,dr44
+	fsqrt.s	fr3,fr23
+	fst.d	r3,4000,dr2
+	fst.p	r54,-4008,fp12
+	fst.s	r18,-2012,fr23
+	fstx.d	r18,r46,dr12
+	fstx.p	r38,r26,fp52
+	fstx.s	r7,r23,fr26
+	fsub.d	dr0,dr44,dr32
+	fsub.s	fr3,fr62,fr3
+	ftrc.dl	dr38,fr53
+	ftrc.sl	fr58,fr49
+	ftrc.dq	dr14,dr26
+	ftrc.sq	fr60,dr22
+	ftrv.s	mtrx16,fv32,fv28
+	getcfg	r5,-11,r62
+	getcon	cr52,r16
+	gettr	tr6,r26
+	icbi	r48,-960
+	ld.b	r50,3,r62
+	ld.l	r5,-604,r22
+	ld.q	r35,-1608,r42
+	ld.ub	r53,-201,r2
+	ld.uw	r23,-402,r42
+	ld.w	r46,302,r11
+	ldhi.l	r6,-30,r41
+	ldhi.q	r36,31,r31
+	ldlo.l	r19,20,r48
+	ldlo.q	r9,-32,r29
+	ldx.b	r5,r3,r47
+	ldx.l	r25,r43,r14
+	ldx.q	r12,r60,r41
+	ldx.ub	r13,r0,r1
+	ldx.uw	r13,r2,r17
+	ldx.w	r10,r22,r60
+	mabs.l	r7,r33
+	mabs.w	r37,r34
+	madd.l	r34,r32,r7
+	madd.w	r23,r53,r17
+	madds.l	r24,r23,r9
+	madds.ub	r34,r23,r49
+	madds.w	r4,r2,r59
+	mcmpeq.b	r22,r56,r31
+	mcmpeq.l	r21,r45,r61
+	mcmpeq.w	r32,r54,r1
+	mcmpgt.l	r3,r4,r19
+	mcmpgt.ub	r34,r54,r13
+	mcmpgt.w	r23,r5,r3
+	mcmv	r62,r50,r30
+	mcnvs.lw	r2,r5,r0
+	mcnvs.wb	r21,r7,r10
+	mcnvs.wub	r23,r47,r13
+	mextr1	r4,r41,r7
+	mextr2	r32,r4,r47
+	mextr3	r25,r46,r27
+	mextr4	r52,r6,r2
+	mextr5	r21,r16,r21
+	mextr6	r24,r62,r42
+	mextr7	r57,r46,r23
+	mmacfx.wl	r5,r4,r2
+	mmacnfx.wl	r11,r44,r22
+	mmul.l	r22,r33,r44
+	mmul.w	r12,r35,r47
+	mmulfx.l	r61,r37,r48
+	mmulfx.w	r1,r7,r5
+	mmulfxrp.w	r10,r37,r50
+	mmulhi.wl	r0,r7,r55
+	mmullo.wl	r10,r27,r35
+	mmulsum.wq	r41,r32,r37
+	movi	-123,r43
+	mperm.w	r57,r32,r4
+	msad.ubq	r5,r23,r20
+	mshalds.l	r35,r12,r20
+	mshalds.w	r43,r52,r30
+	mshard.l	r4,r23,r40
+	mshard.w	r24,r62,r10
+	mshards.q	r2,r16,r50
+	mshfhi.b	r42,r6,r60
+	mshfhi.l	r52,r18,r59
+	mshfhi.w	r8,r31,r46
+	mshflo.b	r28,r39,r41
+	mshflo.l	r29,r38,r43
+	mshflo.w	r30,r37,r44
+	mshlld.l	r31,r36,r46
+	mshlld.w	r32,r35,r47
+	mshlrd.l	r33,r34,r49
+	mshlrd.w	r34,r33,r50
+	msub.l	r35,r32,r52
+	msub.w	r36,r31,r53
+	msubs.l	r37,r30,r55
+	msubs.ub	r38,r29,r56
+	msubs.w	r39,r28,r58
+	mulu.l	r61,r41,r26
+	nop
+	nsb	r60,r42
+	ocbi	r43,-992
+	ocbp	r40,-1024
+	ocbwb	r44,992
+	or	r59,r3,r40
+	ori	r58,313,r40
+	prefi	r57,-32
+! Note: pta, ptb are not here.
+	ptabs	r56,tr6
+	ptabs/l	r63,tr6
+	ptabs/u	r60,tr6
+	ptrel	r55,tr3
+	ptrel/l	r15,tr3
+	ptrel/u	r63,tr3
+	putcfg	r41,-11,r62
+	putcon	r40,cr30
+	rte
+	shard	r50,r42,r19
+	shard.l	r52,r41,r20
+	shari	r53,40,r21
+	shari.l	r55,39,r22
+	shlld	r56,r38,r23
+	shlld.l	r57,r37,r24
+	shlli	r60,36,r25
+	shlli.l	r61,31,r26
+	shlrd	r63,r34,r27
+	shlrd.l	r0,r33,r28
+	shlri	r2,32,r29
+	shlri.l	r3,31,r30
+	shori	65500,r13
+	sleep
+	st.b	r5,501,r29
+	st.l	r6,1996,r31
+	st.q	r7,4008,r32
+	st.w	r9,1002,r33
+	sthi.l	r10,-20,r43
+	sthi.q	r12,23,r44
+	stlo.l	r13,-27,r45
+	stlo.q	r15,21,r46
+	stx.b	r16,r29,r47
+	stx.l	r17,r50,r48
+	stx.q	r19,r49,r49
+	stx.w	r20,r15,r50
+	sub	r22,r29,r51
+	sub.l	r23,r28,r52
+	swap.q	r25,r27,r53
+	synci
+	synco
+	trapa	r26
+	xor	r28,r26,r54
+	xori	r29,31,r55
+	muls.l	r7,r53,r17
Index: gas/testsuite/gas/sh/sh64/case-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/case-1.d
diff -N gas/testsuite/gas/sh/sh64/case-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/case-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,23 @@
+#as: --abi=32
+#objdump: -dr
+#name: Case-insensitive registers and opcodes.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+8:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16_PCREL	foo\+0xf*ff8
+[ 	]+c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_LOW16_PCREL	foo\+0xf*ffc
+[ 	]+10:[ 	]+6bf56440[ 	]+ptrel/u	r25,tr4
+[ 	]+14:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+14:[ 	]+R_SH_IMM_MEDLOW16_PCREL	bar\+0xf*ff8
+[ 	]+18:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_LOW16_PCREL	bar\+0xf*ffc
+[ 	]+1c:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+20:[ 	]+cc00a820[ 	]+movi	42,r2
+[ 	]+24:[ 	]+ebffde20[ 	]+pta/l	0 <start>,tr2
Index: gas/testsuite/gas/sh/sh64/case-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/case-1.s
diff -N gas/testsuite/gas/sh/sh64/case-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/case-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,12 @@
+! Tests that opcodes and common registers are recognized case-insensitive,
+! and also that the option --isa=shmedia is optional.
+
+	.mode SHmedia
+	.text
+start:
+	nOp
+	NOP
+	pt/U foo,tr4
+	PTA/l bar,Tr3
+	MOVI 42,R2
+	PTA/L start,TR2
Index: gas/testsuite/gas/sh/sh64/case-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/case-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/case-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/case-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,18 @@
+#as: --abi=32 -no-expand
+#objdump: -dr
+#source: case-1.s
+#name: Case-insensitive registers and opcodes with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+8:[ 	]+e8000040[ 	]+pta/u	8 <start\+0x8>,tr4
+[ 	]+8:[ 	]+R_SH_PT_16	foo
+[ 	]+c:[ 	]+e8000630[ 	]+pta/l	10 <start\+0x10>,tr3
+[ 	]+c:[ 	]+R_SH_PT_16	bar
+[ 	]+10:[ 	]+cc00a820[ 	]+movi	42,r2
+[ 	]+14:[ 	]+ebffee20[ 	]+pta/l	0 <start>,tr2
Index: gas/testsuite/gas/sh/sh64/crange1-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange1-1.d
diff -N gas/testsuite/gas/sh/sh64/crange1-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange1-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,105 @@
+#as: --abi=32
+#objdump: -sr
+#source: crange1.s
+#name: .cranges descriptors.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.cranges\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        \.text\.shmediaanddata
+0+0a R_SH_DIR32        \.text\.codemix
+0+14 R_SH_DIR32        \.text\.codemixconst
+0+1e R_SH_DIR32        \.text\.codemixconst
+0+28 R_SH_DIR32        \.text\.codemixconst2
+0+32 R_SH_DIR32        \.text\.codemixconst2
+0+3c R_SH_DIR32        \.text\.codemixconst2
+0+46 R_SH_DIR32        \.text\.codemixconst2
+0+50 R_SH_DIR32        \.text\.codemixconst2
+0+5a R_SH_DIR32        \.text\.shmediaanddata
+0+64 R_SH_DIR32        \.text\.codemix
+0+6e R_SH_DIR32        \.text\.codemixconst
+0+78 R_SH_DIR32        \.text\.codemixconst2
+
+
+Contents of section \.text:
+ 0000 6ff0fff0 cc00aad0 cc0022e0 6ff0fff0  .*
+Contents of section \.data:
+Contents of section \.text\.compact:
+ 0000 0009e02a 89000009 0009               .*
+Contents of section \.text\.shmediaanddata:
+ 0000 cc00aad0 cc0022e0 6ff0fff0 00000014  .*
+ 0010 00000032                             .*
+Contents of section \.cranges:
+ 0000 00000000 00000008 00030000 00000000  .*
+ 0010 00180003 00000000 0000001c 00030000  .*
+ 0020 001c0000 00200001 00000000 00000024  .*
+ 0030 00030000 00240000 00280001 0000004c  .*
+ 0040 000000e8 00020000 01340000 002c0003  .*
+ 0050 00000160 0000001a 00010000 00080000  .*
+ 0060 000c0001 00000018 0000000e 00020000  .*
+ 0070 003c0000 007e0002 0000017a 00000156  .*
+ 0080 0002                                 .*
+Contents of section \.text\.codemix:
+ 0000 cc00aad0 6ff0fff0 6ff0fff0 cc0062e0  .*
+ 0010 6ff0fff0 6ff0fff0 0009e028 00090009  .*
+ 0020 89000009 0009                        .*
+Contents of section \.text\.codemixconst:
+ 0000 6ff0fff0 cc00aad0 6ff0fff0 6ff0fff0  .*
+ 0010 cc00e2e0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff00000 0000fff0 6ff0fff0  .*
+ 0030 6ff0fff0 00000000 000000b1 0009e02b  .*
+ 0040 00090009 89020009 00090009 00090000  .*
+ 0050 00000000 00000000 00000000 00000000  .*
+ 0060 00000000 00000000 00000000 00000000  .*
+ 0070 00000000 00000000 00000000 00000000  .*
+ 0080 00000000 00000000 00000000 00000000  .*
+ 0090 00000000 00000000 00000000 00000000  .*
+ 00a0 00000000 00000000 00000000 00000000  .*
+ 00b0 00000000 00000000 007c               .*
+Contents of section \.text\.codemixconst2:
+ 0000 6ff0fff0 cc00aad0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 cc0122e0 6ff0fff0 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000 00000000 00000044 0009e02c  .*
+ 0050 00090009 89040009 00090009 00090009  .*
+ 0060 00090009 09000000 00000000 00000000  .*
+ 0070 00000000 00000000 00000000 00000000  .*
+ 0080 00000000 00000000 00000000 00000000  .*
+ 0090 00000000 00000000 00000000 00000000  .*
+ 00a0 00000000 00000000 00000000 00000000  .*
+ 00b0 00000000 00000000 00000000 00000000  .*
+ 00c0 00000000 00000000 00000000 00000000  .*
+ 00d0 00000000 00000000 00000000 00000000  .*
+ 00e0 00000000 00000000 00000000 00000000  .*
+ 00f0 00000000 00000000 00000000 00000000  .*
+ 0100 00000000 00000000 00000000 00000000  .*
+ 0110 00000000 00000000 00000000 00000000  .*
+ 0120 00000000 00000000 00000000 00000000  .*
+ 0130 000000e6 6ff0fff0 cc00aed0 6ff0fff0  .*
+ 0140 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0150 6ff0fff0 6ff0fff0 6ff0fff0 cc010ae0  .*
+ 0160 6ff0fff0 00000000 00000000 00000000  .*
+ 0170 00000000 00000000 00420009 e00e0009  .*
+ 0180 0009890a 00090009 00090009 00090009  .*
+ 0190 00090009 00090009 00090009 00000000  .*
+ 01a0 00000000 00000000 00000000 00000000  .*
+ 01b0 00000000 00000000 00000000 00000000  .*
+ 01c0 00000000 00000000 00000000 00000000  .*
+ 01d0 00000000 00000000 00000000 00000000  .*
+ 01e0 00000000 00000000 00000000 00000000  .*
+ 01f0 00000000 00000000 00000000 00000000  .*
+ 0200 00000000 00000000 00000000 00000000  .*
+ 0210 00000000 00000000 00000000 00000000  .*
+ 0220 00000000 00000000 00000000 00000000  .*
+ 0230 00000000 00000000 00000000 00000000  .*
+ 0240 00000000 00000000 00000000 00000000  .*
+ 0250 00000000 00000000 00000000 00000000  .*
+ 0260 00000000 00000000 00000000 00000000  .*
+ 0270 00000000 00000000 00000000 00000000  .*
+ 0280 00000000 00000000 00000000 00000000  .*
+ 0290 00000000 00000000 00000000 00000000  .*
+ 02a0 00000000 00000000 00000000 00000000  .*
+ 02b0 00000000 00000000 00000000 00000000  .*
+ 02c0 00000000 00000000 00000000 00000154  .*
Index: gas/testsuite/gas/sh/sh64/crange1-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange1-2.d
diff -N gas/testsuite/gas/sh/sh64/crange1-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange1-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,109 @@
+#as: --abi=32 -shcompact-const-crange
+#objdump: -sr
+#source: crange1.s
+#name: .cranges descriptors including SHcompact constant pool
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.cranges\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        \.text\.shmediaanddata
+0+0a R_SH_DIR32        \.text\.codemix
+0+14 R_SH_DIR32        \.text\.codemixconst
+0+1e R_SH_DIR32        \.text\.codemixconst
+0+28 R_SH_DIR32        \.text\.codemixconst
+0+32 R_SH_DIR32        \.text\.codemixconst2
+0+3c R_SH_DIR32        \.text\.codemixconst2
+0+46 R_SH_DIR32        \.text\.codemixconst2
+0+50 R_SH_DIR32        \.text\.codemixconst2
+0+5a R_SH_DIR32        \.text\.codemixconst2
+0+64 R_SH_DIR32        \.text\.codemixconst2
+0+6e R_SH_DIR32        \.text\.codemixconst2
+0+78 R_SH_DIR32        \.text\.shmediaanddata
+0+82 R_SH_DIR32        \.text\.codemix
+0+8c R_SH_DIR32        \.text\.codemixconst
+0+96 R_SH_DIR32        \.text\.codemixconst2
+
+
+Contents of section \.text:
+ 0000 6ff0fff0 cc00aad0 cc0022e0 6ff0fff0  .*
+Contents of section \.data:
+Contents of section \.text\.compact:
+ 0000 0009e02a 89000009 0009               .*
+Contents of section \.text\.shmediaanddata:
+ 0000 cc00aad0 cc0022e0 6ff0fff0 00000014  .*
+ 0010 00000032                             .*
+Contents of section \.cranges:
+ 0000 00000000 00000008 00030000 00000000  .*
+ 0010 00180003 00000000 0000001c 00030000  .*
+ 0020 001c0000 00200001 0000003c 00000012  .*
+ 0030 00020000 00000000 00240003 00000024  .*
+ 0040 00000028 00010000 004c0000 00160002  .*
+ 0050 00000062 000000d2 00010000 01340000  .*
+ 0060 002c0003 00000160 0000001a 00010000  .*
+ 0070 017a0000 00220002 00000008 0000000c  .*
+ 0080 00010000 00180000 000e0002 0000004e  .*
+ 0090 0000006c 00010000 019c0000 01340001  .*
+Contents of section \.text\.codemix:
+ 0000 cc00aad0 6ff0fff0 6ff0fff0 cc0062e0  .*
+ 0010 6ff0fff0 6ff0fff0 0009e028 00090009  .*
+ 0020 89000009 0009                        .*
+Contents of section \.text\.codemixconst:
+ 0000 6ff0fff0 cc00aad0 6ff0fff0 6ff0fff0  .*
+ 0010 cc00e2e0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff00000 0000fff0 6ff0fff0  .*
+ 0030 6ff0fff0 00000000 000000b1 0009e02b  .*
+ 0040 00090009 89020009 00090009 00090000  .*
+ 0050 00000000 00000000 00000000 00000000  .*
+ 0060 00000000 00000000 00000000 00000000  .*
+ 0070 00000000 00000000 00000000 00000000  .*
+ 0080 00000000 00000000 00000000 00000000  .*
+ 0090 00000000 00000000 00000000 00000000  .*
+ 00a0 00000000 00000000 00000000 00000000  .*
+ 00b0 00000000 00000000 007c               .*
+Contents of section \.text\.codemixconst2:
+ 0000 6ff0fff0 cc00aad0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 cc0122e0 6ff0fff0 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000 00000000 00000044 0009e02c  .*
+ 0050 00090009 89040009 00090009 00090009  .*
+ 0060 00090009 09000000 00000000 00000000  .*
+ 0070 00000000 00000000 00000000 00000000  .*
+ 0080 00000000 00000000 00000000 00000000  .*
+ 0090 00000000 00000000 00000000 00000000  .*
+ 00a0 00000000 00000000 00000000 00000000  .*
+ 00b0 00000000 00000000 00000000 00000000  .*
+ 00c0 00000000 00000000 00000000 00000000  .*
+ 00d0 00000000 00000000 00000000 00000000  .*
+ 00e0 00000000 00000000 00000000 00000000  .*
+ 00f0 00000000 00000000 00000000 00000000  .*
+ 0100 00000000 00000000 00000000 00000000  .*
+ 0110 00000000 00000000 00000000 00000000  .*
+ 0120 00000000 00000000 00000000 00000000  .*
+ 0130 000000e6 6ff0fff0 cc00aed0 6ff0fff0  .*
+ 0140 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0150 6ff0fff0 6ff0fff0 6ff0fff0 cc010ae0  .*
+ 0160 6ff0fff0 00000000 00000000 00000000  .*
+ 0170 00000000 00000000 00420009 e00e0009  .*
+ 0180 0009890a 00090009 00090009 00090009  .*
+ 0190 00090009 00090009 00090009 00000000  .*
+ 01a0 00000000 00000000 00000000 00000000  .*
+ 01b0 00000000 00000000 00000000 00000000  .*
+ 01c0 00000000 00000000 00000000 00000000  .*
+ 01d0 00000000 00000000 00000000 00000000  .*
+ 01e0 00000000 00000000 00000000 00000000  .*
+ 01f0 00000000 00000000 00000000 00000000  .*
+ 0200 00000000 00000000 00000000 00000000  .*
+ 0210 00000000 00000000 00000000 00000000  .*
+ 0220 00000000 00000000 00000000 00000000  .*
+ 0230 00000000 00000000 00000000 00000000  .*
+ 0240 00000000 00000000 00000000 00000000  .*
+ 0250 00000000 00000000 00000000 00000000  .*
+ 0260 00000000 00000000 00000000 00000000  .*
+ 0270 00000000 00000000 00000000 00000000  .*
+ 0280 00000000 00000000 00000000 00000000  .*
+ 0290 00000000 00000000 00000000 00000000  .*
+ 02a0 00000000 00000000 00000000 00000000  .*
+ 02b0 00000000 00000000 00000000 00000000  .*
+ 02c0 00000000 00000000 00000000 00000154  .*
Index: gas/testsuite/gas/sh/sh64/crange1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange1.s
diff -N gas/testsuite/gas/sh/sh64/crange1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,210 @@
+! Test that .cranges are emitted:
+!  1) Not for sections with single contents.
+!  2) For data (through pseudo-ops) in SHmedia.
+!  3) For mixed SHcompact and SHmedia sections.
+!  4) For a mix of 2 and 3
+!  5) For 4, repeated.
+!
+! Use section contents that need relaxing to strengthen the check that the
+! .cranges implementation handles this correctly.  Use different sizes for
+! each contents part.
+!
+
+! The .text section has only SHmedia contents, and should not get a
+! .cranges descriptor.
+	.mode SHmedia
+	.text
+	nop
+shmedia:
+	movi 42,r45
+	movi shmediaend-shmedia,r46
+shmediaend:
+	nop
+
+! Likewise the SHcompact section.
+	.mode SHcompact
+	.section .text.compact,"ax"
+	nop
+shcompact:
+	mov #42,r0
+	bt shcompactend
+	nop
+shcompactend:
+	nop
+
+! This section has SHmedia code followed by data.  There should be two
+! .cranges descriptors.  Note that we put the .mode directive *after* the
+! section change.  It should not matter.
+	.section .text.shmediaanddata,"ax"
+	.mode SHmedia
+shmedia_data_code:
+	movi 42,r45
+	movi shmedia_data_code_end-shmedia_data_code,r46
+shmedia_data_code_end:
+	.long 0x6ff0fff0
+	.long shmedia_dataend-shmedia_data_code
+	.long 50
+shmedia_dataend:
+
+! This section mixes SHcompact and SHmedia code.  There should be two
+! .cranges descriptors.
+	.section .text.codemix,"ax"
+shmedia_compact_code:
+	movi 42,r45
+	nop
+	nop
+	movi shmedia_compact_code_end-shmedia_compact_code,r46
+	nop
+	nop
+shmedia_compact_code_end:
+	.mode SHcompact
+compact_code:
+	nop
+compact:
+	mov #40,r0
+	nop
+	nop
+	bt compactend
+	nop
+compactend:
+	nop
+
+! This section mixes SHcompact and SHmedia code, and has a constant
+! section after the SHmedia code and one after the SHcompact code.  There
+! should be three or four .cranges descriptors, depending on whether one
+! is emitted for the SHcompact constant pool: there's normally one such
+! after each SHcompact function.
+	.mode SHmedia
+	.section .text.codemixconst,"ax"
+	nop
+shmedia_compact_code2:
+	movi 42,r45
+	nop
+	nop
+	movi shmedia_compact_code_end2-shmedia_compact_code2,r46
+	nop
+	nop
+	.long 0x6ff0fff0
+	.long 0x6ff0fff0
+	.long 0x6ff00000
+	.long 0xfff0
+	.long 0x6ff0fff0
+	.long 0x6ff0fff0
+	.long 0
+mediapoollabel:
+	.long mediapoollabel2-shmedia_compact_code2
+mediapoolend:
+shmedia_compact_code_end2:
+	.mode SHcompact
+compact_code2:
+	nop
+compact2:
+	mov #43,r0
+	nop
+	nop
+	bt compactend2
+	nop
+	nop
+	nop
+compactend2:
+	nop
+	.space 100,0
+	.long 0
+mediapoollabel2:
+	.long mediapoolend2-compact2
+mediapoolend2:
+
+! This section is like the previous, but repeated twice and adjusted to
+! keep different sizes of each part.
+	.mode SHmedia
+	.section .text.codemixconst2,"ax"
+	nop
+shmedia_compact_code3:
+	movi 42,r45
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	movi shmedia_compact_code_end3-shmedia_compact_code3,r46
+	.long 0x6ff0fff0
+	.long 0
+	.long 0
+	.long 0
+	.long 0
+	.long 0
+	.long 0
+	.long 0
+	.long 0
+mediapoollabel3a:
+	.long mediapoollabel3a-shmedia_compact_code3
+mediapoolend3a:
+shmedia_compact_code_end3:
+	.mode SHcompact
+compact_code3:
+	nop
+compact3:
+	mov #44,r0
+	nop
+	nop
+	bt compactend3
+	nop
+	nop
+	nop
+	nop
+	nop
+compactend3:
+	nop
+	.word 9
+	.word 0x900
+	.space 198,0
+	.long 0
+mediapoollabel3:
+	.long mediapoolend3-compact3
+mediapoolend3:
+	.mode SHmedia
+	nop
+shmedia_compact_code4:
+	movi 43,r45
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	movi shmedia_compact_code_end4-shmedia_compact_code4,r46
+	.long 0x6ff0fff0
+	.space 18,0
+mediapoollabel4a:
+	.long mediapoolend4a-shmedia_compact_code4
+mediapoolend4a:
+shmedia_compact_code_end4:
+	.mode SHcompact
+compact_code4:
+	nop
+compact4:
+	mov #14,r0
+	nop
+	nop
+	bt compactend4
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+compactend4:
+	nop
+	.space 300,0
+	.long 0
+mediapoollabel4:
+	.long mediapoolend4-compact4
+mediapoolend4:
Index: gas/testsuite/gas/sh/sh64/crange2-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange2-1.d
diff -N gas/testsuite/gas/sh/sh64/crange2-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange2-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,43 @@
+#as: --abi=32
+#objdump: -dr
+#source: crange2.s
+#name: PT to SHcompact
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <shmedia>:
+[ 	]+0:[ 	]+e8000a30[ 	]+pta/l	8 <shmedia1>,tr3
+[ 	]+4:[ 	]+ec001240[ 	]+ptb/l	14 <shcompact1>,tr4
+
+0+8 <shmedia1>:
+[ 	]+8:[ 	]+ec001250[ 	]+ptb/l	18 <shcompact2>,tr5
+
+0+c <shmedia2>:
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+
+0+10[ 	]+<shcompact>:
+[ 	]+10:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+12:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+14 <shcompact1>:
+[ 	]+14:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+16:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+18 <shcompact2>:
+[ 	]+18:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+1a:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+1c <shcompact3>:
+[ 	]+1c:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+1e:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+20[ 	]+<shcompact4>:
+[ 	]+20:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+22:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+24 <shmedia3>:
+[ 	]+24:[ 	]+effffa60[ 	]+ptb/l	1c <shcompact3>,tr6
+[ 	]+28:[ 	]+effffa70[ 	]+ptb/l	20[ 	]+<shcompact4>,tr7
+[ 	]+2c:[ 	]+ebffe200[ 	]+pta/l	c <shmedia2>,tr0
Index: gas/testsuite/gas/sh/sh64/crange2-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange2-2.d
diff -N gas/testsuite/gas/sh/sh64/crange2-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange2-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,23 @@
+#as: --abi=32
+#objdump: -sr
+#source: crange2.s
+#name: .cranges descriptors for SHcompact and SHmedia in .text.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.cranges\]:
+
+OFFSET  *TYPE  *VALUE 
+0+0 R_SH_DIR32        \.text
+0+a R_SH_DIR32        \.text
+0+14 R_SH_DIR32        \.text
+
+
+Contents of section \.text:
+ 0000 e8000a30 ec001240 ec001250 6ff0fff0  .*
+ 0010 00090009 00090009 00090009 00090009  .*
+ 0020 00090009 effffa60 effffa70 ebffe200  .*
+Contents of section .data:
+Contents of section .cranges:
+ 0000 00000000 00000010 00030000 00100000  .*
+ 0010 00140002 00000024 0000000c 0003      .*
Index: gas/testsuite/gas/sh/sh64/crange2-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange2-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/crange2-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange2-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,43 @@
+#as: --abi=32 -no-expand
+#objdump: -dr
+#source: crange2.s
+#name: PT to SHcompact with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <shmedia>:
+[ 	]+0:[ 	]+e8000a30[ 	]+pta/l	8 <shmedia1>,tr3
+[ 	]+4:[ 	]+ec001240[ 	]+ptb/l	14 <shcompact1>,tr4
+
+0+8 <shmedia1>:
+[ 	]+8:[ 	]+ec001250[ 	]+ptb/l	18 <shcompact2>,tr5
+
+0+c <shmedia2>:
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+
+0+10[ 	]+<shcompact>:
+[ 	]+10:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+12:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+14 <shcompact1>:
+[ 	]+14:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+16:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+18 <shcompact2>:
+[ 	]+18:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+1a:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+1c <shcompact3>:
+[ 	]+1c:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+1e:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+20[ 	]+<shcompact4>:
+[ 	]+20:[ 	]+00[ 	]+09[ 	]+nop	
+[ 	]+22:[ 	]+00[ 	]+09[ 	]+nop	
+
+0+24 <shmedia3>:
+[ 	]+24:[ 	]+effffa60[ 	]+ptb/l	1c <shcompact3>,tr6
+[ 	]+28:[ 	]+effffa70[ 	]+ptb/l	20[ 	]+<shcompact4>,tr7
+[ 	]+2c:[ 	]+ebffe200[ 	]+pta/l	c <shmedia2>,tr0
Index: gas/testsuite/gas/sh/sh64/crange2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange2.s
diff -N gas/testsuite/gas/sh/sh64/crange2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,34 @@
+! Check PT to SHcompact within same section as SHmedia, and that PT to
+! nearby SHmedia still gets the right offset.
+	.text
+	.mode SHmedia
+shmedia:
+	pt shmedia1,tr3
+	pt shcompact1,tr4
+shmedia1:
+	ptb shcompact2,tr5
+shmedia2:
+	nop
+
+	.mode SHcompact
+shcompact: ! Have a label, so disassembling unrelocated code works.
+	nop
+	nop
+shcompact1:
+	nop
+	nop
+shcompact2:
+	nop
+	nop
+shcompact3:
+	nop
+	nop
+shcompact4:
+	nop
+	nop
+
+	.mode SHmedia
+shmedia3:
+	pt shcompact3,tr6
+	ptb shcompact4,tr7
+	pt shmedia2,tr0
Index: gas/testsuite/gas/sh/sh64/crange3-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange3-1.d
diff -N gas/testsuite/gas/sh/sh64/crange3-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange3-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,25 @@
+#as: --abi=32
+#objdump: -sr
+#source: crange3.s
+#name: .cranges descriptors, constant mix.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.cranges\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        \.text
+0+0a R_SH_DIR32        \.text
+0+14 R_SH_DIR32        \.text
+
+
+Contents of section \.text:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 01235678 12345678 12345678 1234fede  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0                             .*
+Contents of section \.data:
+Contents of section \.rodata:
+ 0000 abcdef01 12345678                    .*
+Contents of section \.cranges:
+ 0000 00000000 00000010 00030000 00100000  .*
+ 0010 00100001 00000020 00000014 0003      .*
Index: gas/testsuite/gas/sh/sh64/crange3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange3.s
diff -N gas/testsuite/gas/sh/sh64/crange3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange3.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,34 @@
+! There was a bug in which a .cranges data hunk could include a hunk of
+! code in front of it.  The following illustrates a function (start)
+! followed by constants output into .rodata, followed by a function
+! (continue), with a case-table (.L173) in it.  The bug included code from
+! the start of the function (continue) into the case-table range descriptor.
+
+	.text
+	.mode SHmedia
+start:
+	nop
+	.section .rodata
+	.long 0xabcdef01
+	.long 0x12345678
+	.text
+continue:
+	nop
+	nop
+	nop
+	.align 2
+	.align 2
+.L173:
+	.word 0x0123
+	.word 0x5678
+	.word 0x1234
+	.word 0x5678
+	.word 0x1234
+	.word 0x5678
+	.word 0x1234
+	.word 0xfede
+	nop
+	nop
+	nop
+	nop
+	nop
Index: gas/testsuite/gas/sh/sh64/crange4-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange4-1.d
diff -N gas/testsuite/gas/sh/sh64/crange4-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange4-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,20 @@
+#as: --abi=32
+#objdump: -sr
+#source: crange4.s
+#name: .cranges descriptors with final variant.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.cranges\]:
+OFFSET  *TYPE  *VALUE 
+0+ R_SH_DIR32        \.text
+0+a R_SH_DIR32        \.text
+
+
+Contents of section \.text:
+ 0000 6ff0fff0 00000000 00000000 00000000  .*
+ 0010 00000000 00000000                    .*
+Contents of section \.data:
+Contents of section \.cranges:
+ 0000 00000000 00000004 00030000 00040000  .*
+ 0010 00140001                             .*
Index: gas/testsuite/gas/sh/sh64/crange4.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange4.s
diff -N gas/testsuite/gas/sh/sh64/crange4.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange4.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,8 @@
+! This will be two .cranges.  Original problem was that the second one was
+! lost because .space just emitted a frag, without calling emit_expr as
+! most other data-generating pseudos.
+
+	.mode SHmedia
+start:
+	nop
+	.space 20,0
Index: gas/testsuite/gas/sh/sh64/crange5-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange5-1.d
diff -N gas/testsuite/gas/sh/sh64/crange5-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange5-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,13 @@
+#as: --abi=32 --isa=SHmedia
+#objdump: -sr
+#source: crange5.s
+#name: Avoid zero length .cranges range descriptor at .align in code.
+
+.*:     file format .*-sh64
+
+Contents of section \.text:
+ 0000 e8003a00 d4ff80f0 4455fc00 acf000e0  .*
+ 0010 acf00c00 acf009c0 acf00520 00f8fce0  .*
+ 0020 0029fc10 e4110200 ebffda50 d81201c0  .*
+ 0030 e8000a00 cc000420 6ff0fff0           .*
+Contents of section .data:
Index: gas/testsuite/gas/sh/sh64/crange5.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/crange5.s
diff -N gas/testsuite/gas/sh/sh64/crange5.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/crange5.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,26 @@
+! Zero-sized range descriptors are handled well, but GAS should not emit
+! them unnecessarily.  This can happen if .align handling and insn
+! assembling does not cater to this specifically and completely.
+! Test-case shortened from gcc.c-torture/execute/20000205-1.c.
+
+	.text
+_f:
+	pt	.L2, tr0
+	addi.l	r15, -32, r15
+	gettr	tr5, r0
+	st.q	r15, 0, r14
+	st.q	r15, 24, r0
+	st.q	r15, 16, r28
+	st.q	r15, 8, r18
+	add.l	r15, r63, r14
+	add	r2, r63, r1
+	beqi	r1, 0, tr0
+	pt	_f, tr5
+	andi	r1, 128, r28
+	.align 2
+.L8:
+	pt	.L2, tr0
+	movi	1, r2
+.L2:
+	nop
+
Index: gas/testsuite/gas/sh/sh64/creg-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/creg-1.d
diff -N gas/testsuite/gas/sh/sh64/creg-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/creg-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,77 @@
+#as: --abi=32
+#objdump: -dr
+#name: Predefined control register names.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+240ffd50[ 	]+getcon	sr,r21
+[ 	]+4:[ 	]+241ffdf0[ 	]+getcon	ssr,r31
+[ 	]+8:[ 	]+242ffd60[ 	]+getcon	pssr,r22
+[ 	]+c:[ 	]+244ffd50[ 	]+getcon	intevt,r21
+[ 	]+10:[ 	]+245ffd50[ 	]+getcon	expevt,r21
+[ 	]+14:[ 	]+246ffd50[ 	]+getcon	pexpevt,r21
+[ 	]+18:[ 	]+247ffcc0[ 	]+getcon	tra,r12
+[ 	]+1c:[ 	]+248ffd50[ 	]+getcon	spc,r21
+[ 	]+20:[ 	]+249ffe90[ 	]+getcon	pspc,r41
+[ 	]+24:[ 	]+24affd50[ 	]+getcon	resvec,r21
+[ 	]+28:[ 	]+24bffd30[ 	]+getcon	vbr,r19
+[ 	]+2c:[ 	]+24dffd50[ 	]+getcon	tea,r21
+[ 	]+30:[ 	]+250ffe30[ 	]+getcon	dcr,r35
+[ 	]+34:[ 	]+251ffd50[ 	]+getcon	kcr0,r21
+[ 	]+38:[ 	]+252ffd50[ 	]+getcon	kcr1,r21
+[ 	]+3c:[ 	]+27effd60[ 	]+getcon	ctc,r22
+[ 	]+40:[ 	]+27fffd50[ 	]+getcon	usr,r21
+[ 	]+44:[ 	]+240ffc20[ 	]+getcon	sr,r2
+[ 	]+48:[ 	]+241ffd50[ 	]+getcon	ssr,r21
+[ 	]+4c:[ 	]+242ffd50[ 	]+getcon	pssr,r21
+[ 	]+50:[ 	]+244ffd50[ 	]+getcon	intevt,r21
+[ 	]+54:[ 	]+245ffe60[ 	]+getcon	expevt,r38
+[ 	]+58:[ 	]+246ffd50[ 	]+getcon	pexpevt,r21
+[ 	]+5c:[ 	]+247ffd50[ 	]+getcon	tra,r21
+[ 	]+60:[ 	]+248ffc10[ 	]+getcon	spc,r1
+[ 	]+64:[ 	]+249ffd50[ 	]+getcon	pspc,r21
+[ 	]+68:[ 	]+24affd50[ 	]+getcon	resvec,r21
+[ 	]+6c:[ 	]+24bffef0[ 	]+getcon	vbr,r47
+[ 	]+70:[ 	]+24dffd50[ 	]+getcon	tea,r21
+[ 	]+74:[ 	]+250ffd50[ 	]+getcon	dcr,r21
+[ 	]+78:[ 	]+251ffe30[ 	]+getcon	kcr0,r35
+[ 	]+7c:[ 	]+252ffd50[ 	]+getcon	kcr1,r21
+[ 	]+80:[ 	]+27effd50[ 	]+getcon	ctc,r21
+[ 	]+84:[ 	]+27fffd50[ 	]+getcon	usr,r21
+[ 	]+88:[ 	]+6d5ffc00[ 	]+putcon	r21,sr
+[ 	]+8c:[ 	]+6dfffc10[ 	]+putcon	r31,ssr
+[ 	]+90:[ 	]+6d6ffc20[ 	]+putcon	r22,pssr
+[ 	]+94:[ 	]+6d5ffc40[ 	]+putcon	r21,intevt
+[ 	]+98:[ 	]+6d5ffc50[ 	]+putcon	r21,expevt
+[ 	]+9c:[ 	]+6d5ffc60[ 	]+putcon	r21,pexpevt
+[ 	]+a0:[ 	]+6ccffc70[ 	]+putcon	r12,tra
+[ 	]+a4:[ 	]+6d5ffc80[ 	]+putcon	r21,spc
+[ 	]+a8:[ 	]+6e9ffc90[ 	]+putcon	r41,pspc
+[ 	]+ac:[ 	]+6d5ffca0[ 	]+putcon	r21,resvec
+[ 	]+b0:[ 	]+6d3ffcb0[ 	]+putcon	r19,vbr
+[ 	]+b4:[ 	]+6d5ffcd0[ 	]+putcon	r21,tea
+[ 	]+b8:[ 	]+6e3ffd00[ 	]+putcon	r35,dcr
+[ 	]+bc:[ 	]+6d5ffd10[ 	]+putcon	r21,kcr0
+[ 	]+c0:[ 	]+6d5ffd20[ 	]+putcon	r21,kcr1
+[ 	]+c4:[ 	]+6d6fffe0[ 	]+putcon	r22,ctc
+[ 	]+c8:[ 	]+6d5ffff0[ 	]+putcon	r21,usr
+[ 	]+cc:[ 	]+6c2ffc00[ 	]+putcon	r2,sr
+[ 	]+d0:[ 	]+6d5ffc10[ 	]+putcon	r21,ssr
+[ 	]+d4:[ 	]+6d5ffc20[ 	]+putcon	r21,pssr
+[ 	]+d8:[ 	]+6d5ffc40[ 	]+putcon	r21,intevt
+[ 	]+dc:[ 	]+6e6ffc50[ 	]+putcon	r38,expevt
+[ 	]+e0:[ 	]+6d5ffc60[ 	]+putcon	r21,pexpevt
+[ 	]+e4:[ 	]+6d5ffc70[ 	]+putcon	r21,tra
+[ 	]+e8:[ 	]+6c1ffc80[ 	]+putcon	r1,spc
+[ 	]+ec:[ 	]+6d5ffc90[ 	]+putcon	r21,pspc
+[ 	]+f0:[ 	]+6d5ffca0[ 	]+putcon	r21,resvec
+[ 	]+f4:[ 	]+6efffcb0[ 	]+putcon	r47,vbr
+[ 	]+f8:[ 	]+6d5ffcd0[ 	]+putcon	r21,tea
+[ 	]+fc:[ 	]+6d5ffd00[ 	]+putcon	r21,dcr
+[ 	]+100:[ 	]+6e3ffd10[ 	]+putcon	r35,kcr0
+[ 	]+104:[ 	]+6d5ffd20[ 	]+putcon	r21,kcr1
+[ 	]+108:[ 	]+6d5fffe0[ 	]+putcon	r21,ctc
+[ 	]+10c:[ 	]+6d5ffff0[ 	]+putcon	r21,usr
Index: gas/testsuite/gas/sh/sh64/creg-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/creg-1.s
diff -N gas/testsuite/gas/sh/sh64/creg-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/creg-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,79 @@
+! Test recognition of predefined control register names, lower and upper
+! case; getcon and putcon.  Exhaustive test in those domain is small and
+! simple enough.  Note that basic-1.s has already tested non-predefined
+! register names.
+
+	.mode SHmedia
+	.text
+start:
+	getcon sr,r21
+	getcon ssr,r31
+	getcon pssr,r22
+	getcon intevt,r21
+	getcon expevt,r21
+	getcon pexpevt,r21
+	getcon tra,r12
+	getcon spc,r21
+	getcon pspc,r41
+	getcon resvec,r21
+	getcon vbr,r19
+	getcon tea,r21
+	getcon dcr,r35
+	getcon kcr0,r21
+	getcon kcr1,r21
+	getcon ctc,r22
+	getcon usr,r21
+
+	getcon SR,r2
+	getcon SSR,r21
+	getcon PSSR,r21
+	getcon INTEVT,r21
+	getcon EXPEVT,r38
+	getcon PEXPEVT,r21
+	getcon TRA,r21
+	getcon SPC,r1
+	getcon PSPC,r21
+	getcon RESVEC,r21
+	getcon VBR,r47
+	getcon TEA,r21
+	getcon DCR,r21
+	getcon KCR0,r35
+	getcon KCR1,r21
+	getcon CTC,r21
+	getcon USR,r21
+
+	putcon r21,sr
+	putcon r31,ssr
+	putcon r22,pssr
+	putcon r21,intevt
+	putcon r21,expevt
+	putcon r21,pexpevt
+	putcon r12,tra
+	putcon r21,spc
+	putcon r41,pspc
+	putcon r21,resvec
+	putcon r19,vbr
+	putcon r21,tea
+	putcon r35,dcr
+	putcon r21,kcr0
+	putcon r21,kcr1
+	putcon r22,ctc
+	putcon r21,usr
+
+	putcon r2,SR
+	putcon r21,SSR
+	putcon r21,PSSR
+	putcon r21,INTEVT
+	putcon r38,EXPEVT
+	putcon r21,PEXPEVT
+	putcon r21,TRA
+	putcon r1,SPC
+	putcon r21,PSPC
+	putcon r21,RESVEC
+	putcon r47,VBR
+	putcon r21,TEA
+	putcon r21,DCR
+	putcon r35,KCR0
+	putcon r21,KCR1
+	putcon r21,CTC
+	putcon r21,USR
Index: gas/testsuite/gas/sh/sh64/creg-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/creg-2.d
diff -N gas/testsuite/gas/sh/sh64/creg-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/creg-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,17 @@
+#as: --abi=32
+#objdump: -dr
+#name: Predefined control register names specified in crN syntax.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+240ffd50[ 	]+getcon	sr,r21
+[ 	]+4:[ 	]+24dffd50[ 	]+getcon	tea,r21
+[ 	]+8:[ 	]+27effd60[ 	]+getcon	ctc,r22
+[ 	]+c:[ 	]+248ffd50[ 	]+getcon	spc,r21
+[ 	]+10:[ 	]+244ffd50[ 	]+getcon	intevt,r21
+[ 	]+14:[ 	]+6d3ffcb0[ 	]+putcon	r19,vbr
+[ 	]+18:[ 	]+6e6ffc50[ 	]+putcon	r38,expevt
+[ 	]+1c:[ 	]+6d5ffc10[ 	]+putcon	r21,ssr
Index: gas/testsuite/gas/sh/sh64/creg-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/creg-2.s
diff -N gas/testsuite/gas/sh/sh64/creg-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/creg-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,14 @@
+! Test recognition of predefined control register names specified as crN
+! syntax, lower and upper case.
+
+	.mode SHmedia
+	.text
+start:
+	getcon cr0,r21
+	getcon cr13,r21
+	getcon CR62,r22
+	getcon cr8,r21
+	getcon CR4,r21
+	putcon r19,cr11
+	putcon r38,CR5
+	putcon r21,CR1
Index: gas/testsuite/gas/sh/sh64/datal-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal-1.s
diff -N gas/testsuite/gas/sh/sh64/datal-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,41 @@
+! Check "datalabel" qualifier.
+! This is the most simple use; references to local symbols where it is
+! completely redundant.  Code tests are for SHmedia mode.
+
+	.mode SHmedia
+	.text
+start:
+	movi datalabel foo,r3
+	movi DataLabel foo2 + 42,r3
+	movi (datalabel (foo3 + 46) >> 16) & 65535,r3
+	movi datalabel myrodata3 & 65535, r45
+	movi datalabel myrodata4 & 65535, r45
+	movi DATALABEL (myrodata2 + 50) & 65535, r45
+
+	.section .rodata
+	.long datalabel foo4
+myrodata1:
+	.long DATALABEL foo5 + 56
+myrodata2:
+	.long datalabel $
+	.global myrodata3
+myrodata3:
+	.long datalabel $+20
+myrodata4:
+	.long datalabel myrodata1+0x100
+
+	.data
+	.long datalabel myrodata1
+foo:
+	.long DATALABEL myrodata2+30
+foo2:
+	.long DataLabel foo
+foo3:
+	.long datalabel $
+foo4:
+	.long datalabel $+40
+foo5:
+	.long datalabel myrodata3
+	.global foo6
+foo6:
+	.long datalabel foo6 + 42
Index: gas/testsuite/gas/sh/sh64/datal-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal-2.d
diff -N gas/testsuite/gas/sh/sh64/datal-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,44 @@
+#as: --abi=32
+#objdump: -sr
+#source: datal-2.s
+#name: DataLabel redundant local use, SHcompact
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+08 R_SH_DIR32        \.rodata
+0+0c R_SH_DIR32        myrodata2
+0+10 R_SH_DIR32        \.text
+0+14 R_SH_DIR32        \.text
+0+18 R_SH_DIR32        \.text
+0+1c R_SH_DIR32        \.text
+
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        myrodata2
+0+04 R_SH_DIR32        \.data
+0+08 R_SH_DIR32        \.data
+0+0c R_SH_DIR32        foo2
+0+10 R_SH_DIR32        foo3
+0+14 R_SH_DIR32        \.text
+0+18 R_SH_DIR32        \.text
+
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        \.data
+0+04 R_SH_DIR32        \.data
+0+08 R_SH_DIR32        \.rodata
+0+0c R_SH_DIR32        \.rodata
+
+
+Contents of section \.text:
+ 0000 c701c70d 00090009 00000004 00000014  .*
+ 0010 00000002 0000002e 00000018 00000030  .*
+Contents of section \.data:
+ 0000 00000000 00000004 0000001c 00000000  .*
+ 0010 00000014 00000002 00000018           .*
+Contents of section \.rodata:
+ 0000 00000010 0000004c 00000008 00000020  .*
Index: gas/testsuite/gas/sh/sh64/datal-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal-2.s
diff -N gas/testsuite/gas/sh/sh64/datal-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,46 @@
+! Check "datalabel" qualifier.
+! This is the most simple use; references to local symbols where it is
+! completely redundant.  Code tests are for SHcompact mode.
+
+	.mode SHcompact
+	.text
+start:
+	mova datalabel litpool1,r0
+start1:
+	mova datalabel litpool2 + 44,r0
+start2:
+	nop
+	nop
+litpool1:
+	.long datalabel myrodata1
+litpool2:
+	.long datalabel myrodata2 + 20
+	.long DATALABEL start1
+	.long datalabel start2+42
+	.long DataLabel $
+	.long datalabel $+20
+
+	.section .rodata
+	.long datalabel foo4
+myrodata1:
+	.long DataLabel foo5 + 56
+	.global myrodata2
+myrodata2:
+	.long datalabel $
+	.long datalabel $+20
+
+	.data
+	.long DATALABEL myrodata2
+foo:
+	.long datalabel $
+	.global foo2
+foo2:
+	.long datalabel $+20
+	.global foo3
+foo3:
+	.long DataLabel foo2
+foo4:
+	.long datalabel foo3+20
+foo5:
+	.long DATALABEL start1
+	.long datalabel start2+20
Index: gas/testsuite/gas/sh/sh64/datal-3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal-3.s
diff -N gas/testsuite/gas/sh/sh64/datal-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal-3.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,48 @@
+! Check "datalabel" qualifier.
+! This is the next most simple use; references symbols defined in this file.
+! Code tests are for SHmedia mode.
+
+	.mode SHmedia
+	.text
+start:
+	movi datalabel foo,r3
+	movi DataLabel foo2 + 42,r3
+	movi ((datalabel foo3 + 46) >> 16) & 65535,r3
+
+	.section .rodata
+	.long datalabel foo4
+myrodata1:
+	.long DATALABEL foo5 + 56
+myrodata2:
+	.long datalabel $
+	.global myrodata3
+myrodata3:
+	.long datalabel $+20
+
+	.text
+	movi datalabel foo7 + 42,r30
+	movi datalabel foo8,r30
+	movi ((datalabel foo9 + 64) >> 16) & 65535,r3
+	movi datalabel myrodata1,r56
+foo:
+	movi DATALABEL myrodata2+30,r21
+foo2:
+	movi DataLabel foo,r10
+foo3:
+	movi datalabel $,r33
+foo4:
+	movi datalabel $+40,r8
+foo5:
+	movi datalabel myrodata3,r44
+	.global foo6
+foo6:
+	movi datalabel foo6 + 42,r30
+	.global foo7
+foo7:
+	nop
+	.global foo8
+foo8:
+	nop
+	.global foo9
+foo9:
+	nop
Index: gas/testsuite/gas/sh/sh64/datal32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal32-1.d
diff -N gas/testsuite/gas/sh/sh64/datal32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,45 @@
+#as: --abi=32
+#objdump: -sr
+#source: datal-1.s
+#name: DataLabel redundant local use, SHmedia 32-bit ABI
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+10 R_SH_IMM_MEDLOW16  \.data\+0x0+3a
+0+14 R_SH_IMM_LOW16    myrodata3
+0+18 R_SH_IMM_LOW16    \.rodata\+0x0+10
+0+1c R_SH_IMM_LOW16    \.rodata\+0x0+3a
+0+00 R_SH_IMM_MEDLOW16  \.data\+0x0+4
+0+04 R_SH_IMM_LOW16    \.data\+0x0+4
+0+08 R_SH_IMM_MEDLOW16  \.data\+0x0+32
+0+0c R_SH_IMM_LOW16    \.data\+0x0+32
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        \.rodata
+0+04 R_SH_DIR32        \.rodata
+0+08 R_SH_DIR32        \.data
+0+0c R_SH_DIR32        \.data
+0+10 R_SH_DIR32        \.data
+0+14 R_SH_DIR32        myrodata3
+0+18 R_SH_DIR32        foo6
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET  *TYPE  *VALUE 
+0+00 R_SH_DIR32        \.data
+0+04 R_SH_DIR32        \.data
+0+08 R_SH_DIR32        \.rodata
+0+0c R_SH_DIR32        \.rodata
+0+10 R_SH_DIR32        \.rodata
+
+Contents of section \.text:
+ 0000 cc000030 c8000030 cc000030 c8000030  .*
+ 0010 cc000030 cc0002d0 cc0002d0 cc0002d0  .*
+Contents of section \.data:
+ 0000 00000004 00000026 00000004 0000000c  .*
+ 0010 00000038 00000000 0000002a           .*
+Contents of section \.rodata:
+ 0000 00000010 0000004c 00000008 00000020  .*
+ 0010 00000104                             .*
Index: gas/testsuite/gas/sh/sh64/datal32-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal32-3.d
diff -N gas/testsuite/gas/sh/sh64/datal32-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal32-3.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,95 @@
+#as: --abi=32
+#objdump: -xsr
+#source: datal-3.s
+#name: DataLabel local def/use, SHmedia 32-bit ABI
+
+# We should have the st_type field of each symbol displayed too, so we can
+# check that STT_DATALABEL is set, but objdump doesn't do that at present,
+# and readelf isn't supported as a run_dump_test tool.
+
+.*:     file format .*-sh64
+.*
+architecture: sh5, flags 0x0+11:
+HAS_RELOC, HAS_SYMS
+start address 0x0+
+
+Sections:
+Idx Name          Size      VMA               LMA               File off  Algn
+  0 \.text         0+6c  0+  0+  0+34  2\*\*0
+                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
+  1 \.data         0+  0+  0+  0+a0  2\*\*0
+                  CONTENTS, ALLOC, LOAD, DATA
+  2 \.bss          0+  0+  0+  0+a0  2\*\*0
+                  ALLOC
+  3 \.rodata       0+10  0+  0+  0+a0  2\*\*0
+                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
+SYMBOL TABLE:
+0+ l    d  \.text	0+ 
+0+ l    d  \.data	0+ 
+0+ l    d  \.bss	0+ 
+0+ l       \.text	0+ 0x04 start
+0+30 l       \.text	0+ 0x04 foo
+0+38 l       \.text	0+ 0x04 foo2
+0+40 l       \.text	0+ 0x04 foo3
+0+ l    d  \.rodata	0+ 
+0+48 l       \.text	0+ 0x04 foo4
+0+4 l       \.rodata	0+ myrodata1
+0+50 l       \.text	0+ 0x04 foo5
+0+8 l       \.rodata	0+ myrodata2
+0+c g       \.rodata	0+ myrodata3
+0+60 g       \.text	0+ 0x04 foo7
+0+60         \*UND\*	0+ foo7
+0+64 g       \.text	0+ 0x04 foo8
+0+64         \*UND\*	0+ foo8
+0+68 g       \.text	0+ 0x04 foo9
+0+68         \*UND\*	0+ foo9
+0+58 g       \.text	0+ 0x04 foo6
+0+58         \*UND\*	0+ foo6
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+10 R_SH_IMM_MEDLOW16  \.text\+0x0+6e
+0+24 R_SH_IMM_MEDLOW16  foo9\+0x0+40
+0+00 R_SH_IMM_MEDLOW16  \.text\+0x0+30
+0+04 R_SH_IMM_LOW16    \.text\+0x0+30
+0+08 R_SH_IMM_MEDLOW16  \.text\+0x0+62
+0+0c R_SH_IMM_LOW16    \.text\+0x0+62
+0+14 R_SH_IMM_MEDLOW16  foo7\+0x0+2a
+0+18 R_SH_IMM_LOW16    foo7\+0x0+2a
+0+1c R_SH_IMM_MEDLOW16  foo8
+0+20 R_SH_IMM_LOW16    foo8
+0+28 R_SH_IMM_MEDLOW16  \.rodata\+0x0+4
+0+2c R_SH_IMM_LOW16    \.rodata\+0x0+4
+0+30 R_SH_IMM_MEDLOW16  \.rodata\+0x0+26
+0+34 R_SH_IMM_LOW16    \.rodata\+0x0+26
+0+38 R_SH_IMM_MEDLOW16  \.text\+0x0+30
+0+3c R_SH_IMM_LOW16    \.text\+0x0+30
+0+40 R_SH_IMM_MEDLOW16  \.text\+0x0+40
+0+44 R_SH_IMM_LOW16    \.text\+0x0+40
+0+48 R_SH_IMM_MEDLOW16  \.text\+0x0+70
+0+4c R_SH_IMM_LOW16    \.text\+0x0+70
+0+50 R_SH_IMM_MEDLOW16  myrodata3
+0+54 R_SH_IMM_LOW16    myrodata3
+0+58 R_SH_IMM_MEDLOW16  foo6\+0x0+2a
+0+5c R_SH_IMM_LOW16    foo6\+0x0+2a
+
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET  *TYPE  *VALUE 
+0+ R_SH_DIR32        \.text
+0+4 R_SH_DIR32        \.text
+0+8 R_SH_DIR32        \.rodata
+0+c R_SH_DIR32        \.rodata
+
+
+Contents of section \.text:
+ 0000 cc000030 c8000030 cc000030 c8000030  .*
+ 0010 cc000030 cc0001e0 c80001e0 cc0001e0  .*
+ 0020 c80001e0 cc000030 cc000380 c8000380  .*
+ 0030 cc000150 c8000150 cc0000a0 c80000a0  .*
+ 0040 cc000210 c8000210 cc000080 c8000080  .*
+ 0050 cc0002c0 c80002c0 cc0001e0 c80001e0  .*
+ 0060 6ff0fff0 6ff0fff0 6ff0fff0           .*
+Contents of section \.data:
+Contents of section \.rodata:
+ 0000 00000048 00000088 00000008 00000020  .*
Index: gas/testsuite/gas/sh/sh64/datal64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal64-1.d
diff -N gas/testsuite/gas/sh/sh64/datal64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal64-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,50 @@
+#as: --abi=64
+#objdump: -sr
+#source: datal-1.s
+#name: DataLabel redundant local use, SHmedia 64-bit ABI
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+20 R_SH_IMM_MEDLOW16  \.data\+0x0+3a
+0+24 R_SH_IMM_LOW16    myrodata3
+0+28 R_SH_IMM_LOW16    \.rodata\+0x0+10
+0+2c R_SH_IMM_LOW16    \.rodata\+0x0+3a
+0+00 R_SH_IMM_HI16     \.data\+0x0+4
+0+04 R_SH_IMM_MEDHI16  \.data\+0x0+4
+0+08 R_SH_IMM_MEDLOW16  \.data\+0x0+4
+0+0c R_SH_IMM_LOW16    \.data\+0x0+4
+0+10 R_SH_IMM_HI16     \.data\+0x0+32
+0+14 R_SH_IMM_MEDHI16  \.data\+0x0+32
+0+18 R_SH_IMM_MEDLOW16  \.data\+0x0+32
+0+1c R_SH_IMM_LOW16    \.data\+0x0+32
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET           TYPE              VALUE 
+0+00 R_SH_DIR32        \.rodata
+0+04 R_SH_DIR32        \.rodata
+0+08 R_SH_DIR32        \.data
+0+0c R_SH_DIR32        \.data
+0+10 R_SH_DIR32        \.data
+0+14 R_SH_DIR32        myrodata3
+0+18 R_SH_DIR32        foo6
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET           TYPE              VALUE 
+0+00 R_SH_DIR32        \.data
+0+04 R_SH_DIR32        \.data
+0+08 R_SH_DIR32        \.rodata
+0+0c R_SH_DIR32        \.rodata
+0+10 R_SH_DIR32        \.rodata
+
+Contents of section \.text:
+ 0000 cc000030 c8000030 c8000030 c8000030  .*
+ 0010 cc000030 c8000030 c8000030 c8000030  .*
+ 0020 cc000030 cc0002d0 cc0002d0 cc0002d0  .*
+Contents of section \.data:
+ 0000 00000004 00000026 00000004 0000000c  .*
+ 0010 00000038 00000000 0000002a           .*
+Contents of section \.rodata:
+ 0000 00000010 0000004c 00000008 00000020  .*
+ 0010 00000104                             .*
Index: gas/testsuite/gas/sh/sh64/datal64-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/datal64-3.d
diff -N gas/testsuite/gas/sh/sh64/datal64-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/datal64-3.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,124 @@
+#as: --abi=64
+#objdump: -xsr
+#source: datal-3.s
+#name: DataLabel local def/use, SHmedia 64-bit ABI
+
+# We should have the st_type field of each symbol displayed too, so we can
+# check that STT_DATALABEL is set, but objdump doesn't do that at present,
+# and readelf isn't supported as a run_dump_test tool.
+
+.*:     file format .*-sh64
+.*
+architecture: sh5, flags 0x0+11:
+HAS_RELOC, HAS_SYMS
+start address 0x0+
+
+Sections:
+Idx Name          Size      VMA               LMA               File off  Algn
+  0 \.text         0+c4  0+  0+  0+40  2\*\*0
+                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
+  1 \.data         0+  0+  0+  0+104  2\*\*0
+                  CONTENTS, ALLOC, LOAD, DATA
+  2 \.bss          0+  0+  0+  0+104  2\*\*0
+                  ALLOC
+  3 \.rodata       0+10  0+  0+  0+104  2\*\*0
+                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
+SYMBOL TABLE:
+0+ l    d  \.text	0+ 
+0+ l    d  \.data	0+ 
+0+ l    d  \.bss	0+ 
+0+ l       \.text	0+ 0x04 start
+0+58 l       \.text	0+ 0x04 foo
+0+68 l       \.text	0+ 0x04 foo2
+0+78 l       \.text	0+ 0x04 foo3
+0+ l    d  \.rodata	0+ 
+0+88 l       \.text	0+ 0x04 foo4
+0+4 l       \.rodata	0+ myrodata1
+0+98 l       \.text	0+ 0x04 foo5
+0+8 l       \.rodata	0+ myrodata2
+0+c g       \.rodata	0+ myrodata3
+0+b8 g       \.text	0+ 0x04 foo7
+0+b8         \*UND\*	0+ foo7
+0+bc g       \.text	0+ 0x04 foo8
+0+bc         \*UND\*	0+ foo8
+0+c0 g       \.text	0+ 0x04 foo9
+0+c0         \*UND\*	0+ foo9
+0+a8 g       \.text	0+ 0x04 foo6
+0+a8         \*UND\*	0+ foo6
+
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+20 R_SH_IMM_MEDLOW16  \.text\+0x0+a6
+0+44 R_SH_IMM_MEDLOW16  foo9\+0x0+40
+0+ R_SH_IMM_HI16     \.text\+0x0+58
+0+4 R_SH_IMM_MEDHI16  \.text\+0x0+58
+0+8 R_SH_IMM_MEDLOW16  \.text\+0x0+58
+0+c R_SH_IMM_LOW16    \.text\+0x0+58
+0+10 R_SH_IMM_HI16     \.text\+0x0+92
+0+14 R_SH_IMM_MEDHI16  \.text\+0x0+92
+0+18 R_SH_IMM_MEDLOW16  \.text\+0x0+92
+0+1c R_SH_IMM_LOW16    \.text\+0x0+92
+0+24 R_SH_IMM_HI16     foo7\+0x0+2a
+0+28 R_SH_IMM_MEDHI16  foo7\+0x0+2a
+0+2c R_SH_IMM_MEDLOW16  foo7\+0x0+2a
+0+30 R_SH_IMM_LOW16    foo7\+0x0+2a
+0+34 R_SH_IMM_HI16     foo8
+0+38 R_SH_IMM_MEDHI16  foo8
+0+3c R_SH_IMM_MEDLOW16  foo8
+0+40 R_SH_IMM_LOW16    foo8
+0+48 R_SH_IMM_HI16     \.rodata\+0x0+4
+0+4c R_SH_IMM_MEDHI16  \.rodata\+0x0+4
+0+50 R_SH_IMM_MEDLOW16  \.rodata\+0x0+4
+0+54 R_SH_IMM_LOW16    \.rodata\+0x0+4
+0+58 R_SH_IMM_HI16     \.rodata\+0x0+26
+0+5c R_SH_IMM_MEDHI16  \.rodata\+0x0+26
+0+60 R_SH_IMM_MEDLOW16  \.rodata\+0x0+26
+0+64 R_SH_IMM_LOW16    \.rodata\+0x0+26
+0+68 R_SH_IMM_HI16     \.text\+0x0+58
+0+6c R_SH_IMM_MEDHI16  \.text\+0x0+58
+0+70 R_SH_IMM_MEDLOW16  \.text\+0x0+58
+0+74 R_SH_IMM_LOW16    \.text\+0x0+58
+0+78 R_SH_IMM_HI16     \.text\+0x0+78
+0+7c R_SH_IMM_MEDHI16  \.text\+0x0+78
+0+80 R_SH_IMM_MEDLOW16  \.text\+0x0+78
+0+84 R_SH_IMM_LOW16    \.text\+0x0+78
+0+88 R_SH_IMM_HI16     \.text\+0x0+b0
+0+8c R_SH_IMM_MEDHI16  \.text\+0x0+b0
+0+90 R_SH_IMM_MEDLOW16  \.text\+0x0+b0
+0+94 R_SH_IMM_LOW16    \.text\+0x0+b0
+0+98 R_SH_IMM_HI16     myrodata3
+0+9c R_SH_IMM_MEDHI16  myrodata3
+0+a0 R_SH_IMM_MEDLOW16  myrodata3
+0+a4 R_SH_IMM_LOW16    myrodata3
+0+a8 R_SH_IMM_HI16     foo6\+0x0+2a
+0+ac R_SH_IMM_MEDHI16  foo6\+0x0+2a
+0+b0 R_SH_IMM_MEDLOW16  foo6\+0x0+2a
+0+b4 R_SH_IMM_LOW16    foo6\+0x0+2a
+
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET           TYPE              VALUE 
+0+ R_SH_DIR32        \.text
+0+4 R_SH_DIR32        \.text
+0+8 R_SH_DIR32        \.rodata
+0+c R_SH_DIR32        \.rodata
+
+
+Contents of section \.text:
+ 0000 cc000030 c8000030 c8000030 c8000030  .*
+ 0010 cc000030 c8000030 c8000030 c8000030  .*
+ 0020 cc000030 cc0001e0 c80001e0 c80001e0  .*
+ 0030 c80001e0 cc0001e0 c80001e0 c80001e0  .*
+ 0040 c80001e0 cc000030 cc000380 c8000380  .*
+ 0050 c8000380 c8000380 cc000150 c8000150  .*
+ 0060 c8000150 c8000150 cc0000a0 c80000a0  .*
+ 0070 c80000a0 c80000a0 cc000210 c8000210  .*
+ 0080 c8000210 c8000210 cc000080 c8000080  .*
+ 0090 c8000080 c8000080 cc0002c0 c80002c0  .*
+ 00a0 c80002c0 c80002c0 cc0001e0 c80001e0  .*
+ 00b0 c80001e0 c80001e0 6ff0fff0 6ff0fff0  .*
+ 00c0 6ff0fff0                             .*
+Contents of section \.data:
+Contents of section \.rodata:
+ 0000 00000088 000000d0 00000008 00000020  .*
Index: gas/testsuite/gas/sh/sh64/endian-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/endian-1.d
diff -N gas/testsuite/gas/sh/sh64/endian-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/endian-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,9 @@
+#as: --isa=shmedia --no-exp -little
+#objdump: -s
+#name: SH64 Little Endian
+
+.*:     file format elf64-sh64l
+
+Contents of section .text:
+ 0000 00d048cc 78563412 34120000.*
+Contents of section .data:
Index: gas/testsuite/gas/sh/sh64/endian-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/endian-1.s
diff -N gas/testsuite/gas/sh/sh64/endian-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/endian-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,7 @@
+	.text
+	.mode shmedia
+start:
+
+	movi	0x1234,r0
+	.long	0x12345678
+	.word	0x1234, 0
Index: gas/testsuite/gas/sh/sh64/endian-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/endian-2.d
diff -N gas/testsuite/gas/sh/sh64/endian-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/endian-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+#as: --isa=shmedia --no-exp
+#objdump: -s
+#name: SH64 Big Endian
+
+.*:     file format elf64-sh64
+
+Contents of section .text:
+ 0000 cc48d000 12345678 12340000.*
+Contents of section .data:
+
Index: gas/testsuite/gas/sh/sh64/endian-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/endian-2.s
diff -N gas/testsuite/gas/sh/sh64/endian-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/endian-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,7 @@
+	.text
+	.mode shmedia
+start:
+
+	movi	0x1234,r0
+	.long	0x12345678
+	.word	0x1234, 0
Index: gas/testsuite/gas/sh/sh64/err-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-1.s
diff -N gas/testsuite/gas/sh/sh64/err-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,47 @@
+! { dg-do assemble }
+
+! Various operand errors experienced during the creation of basic-1.s;
+! some are redundant.
+!
+	addz.l	r51,-42,r30		! { dg-error "invalid operand" }
+	beqi	r4,-33,tr5		! { dg-error "not a 6-bit signed value" }
+	fadd.s	dr41,dr59,dr19		! { dg-error "invalid operand" }
+	fdiv.s	fr13,dr26,fr19		! { dg-error "invalid operand" }
+	fld.p	r53,-3000,fp39		! { dg-error "invalid operand" }
+	fld.s	r53,1010,fr53		! { dg-error "not a multiple of 4" }
+	float.qd	dr45,dr16	! { dg-error "invalid operand" }
+	float.qs	dr31,fr11	! { dg-error "invalid operand" }
+	fmov.d	dr8,dr43		! { dg-error "invalid operand" }
+	fmov.qd	r45,dr5			! { dg-error "invalid operand" }
+	fmul.d	dr7,dr57,dr42		! { dg-error "invalid operand" }
+	fneg.s	fr0,dr33		! { dg-error "invalid operand" }
+	fsqrt.d	dr31,dr43		! { dg-error "invalid operand" }
+	fst.p	r54,-4008,fp11		! { dg-error "invalid operand" }
+	fstx.p	r38,r26,dr52		! { dg-error "invalid operand" }
+	ftrc.dq	dr15,dr29		! { dg-error "invalid operand" }
+	ftrv.s	mtrx16,fv32,fv7		! { dg-error "invalid operand" }
+	icbi	r48,12000		! { dg-error "not a 11-bit signed value" }
+	ld.w	r46,301,r11		! { dg-error "not an even value" }
+	ldhi.l	r6,302,r41		! { dg-error "not a 6-bit signed value" }
+	ldlo.l	r19,334,r48		! { dg-error "not a 6-bit signed value" }
+	ldlo.q	r9,311,r29		! { dg-error "not a 6-bit signed value" }
+	ocbi	r43,11008		! { dg-error "not a 11-bit signed value" }
+	ocbp	r40,-11008		! { dg-error "not a 11-bit signed value" }
+	ocbwb	r44,-10016		! { dg-error "not a 11-bit signed value" }
+	prefi	r57,16000		! { dg-error "not a 11-bit signed value" }
+	putcfg	r41,-511,r62		! { dg-error "not a 6-bit signed value" }
+	shlld	r56,38,r23		! { dg-error "invalid operand" }
+	shlli.l	r61,r35,r26		! { dg-error "invalid operand" }
+	shlli	r60,r36,r25		! { dg-error "invalid operand" }
+	shlri	r2,r32,r29		! { dg-error "invalid operand" }
+	shlri.l	r3,r31,r30		! { dg-error "invalid operand" }
+	st.w	r9,2002,r33		! { dg-error "not a 11-bit signed value" }
+	sthi.l	r10,-201,r43		! { dg-error "not a 6-bit signed value" }
+	sthi.q	r12,203,r44		! { dg-error "not a 6-bit signed value" }
+	stlo.l	r13,-207,r45		! { dg-error "not a 6-bit signed value" }
+	stlo.q	r15,217,r46		! { dg-error "not a 6-bit signed value" }
+	stx.b	r16,219,r47		! { dg-error "invalid operand" }
+	stx.l	r17,-500,r48		! { dg-error "invalid operand" }
+	stx.q	r19,-50,r49		! { dg-error "invalid operand" }
+	stx.w	r20,-150,r50		! { dg-error "invalid operand" }
+	xori	r29,-51,r55		! { dg-error "not a 6-bit signed value" }
Index: gas/testsuite/gas/sh/sh64/err-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-2.s
diff -N gas/testsuite/gas/sh/sh64/err-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,16 @@
+! { dg-do assemble }
+! { dg-options "--abi=32 --isa=shmedia" }
+!
+
+! This is a mainly a copy of movi64-2.s, but we check that out-of-range
+! errors are emitted for the 32-bit ABI.
+	.text
+start:
+	movi  65536 << 16,r3	! { dg-error "not a 32-bit signed value" }
+	movi  -32769 << 16,r3	! { dg-error "not a 32-bit signed value" }
+	movi  32768 << 16,r3
+	movi  -32768 << 16,r3
+	movi  32767 << 48,r3	! { dg-error "not a 32-bit signed value" }
+	movi  32768 << 48,r3	! { dg-error "not a 32-bit signed value" }
+	movi  -32768 << 48,r3	! { dg-error "not a 32-bit signed value" }
+
Index: gas/testsuite/gas/sh/sh64/err-3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-3.s
diff -N gas/testsuite/gas/sh/sh64/err-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-3.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,36 @@
+! { dg-do assemble }
+! { dg-options "--abi=32" }
+
+! Check that we get errors for immediate operands with expressions with
+! resolvable differences between local symbols, but not in range for the
+! operands, and no errors for nearby valid values.
+
+	.text
+	.mode SHmedia
+start:
+	addi r50,.Lab500 - .Lab1,r40
+	addi r50,.Lab1000 - .Lab1,r40		! { dg-error "not a 10-bit signed value" }
+	addi r50,.Lab500 - .Lab1 + 1,r40
+	addi r50,.Lab500 - .Lab1 + 2,r40
+	ld.uw r30,.Lab1000 - .Lab1,r40
+	ld.uw r30,.Lab500 - .Lab1 + 1,r40	! { dg-error "not an even value" }
+	ld.uw r30,.Lab500 - .Lab1 + 2,r40
+	ld.uw r50,.Lab2000 - .Lab1,r20		! { dg-error "not a 11-bit signed value" }
+	ld.l r50,.Lab2000 - .Lab1,r20
+	ld.l r50,.Lab2000 - .Lab1 + 1,r20	! { dg-error "not a multiple of 4" }
+	ld.l r50,.Lab2000 - .Lab1 + 2,r20	! { dg-error "not a multiple of 4" }
+	ld.l r50,.Lab4000 - .Lab1,r20		! { dg-error "not a 12-bit signed value" }
+	nop
+
+	.data
+	.long 0
+.Lab1:
+	.zero 500,0
+.Lab500:
+	.zero 500,0
+.Lab1000:
+	.zero 1000,0
+.Lab2000:
+	.zero 2000,0
+.Lab4000:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/err-4.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-4.s
diff -N gas/testsuite/gas/sh/sh64/err-4.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-4.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,27 @@
+! { dg-do assemble }
+! { dg-options "--abi=32 -no-mix" }
+
+! Check that we can't have different ISA:s in the same section if disallowed.
+
+	.text
+	.mode SHmedia
+start:
+	nop
+
+	.mode SHcompact
+	nop			! { dg-error "not allowed in same section" }
+
+	.section .text.other,"ax"
+	.mode SHmedia
+	nop
+
+	.mode SHcompact
+	nop			! { dg-error "not allowed in same section" }
+
+	.section .text.more,"ax"
+	.mode SHmedia
+	nop
+
+	.section .text.yetmore,"ax"
+	.mode SHcompact
+	nop
Index: gas/testsuite/gas/sh/sh64/err-abi-32.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-abi-32.s
diff -N gas/testsuite/gas/sh/sh64/err-abi-32.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-abi-32.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check .abi pseudo assertion.
+
+! { dg-do assemble }
+! { dg-options "-abi=64" }
+
+	.text
+	.abi 32		! { dg-error "options do not specify 32-bit ABI" }
+
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/err-abi-64.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-abi-64.s
diff -N gas/testsuite/gas/sh/sh64/err-abi-64.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-abi-64.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check .abi pseudo assertion.
+
+! { dg-do assemble }
+! { dg-options "-abi=32" }
+
+	.text
+	.abi 64		! { dg-error "options do not specify 64-bit ABI" }
+
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/err-dsp.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-dsp.s
diff -N gas/testsuite/gas/sh/sh64/err-dsp.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-dsp.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,15 @@
+! Check that we get errors when assembling DSP instructions.
+
+! { dg-do assemble }
+! { dg-options "-isa=SHcompact" }
+
+! Regarding the opcode table, all insns are marked arch_sh_dsp_up; there are
+! no insns marked arch_sh3_dsp_up.  We check a few marked arch_sh_dsp_up:
+! two have operands only recognized with -dsp; the other has an opcode not
+! recognized without -dsp.
+
+	.text
+start:
+	ldc r3,mod		! { dg-error "invalid operands" }
+	ldre @(16,pc)		! { dg-error "unknown opcode" }
+	lds r4,a0		! { dg-error "invalid operands" }
Index: gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s
diff -N gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,24 @@
+! Check that we get errors for MOVI operands out-of-range with -no-expand.
+
+! { dg-do assemble }
+! { dg-options "--abi=32 --isa=shmedia -no-expand" }
+
+	.text
+start:
+	movi  externalsym + 123,r3
+	movi  65535,r3		! { dg-error "not a 16-bit signed value" }
+	movi  65536,r3		! { dg-error "not a 16-bit signed value" }
+	movi  65535 << 16,r3	! { dg-error "not a 16-bit signed value" }
+	movi  32767,r3
+	movi  32768,r3		! { dg-error "not a 16-bit signed value" }
+	movi  32767 << 16,r3	! { dg-error "not a 16-bit signed value" }
+	movi  -32768,r3
+	movi  -32769,r3		! { dg-error "not a 16-bit signed value" }
+	movi  -32768 << 16,r3	! { dg-error "not a 16-bit signed value" }
+	movi  localsym + 73,r4
+	movi  forwardsym - 42,r4
+	.set forwardsym,47
+
+	.data
+localsym:
+	.long 1
Index: gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s
diff -N gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check command-line error checking.  The option -no-expand is not valid
+! unless SHcompact/SHmedia is specified.
+
+! { dg-do assemble }
+! { dg-options "-no-expand" }
+! { dg-error ".* only valid with SHcompact or SHmedia" "" { target sh64-*-* } 0 }
+
+	.text
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/err-pt-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-pt-1.s
diff -N gas/testsuite/gas/sh/sh64/err-pt-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-pt-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,18 @@
+! Check that we get errors for a PT operand out of range with -no-relax.
+
+! { dg-do assemble }
+! { dg-options "--abi=32 --no-expand" }
+
+	.mode SHmedia
+start:
+	nop
+start2:
+	pt	x0,tr3		! { dg-error "operand out of range" }
+x1:
+	pt	x0,tr4
+	.space 32767*4-4,0
+x0:
+	pt	x1,tr5
+	pt	x1,tr6
+	pt	x1,tr6		! { dg-error "operand out of range" }
+	pt	x1,tr7		! { dg-error "operand out of range" }
Index: gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s
diff -N gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check command-line error checking.  The option -expand-pt32 is only valid
+! with -abi=64
+
+! { dg-do assemble }
+! { dg-options "-expand-pt32" }
+! { dg-error ".* only valid with -abi=64" "" { target sh64-*-* } 0 }
+
+	.text
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s
diff -N gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check command-line error checking.  The option -expand-pt32 is invalid with
+! -no-expand.
+
+! { dg-do assemble }
+! { dg-options "-abi=64 -expand-pt32 -no-expand" }
+! { dg-error ".* invalid together with -no-expand" "" { target sh64-*-* } 0 }
+
+	.text
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s
diff -N gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check command-line error checking.  The option -expand-pt32 is invalid with
+! -abi=32 just as it is invalid with no SHmedia/SHcompact options.
+
+! { dg-do assemble }
+! { dg-options "-abi=32 -expand-pt32" }
+! { dg-error ".* only valid with -abi=64" "" { target sh64-*-* } 0 }
+
+	.text
+start:
+	nop
Index: gas/testsuite/gas/sh/sh64/err-ptb-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-ptb-1.s
diff -N gas/testsuite/gas/sh/sh64/err-ptb-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-ptb-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,34 @@
+! Check that PTB to a assembly-time-resolvable SHcompact operand
+! gets an error.  Likewise PTA.
+
+! { dg-do assemble }
+! { dg-options "--abi=32" }
+
+	.text
+	.mode SHmedia
+start:
+	ptb shmediasymbol1,tr1		! { dg-error "PTB operand is a SHmedia symbol" }
+shmediasymbol3:
+	ptb shcompactsymbol1,tr1
+	pta shcompactsymbol2,tr3	! { dg-error "PTA operand is a SHcompact symbol" }
+shmediasymbol1:
+	ptb shmediasymbol2,tr2		! { dg-error "PTB operand is a SHmedia symbol" }
+
+	.mode SHcompact
+shcompact:
+	nop
+	nop
+shcompactsymbol2:
+	nop
+	nop
+shcompactsymbol1:
+	nop
+	nop
+
+	.mode SHmedia
+shmedia:
+	nop
+shmediasymbol2:
+	nop
+	ptb shmediasymbol3,tr3		! { dg-error "PTB operand is a SHmedia symbol" }
+	nop
Index: gas/testsuite/gas/sh/sh64/err-ptb-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err-ptb-2.s
diff -N gas/testsuite/gas/sh/sh64/err-ptb-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err-ptb-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,34 @@
+! Check that PTB to a assembly-time-resolvable SHcompact operand gets an
+! error.  Mostly like err-ptb-1.s, except we also specify --no-expand.
+
+! { dg-do assemble }
+! { dg-options "--abi=32 --no-expand" }
+
+	.text
+	.mode SHmedia
+start:
+	ptb shmediasymbol1,tr1		! { dg-error "PTB operand is a SHmedia symbol" }
+shmediasymbol3:
+	ptb shcompactsymbol1,tr1
+	pta shcompactsymbol2,tr3	! { dg-error "PTA operand is a SHcompact symbol" }
+shmediasymbol1:
+	ptb shmediasymbol2,tr2		! { dg-error "PTB operand is a SHmedia symbol" }
+
+	.mode SHcompact
+shcompact:
+	nop
+	nop
+shcompactsymbol2:
+	nop
+	nop
+shcompactsymbol1:
+	nop
+	nop
+
+	.mode SHmedia
+shmedia:
+	nop
+shmediasymbol2:
+	nop
+	ptb shmediasymbol3,tr3		! { dg-error "PTB operand is a SHmedia symbol" }
+	nop
Index: gas/testsuite/gas/sh/sh64/err.exp
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/err.exp
diff -N gas/testsuite/gas/sh/sh64/err.exp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/err.exp 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,9 @@
+load_lib gas-dg.exp
+dg-init
+
+if [istarget sh64-*-*] then {
+    dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/warn-*.s]] "" "--isa=SHmedia"
+    dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/err-*.s]] "" "--isa=SHmedia"
+}
+
+dg-finish
Index: gas/testsuite/gas/sh/sh64/immexpr1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/immexpr1.s
diff -N gas/testsuite/gas/sh/sh64/immexpr1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/immexpr1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,85 @@
+! Check that immediate operands with expressions with differences between
+! local symbols work for other than 16-bit operands.
+
+	.text
+	.mode SHmedia
+start:
+	addi r50,.Lab500 - .Lab1,r40
+	addi r50,-(.Lab500 - .Lab1),r40
+	addi r50,(.Lab1000 - .Lab1)/2,r40
+	addi r50,(.Lab4000 - .Lab1)/8,r40
+	addi r50,-(.Lab1000 - .Lab1)/2,r40
+	addi r50,-(.Lab4000 - .Lab1)/8,r40
+	addi r50,.Lab500 - .Lab1 + 1,r40
+	addi r50,.Lab500 - .Lab1 + 2,r40
+	addi r50,-(.Lab500 - .Lab1 + 1),r40
+	addi r50,-(.Lab500 - .Lab1 + 2),r40
+	ld.uw r30,.Lab1000 - .Lab1,r40
+	ld.uw r30,.Lab500 - .Lab1 - 2,r40
+	ld.uw r30,.Lab500 - .Lab1 + 2,r40
+	ld.uw r50,(.Lab2000 - .Lab1)/2,r20
+	ld.uw r30,-(.Lab1000 - .Lab1),r40
+	ld.uw r30,-(.Lab500 - .Lab1 - 2),r40
+	ld.uw r30,-(.Lab500 - .Lab1 + 2),r40
+	ld.uw r50,-(.Lab2000 - .Lab1)/2,r20
+	ld.l r50,.Lab2000 - .Lab1,r20
+	ld.l r50,.Lab2000 - .Lab1 + 4,r20
+	ld.l r50,.Lab2000 - .Lab1 - 4,r20
+	ld.l r50,(.Lab4000 - .Lab1)/2,r20
+	ld.l r50,(.Lab4000 - .Lab1)/2 + 4,r20
+	ld.l r50,(.Lab4000 - .Lab1)/2 - 4,r20
+	ld.l r50,-(.Lab2000 - .Lab1),r20
+	ld.l r50,-(.Lab2000 - .Lab1 + 4),r20
+	ld.l r50,-(.Lab2000 - .Lab1 - 4),r20
+	ld.l r50,-(.Lab4000 - .Lab1)/2,r20
+	ld.l r50,-(.Lab4000 - .Lab1)/2 + 4,r20
+	ld.l r50,-(.Lab4000 - .Lab1)/2 - 4,r20
+	nop
+	addi r50,.Lab500t - .Lab1t,r40
+	addi r50,(.Lab1000t - .Lab1t)/2,r40
+	addi r50,(.Lab4000t - .Lab1t)/8,r40
+	addi r50,.Lab500t - .Lab1t + 1,r40
+	addi r50,.Lab500t - .Lab1t + 2,r40
+	ld.uw r30,.Lab1000t - .Lab1t,r40
+	ld.uw r30,.Lab500t - .Lab1t - 2,r40
+	ld.uw r30,.Lab500t - .Lab1t + 2,r40
+	ld.uw r50,(.Lab2000t - .Lab1t)/2,r20
+	ld.l r50,.Lab2000t - .Lab1t,r20
+	ld.l r50,.Lab2000t - .Lab1t + 4,r20
+	ld.l r50,.Lab2000t - .Lab1t - 4,r20
+	addi r50,.Lab500t - .Lab1t,r40
+	addi r50,-((.Lab1000t - .Lab1t)/2),r40
+	addi r50,-((.Lab4000t - .Lab1t)/8),r40
+	addi r50,-(.Lab500t - .Lab1t + 1),r40
+	addi r50,-(.Lab500t - .Lab1t + 2),r40
+	ld.uw r30,-(.Lab1000t - .Lab1t),r40
+	ld.uw r30,-(.Lab500t - .Lab1t - 2),r40
+	ld.uw r30,-(.Lab500t - .Lab1t + 2),r40
+	ld.uw r50,-((.Lab2000t - .Lab1t)/2),r20
+	ld.l r50,-(.Lab2000t - .Lab1t),r20
+	ld.l r50,-(.Lab2000t - .Lab1t + 4),r20
+	ld.l r50,-(.Lab2000t - .Lab1t - 4),r20
+	nop
+	.long 0
+.Lab1t:
+	.zero 500,0
+.Lab500t:
+	.zero 500,0
+.Lab1000t:
+	.zero 1000,0
+.Lab2000t:
+	.zero 2000,0
+.Lab4000t:
+
+	.data
+	.long 0
+.Lab1:
+	.zero 500,0
+.Lab500:
+	.zero 500,0
+.Lab1000:
+	.zero 1000,0
+.Lab2000:
+	.zero 2000,0
+.Lab4000:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/immexpr2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/immexpr2.s
diff -N gas/testsuite/gas/sh/sh64/immexpr2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/immexpr2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,16 @@
+! This expression and the associated resolved-expression case is new for SH64.
+
+	.data
+	.uaquad end-start
+	.uaquad .Lend-.Lstart
+
+	.text
+	.mode SHmedia
+start:
+	nop
+end:
+.Lstart:
+	nop
+	nop
+.Lend:
+
Index: gas/testsuite/gas/sh/sh64/immexpr32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/immexpr32-1.d
diff -N gas/testsuite/gas/sh/sh64/immexpr32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/immexpr32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,67 @@
+#as: --abi=32
+#objdump: -dr
+#source: immexpr1.s
+#name: Immediate resolved operands, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+4:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+8:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+c:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+10:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+14:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+18:[ 	]+d327d680[ 	]+addi	r50,501,r40
+[ 	]+1c:[ 	]+d327da80[ 	]+addi	r50,502,r40
+[ 	]+20:[ 	]+d3282e80[ 	]+addi	r50,-501,r40
+[ 	]+24:[ 	]+d3282a80[ 	]+addi	r50,-502,r40
+[ 	]+28:[ 	]+b1e7d280[ 	]+ld\.uw	r30,1000,r40
+[ 	]+2c:[ 	]+b1e3e680[ 	]+ld\.uw	r30,498,r40
+[ 	]+30:[ 	]+b1e3ee80[ 	]+ld\.uw	r30,502,r40
+[ 	]+34:[ 	]+b327d140[ 	]+ld\.uw	r50,1000,r20
+[ 	]+38:[ 	]+b1e83280[ 	]+ld\.uw	r30,-1000,r40
+[ 	]+3c:[ 	]+b1ec1e80[ 	]+ld\.uw	r30,-498,r40
+[ 	]+40:[ 	]+b1ec1680[ 	]+ld\.uw	r30,-502,r40
+[ 	]+44:[ 	]+b3283140[ 	]+ld\.uw	r50,-1000,r20
+[ 	]+48:[ 	]+8b27d140[ 	]+ld\.l	r50,2000,r20
+[ 	]+4c:[ 	]+8b27d540[ 	]+ld\.l	r50,2004,r20
+[ 	]+50:[ 	]+8b27cd40[ 	]+ld\.l	r50,1996,r20
+[ 	]+54:[ 	]+8b27d140[ 	]+ld\.l	r50,2000,r20
+[ 	]+58:[ 	]+8b27d540[ 	]+ld\.l	r50,2004,r20
+[ 	]+5c:[ 	]+8b27cd40[ 	]+ld\.l	r50,1996,r20
+[ 	]+60:[ 	]+8b283140[ 	]+ld\.l	r50,-2000,r20
+[ 	]+64:[ 	]+8b282d40[ 	]+ld\.l	r50,-2004,r20
+[ 	]+68:[ 	]+8b283540[ 	]+ld\.l	r50,-1996,r20
+[ 	]+6c:[ 	]+8b283140[ 	]+ld\.l	r50,-2000,r20
+[ 	]+70:[ 	]+8b283540[ 	]+ld\.l	r50,-1996,r20
+[ 	]+74:[ 	]+8b282d40[ 	]+ld\.l	r50,-2004,r20
+[ 	]+78:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+7c:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+80:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+84:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+88:[ 	]+d327d680[ 	]+addi	r50,501,r40
+[ 	]+8c:[ 	]+d327da80[ 	]+addi	r50,502,r40
+[ 	]+90:[ 	]+b1e7d280[ 	]+ld\.uw	r30,1000,r40
+[ 	]+94:[ 	]+b1e3e680[ 	]+ld\.uw	r30,498,r40
+[ 	]+98:[ 	]+b1e3ee80[ 	]+ld\.uw	r30,502,r40
+[ 	]+9c:[ 	]+b327d140[ 	]+ld\.uw	r50,1000,r20
+[ 	]+a0:[ 	]+8b27d140[ 	]+ld\.l	r50,2000,r20
+[ 	]+a4:[ 	]+8b27d540[ 	]+ld\.l	r50,2004,r20
+[ 	]+a8:[ 	]+8b27cd40[ 	]+ld\.l	r50,1996,r20
+[ 	]+ac:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+b0:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+b4:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+b8:[ 	]+d3282e80[ 	]+addi	r50,-501,r40
+[ 	]+bc:[ 	]+d3282a80[ 	]+addi	r50,-502,r40
+[ 	]+c0:[ 	]+b1e83280[ 	]+ld\.uw	r30,-1000,r40
+[ 	]+c4:[ 	]+b1ec1e80[ 	]+ld\.uw	r30,-498,r40
+[ 	]+c8:[ 	]+b1ec1680[ 	]+ld\.uw	r30,-502,r40
+[ 	]+cc:[ 	]+b3283140[ 	]+ld\.uw	r50,-1000,r20
+[ 	]+d0:[ 	]+8b283140[ 	]+ld\.l	r50,-2000,r20
+[ 	]+d4:[ 	]+8b282d40[ 	]+ld\.l	r50,-2004,r20
+[ 	]+d8:[ 	]+8b283540[ 	]+ld\.l	r50,-1996,r20
+[ 	]+dc:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]\.\.\.
Index: gas/testsuite/gas/sh/sh64/immexpr32-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/immexpr32-2.d
diff -N gas/testsuite/gas/sh/sh64/immexpr32-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/immexpr32-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,11 @@
+#as: --abi=32
+#objdump: -sr
+#source: immexpr2.s
+#name: Resolved 64-bit operand, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Contents of section \.text:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0           .*
+Contents of section .data:
+ 0000 00000000 00000004 00000000 00000008  .*
Index: gas/testsuite/gas/sh/sh64/immexpr64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/immexpr64-1.d
diff -N gas/testsuite/gas/sh/sh64/immexpr64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/immexpr64-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,68 @@
+#as: --abi=64
+#objdump: -dr
+#source: immexpr1.s
+#name: Immediate resolved operands, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+4:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+8:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+c:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+10:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+14:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+18:[ 	]+d327d680[ 	]+addi	r50,501,r40
+[ 	]+1c:[ 	]+d327da80[ 	]+addi	r50,502,r40
+[ 	]+20:[ 	]+d3282e80[ 	]+addi	r50,-501,r40
+[ 	]+24:[ 	]+d3282a80[ 	]+addi	r50,-502,r40
+[ 	]+28:[ 	]+b1e7d280[ 	]+ld\.uw	r30,1000,r40
+[ 	]+2c:[ 	]+b1e3e680[ 	]+ld\.uw	r30,498,r40
+[ 	]+30:[ 	]+b1e3ee80[ 	]+ld\.uw	r30,502,r40
+[ 	]+34:[ 	]+b327d140[ 	]+ld\.uw	r50,1000,r20
+[ 	]+38:[ 	]+b1e83280[ 	]+ld\.uw	r30,-1000,r40
+[ 	]+3c:[ 	]+b1ec1e80[ 	]+ld\.uw	r30,-498,r40
+[ 	]+40:[ 	]+b1ec1680[ 	]+ld\.uw	r30,-502,r40
+[ 	]+44:[ 	]+b3283140[ 	]+ld\.uw	r50,-1000,r20
+[ 	]+48:[ 	]+8b27d140[ 	]+ld\.l	r50,2000,r20
+[ 	]+4c:[ 	]+8b27d540[ 	]+ld\.l	r50,2004,r20
+[ 	]+50:[ 	]+8b27cd40[ 	]+ld\.l	r50,1996,r20
+[ 	]+54:[ 	]+8b27d140[ 	]+ld\.l	r50,2000,r20
+[ 	]+58:[ 	]+8b27d540[ 	]+ld\.l	r50,2004,r20
+[ 	]+5c:[ 	]+8b27cd40[ 	]+ld\.l	r50,1996,r20
+[ 	]+60:[ 	]+8b283140[ 	]+ld\.l	r50,-2000,r20
+[ 	]+64:[ 	]+8b282d40[ 	]+ld\.l	r50,-2004,r20
+[ 	]+68:[ 	]+8b283540[ 	]+ld\.l	r50,-1996,r20
+[ 	]+6c:[ 	]+8b283140[ 	]+ld\.l	r50,-2000,r20
+[ 	]+70:[ 	]+8b283540[ 	]+ld\.l	r50,-1996,r20
+[ 	]+74:[ 	]+8b282d40[ 	]+ld\.l	r50,-2004,r20
+[ 	]+78:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+7c:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+80:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+84:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+88:[ 	]+d327d680[ 	]+addi	r50,501,r40
+[ 	]+8c:[ 	]+d327da80[ 	]+addi	r50,502,r40
+[ 	]+90:[ 	]+b1e7d280[ 	]+ld\.uw	r30,1000,r40
+[ 	]+94:[ 	]+b1e3e680[ 	]+ld\.uw	r30,498,r40
+[ 	]+98:[ 	]+b1e3ee80[ 	]+ld\.uw	r30,502,r40
+[ 	]+9c:[ 	]+b327d140[ 	]+ld\.uw	r50,1000,r20
+[ 	]+a0:[ 	]+8b27d140[ 	]+ld\.l	r50,2000,r20
+[ 	]+a4:[ 	]+8b27d540[ 	]+ld\.l	r50,2004,r20
+[ 	]+a8:[ 	]+8b27cd40[ 	]+ld\.l	r50,1996,r20
+[ 	]+ac:[ 	]+d327d280[ 	]+addi	r50,500,r40
+[ 	]+b0:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+b4:[ 	]+d3283280[ 	]+addi	r50,-500,r40
+[ 	]+b8:[ 	]+d3282e80[ 	]+addi	r50,-501,r40
+[ 	]+bc:[ 	]+d3282a80[ 	]+addi	r50,-502,r40
+[ 	]+c0:[ 	]+b1e83280[ 	]+ld\.uw	r30,-1000,r40
+[ 	]+c4:[ 	]+b1ec1e80[ 	]+ld\.uw	r30,-498,r40
+[ 	]+c8:[ 	]+b1ec1680[ 	]+ld\.uw	r30,-502,r40
+[ 	]+cc:[ 	]+b3283140[ 	]+ld\.uw	r50,-1000,r20
+[ 	]+d0:[ 	]+8b283140[ 	]+ld\.l	r50,-2000,r20
+[ 	]+d4:[ 	]+8b282d40[ 	]+ld\.l	r50,-2004,r20
+[ 	]+d8:[ 	]+8b283540[ 	]+ld\.l	r50,-1996,r20
+[ 	]+dc:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]\.\.\.
+
Index: gas/testsuite/gas/sh/sh64/immexpr64-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/immexpr64-2.d
diff -N gas/testsuite/gas/sh/sh64/immexpr64-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/immexpr64-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,11 @@
+#as: --abi=64
+#objdump: -sr
+#source: immexpr2.s
+#name: Resolved 64-bit operand, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Contents of section \.text:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0           .*
+Contents of section .data:
+ 0000 00000000 00000004 00000000 00000008  .*
Index: gas/testsuite/gas/sh/sh64/lineno.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/lineno.d
diff -N gas/testsuite/gas/sh/sh64/lineno.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/lineno.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,19 @@
+#as: --abi=32 --isa=shmedia -gdwarf2
+#objdump: -dl
+#source: lineno.s
+#name: Dwarf2 line numbers vs macro opcodes
+
+.*:     file format .*-sh64
+
+Disassembly of section .text:
+
+[0]+ <start>:
+start.*:
+[	 ]+0:[	 ]+cc000410[	 ]+movi[	 ]+1,r1
+.*:4
+[	 ]+4:[	 ]+cc000410[	 ]+movi[	 ]+1,r1
+.*:5
+[	 ]+8:[	 ]+ca1a8010[	 ]+shori[	 ]+34464,r1
+[	 ]+c:[	 ]+6ff0fff0[	 ]+nop[	 ]*
+.*:6
+[	 ]+10:[	 ]+6ff0fff0[	 ]+nop[	 ]*
Index: gas/testsuite/gas/sh/sh64/lineno.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/lineno.s
diff -N gas/testsuite/gas/sh/sh64/lineno.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/lineno.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,7 @@
+	.text
+
+start:
+	movi	1,r1
+	movi	100000,r1
+	nop
+	nop
Index: gas/testsuite/gas/sh/sh64/localcom-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/localcom-1.d
diff -N gas/testsuite/gas/sh/sh64/localcom-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/localcom-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,30 @@
+#as: --abi=32
+#objdump: -srt
+#source: localcom-1.s
+#name: Datalabel on local comm symbol and equated local comm symbol
+
+.*:     file format .*-sh64
+
+SYMBOL TABLE:
+0+0 l    d  \.text	0+ 
+0+0 l    d  \.data	0+ 
+0+0 l    d  \.bss	0+ 
+0+0 l       \.text	0+ start
+0+c l     O \.bss	0+4 dd
+0+c l     O \.bss	0+4 d
+0+4 l     O \.bss	0+4 b
+0+0 l     O \.bss	0+4 a
+0+8 l     O \.bss	0+4 c
+
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+10 R_SH_DIR32        \.bss
+0+14 R_SH_DIR32        \.bss
+0+18 R_SH_DIR32        \.bss
+
+
+Contents of section \.text:
+ 0000 00090009 00090009 00090009 00090009  .*
+ 0010 00000004 00000004 0000000c 1234      .*
+Contents of section \.data:
Index: gas/testsuite/gas/sh/sh64/localcom-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/localcom-1.s
diff -N gas/testsuite/gas/sh/sh64/localcom-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/localcom-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,26 @@
+! The implicit equation from a datalabel to the main symbol was incorrect
+! at one time.  This is reasonably close to the original testcase.
+
+ .mode SHcompact
+start:
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ .set dd,d
+ .long   b
+ .long   datalabel b
+ .long   datalabel dd
+ .word   0x1234
+ .local  a
+ .comm   a,4,4
+ .local  b
+ .comm   b,4,4
+ .local  c
+ .comm   c,4,4
+ .local  d
+ .comm   d,4,4
Index: gas/testsuite/gas/sh/sh64/mix-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/mix-1.d
diff -N gas/testsuite/gas/sh/sh64/mix-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/mix-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,42 @@
+#as: --abi=32
+#objdump: -dr
+#name: Mixed-ISA objects.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+89 01       	bt	6 <forw>
+[ 	]+2:[ 	]+c7 00[ 	]+mova	4 <start2>,r0
+
+0+4 <start2>:
+[ 	]+4:[ 	]+00[ 	]+09       	nop	
+
+0+6 <forw>:
+[ 	]+6:[ 	]+00[ 	]+09       	nop	
+Disassembly of section \.text\.media:
+
+0+ <mediacode>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\+0xf*fffffffe
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\+0x2
+[ 	]+8:[ 	]+6bf56640[ 	]+ptrel/l	r25,tr4
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\+0xf*fffffffc
+[ 	]+10:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_LOW16_PCREL	\.text
+[ 	]+14:[ 	]+6bf56650[ 	]+ptrel/l	r25,tr5
+
+0+18 <mediacode2>:
+[ 	]+18:[ 	]+cc000360[ 	]+movi	0,r54
+[ 	]+18:[ 	]+R_SH_IMM_MEDLOW16	\.text\+0x4
+[ 	]+1c:[ 	]+c8000360[ 	]+shori	0,r54
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16	\.text\+0x4
+[ 	]+20:[ 	]+cc0002d0[ 	]+movi	0,r45
+[ 	]+20:[ 	]+R_SH_IMM_MEDLOW16	\.text\.media\+0x19
+[ 	]+24:[ 	]+c80002d0[ 	]+shori	0,r45
+[ 	]+24:[ 	]+R_SH_IMM_LOW16	\.text\.media\+0x19
+[ 	]+28:[ 	]+ebfff270[ 	]+pta/l	18 <mediacode2>,tr7
+[ 	]+2c:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/mix-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/mix-1.s
diff -N gas/testsuite/gas/sh/sh64/mix-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/mix-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,21 @@
+! Check mixed-mode objects; different sections holding different ISA:s.
+	.mode SHcompact
+	.text
+start:
+	bt forw
+	mova start2,r0
+start2:
+	nop
+forw:
+	nop
+
+	.section .text.media,"ax"
+	.mode SHmedia
+mediacode:
+	ptb forw,tr4
+	pt start2,tr5
+mediacode2:
+	movi start2,r54
+	movi mediacode2,r45
+	pta mediacode2,tr7
+	nop
Index: gas/testsuite/gas/sh/sh64/mix-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/mix-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/mix-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/mix-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,33 @@
+#as: --abi=32 -no-expand
+#objdump: -dr
+#source: mix-1.s
+#name: Mixed-ISA objects with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+89 01       	bt	6 <forw>
+[ 	]+2:[ 	]+c7 00[ 	]+mova	4 <start2>,r0
+
+0+4 <start2>:
+[ 	]+4:[ 	]+00[ 	]+09       	nop	
+
+0+6 <forw>:
+[ 	]+6:[ 	]+00[ 	]+09       	nop	
+Disassembly of section \.text\.media:
+
+0+ <mediacode>:
+[ 	]+0:[ 	]+ec000640[ 	]+ptb/l	4 <mediacode\+0x4>,tr4
+[ 	]+0:[ 	]+R_SH_PT_16[ 	]+\.text\+0x6
+[ 	]+4:[ 	]+e8000250[ 	]+pta/l	4 <mediacode\+0x4>,tr5
+[ 	]+4:[ 	]+R_SH_PT_16[ 	]+\.text\+0x4
+
+0+8 <mediacode2>:
+[ 	]+8:[ 	]+cc000360[ 	]+movi	0,r54
+[ 	]+8:[ 	]+R_SH_IMMS16[ 	]+\.text\+0x4
+[ 	]+c:[ 	]+cc0002d0[ 	]+movi	0,r45
+[ 	]+c:[ 	]+R_SH_IMMS16[ 	]+\.text\.media\+0x9
+[ 	]+10:[ 	]+ebfffa70[ 	]+pta/l	8 <mediacode2>,tr7
+[ 	]+14:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/movi-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi-1.s
diff -N gas/testsuite/gas/sh/sh64/movi-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,20 @@
+! Check MOVI expansion.  This one for the 32-bit subset.
+	.text
+start:
+	movi  externalsym + 123,r3
+	movi  65535,r3
+	movi  65536,r3
+	movi  65535 << 16,r3
+	movi  32767,r3
+	movi  32768,r3
+	movi  32767 << 16,r3
+	movi  -32768,r3
+	movi  -32769,r3
+	movi  -32768 << 16,r3
+	movi  localsym + 73,r4
+	movi  forwardsym - 42,r4
+	.set forwardsym,47
+
+	.data
+localsym:
+	.long 1
Index: gas/testsuite/gas/sh/sh64/movi-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi-2.s
diff -N gas/testsuite/gas/sh/sh64/movi-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,28 @@
+! Check MOVI expansion of local symbols that should get segment-relative
+! relocations.
+	.text
+start:
+	movi forw + 32,r33
+	movi forwdata + 40,r54
+	movi forwothertext + 44,r15
+forw:
+	movi forwotherdata + 48,r25
+
+	.data
+	.long 0		! To get a non-zero segment offset for "forwdata".
+forwdata:
+	.long 0
+
+	.section .text.other,"ax"
+forwdummylabel:		! Needed to hang a marker that this section is SHmedia.
+	nop
+	nop
+forwothertext:
+	nop
+
+	.section .data.other,"aw"
+	.long 0
+	.long 0
+forwotherdata:
+	.long 0
+
Index: gas/testsuite/gas/sh/sh64/movi-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi-3.d
diff -N gas/testsuite/gas/sh/sh64/movi-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi-3.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,18 @@
+#as: --abi=64
+#objdump: -dr
+#source: movi-3.s
+#name: Assembler PC-rel resolved negative MOVI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cef68040[ 	]+movi	-16992,r4
+[ 	]+4:[ 	]+cfffc050[ 	]+movi	-16,r5
+[ 	]+8:[ 	]+cffffc60[ 	]+movi	-1,r6
+[ 	]+c:[ 	]+cffffc70[ 	]+movi	-1,r7
+[ 	]+10:[ 	]+cffffc80[ 	]+movi	-1,r8
+[ 	]+14:[ 	]+cbfffc80[ 	]+shori	65535,r8
+[ 	]+18:[ 	]+cbffc080[ 	]+shori	65520,r8
+[ 	]+1c:[ 	]+caf68080[ 	]+shori	48544,r8
Index: gas/testsuite/gas/sh/sh64/movi-3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi-3.s
diff -N gas/testsuite/gas/sh/sh64/movi-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi-3.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! There was a bug with negative pc-relative numbers.
+	.mode SHmedia
+	.text
+start:
+	movi (start - 1000000 - end) & 65535,r4
+	movi ((start - 1000000 - end) >> 16) & 65535,r5
+	movi ((start - 1000000 - end) >> 32) & 65535,r6
+	movi ((start - 1000000 - end) >> 48) & 65535,r7
+	movi (start - 1000000 - end),r8
+end:
Index: gas/testsuite/gas/sh/sh64/movi32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi32-1.d
diff -N gas/testsuite/gas/sh/sh64/movi32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,35 @@
+#as: --isa=shmedia --abi=32
+#objdump: -dr
+#source: movi-1.s
+#name: MOVI expansion, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16	externalsym\+0x7b
+[ 	]+4:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+4:[ 	]+R_SH_IMM_LOW16	externalsym\+0x7b
+[ 	]+8:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+c:[ 	]+cbfffc30[ 	]+shori	65535,r3
+[ 	]+10:[ 	]+cc000430[ 	]+movi	1,r3
+[ 	]+14:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+18:[ 	]+cffffc30[ 	]+movi	-1,r3
+[ 	]+1c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+20:[ 	]+cdfffc30[ 	]+movi	32767,r3
+[ 	]+24:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+28:[ 	]+ca000030[ 	]+shori	32768,r3
+[ 	]+2c:[ 	]+cdfffc30[ 	]+movi	32767,r3
+[ 	]+30:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+34:[ 	]+ce000030[ 	]+movi	-32768,r3
+[ 	]+38:[ 	]+cffffc30[ 	]+movi	-1,r3
+[ 	]+3c:[ 	]+c9fffc30[ 	]+shori	32767,r3
+[ 	]+40:[ 	]+ce000030[ 	]+movi	-32768,r3
+[ 	]+44:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+48:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+48:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x49
+[ 	]+4c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+4c:[ 	]+R_SH_IMM_LOW16	\.data\+0x49
+[ 	]+50:[ 	]+cc001440[ 	]+movi	5,r4
Index: gas/testsuite/gas/sh/sh64/movi32-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi32-2.d
diff -N gas/testsuite/gas/sh/sh64/movi32-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi32-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,36 @@
+#as: --isa=shmedia --abi=32
+#objdump: -dr
+#source: movi-2.s
+#name: MOVI expansion of local symbols with relocs, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+cc000210[ 	]+movi	0,r33
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16	\.text\+0x39
+[ 	]+4:[ 	]+c8000210[ 	]+shori	0,r33
+[ 	]+4:[ 	]+R_SH_IMM_LOW16	\.text\+0x39
+[ 	]+8:[ 	]+cc000360[ 	]+movi	0,r54
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x2c
+[ 	]+c:[ 	]+c8000360[ 	]+shori	0,r54
+[ 	]+c:[ 	]+R_SH_IMM_LOW16	\.data\+0x2c
+[ 	]+10:[ 	]+cc0000f0[ 	]+movi	0,r15
+[ 	]+10:[ 	]+R_SH_IMM_MEDLOW16	\.text\.other\+0x35
+[ 	]+14:[ 	]+c80000f0[ 	]+shori	0,r15
+[ 	]+14:[ 	]+R_SH_IMM_LOW16	\.text\.other\+0x35
+
+0+18 <forw>:
+[ 	]+18:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_MEDLOW16	\.data\.other\+0x38
+[ 	]+1c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16	\.data\.other\+0x38
+Disassembly of section \.text\.other:
+
+0+ <forwdummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <forwothertext>:
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/movi32-noexp-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi32-noexp-2.d
diff -N gas/testsuite/gas/sh/sh64/movi32-noexp-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi32-noexp-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,28 @@
+#as: --isa=shmedia --abi=32 -no-expand
+#objdump: -dr
+#source: movi-2.s
+#name: MOVI non-expansion of local symbols with relocs, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+cc000210[ 	]+movi	0,r33
+[ 	]+0:[ 	]+R_SH_IMMS16	\.text\+0x2d
+[ 	]+4:[ 	]+cc000360[ 	]+movi	0,r54
+[ 	]+4:[ 	]+R_SH_IMMS16	\.data\+0x2c
+[ 	]+8:[ 	]+cc0000f0[ 	]+movi	0,r15
+[ 	]+8:[ 	]+R_SH_IMMS16	\.text\.other\+0x35
+
+0+c <forw>:
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMMS16	\.data\.other\+0x38
+Disassembly of section \.text\.other:
+
+0+ <forwdummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <forwothertext>:
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/movi64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi64-1.d
diff -N gas/testsuite/gas/sh/sh64/movi64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi64-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,44 @@
+#as: --isa=shmedia --abi=64
+#objdump: -dr
+#source: movi-1.s
+#name: MOVI expansion, 64-bit ABI, 32-bit subset.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+0:[ 	]+R_SH_IMM_HI16	externalsym\+0x7b
+[ 	]+4:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+4:[ 	]+R_SH_IMM_MEDHI16	externalsym\+0x7b
+[ 	]+8:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16	externalsym\+0x7b
+[ 	]+c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+c:[ 	]+R_SH_IMM_LOW16	externalsym\+0x7b
+[ 	]+10:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+14:[ 	]+cbfffc30[ 	]+shori	65535,r3
+[ 	]+18:[ 	]+cc000430[ 	]+movi	1,r3
+[ 	]+1c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+20:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+24:[ 	]+cbfffc30[ 	]+shori	65535,r3
+[ 	]+28:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+2c:[ 	]+cdfffc30[ 	]+movi	32767,r3
+[ 	]+30:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+34:[ 	]+ca000030[ 	]+shori	32768,r3
+[ 	]+38:[ 	]+cdfffc30[ 	]+movi	32767,r3
+[ 	]+3c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+40:[ 	]+ce000030[ 	]+movi	-32768,r3
+[ 	]+44:[ 	]+cffffc30[ 	]+movi	-1,r3
+[ 	]+48:[ 	]+c9fffc30[ 	]+shori	32767,r3
+[ 	]+4c:[ 	]+ce000030[ 	]+movi	-32768,r3
+[ 	]+50:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+54:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+54:[ 	]+R_SH_IMM_HI16	\.data\+0x49
+[ 	]+58:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+58:[ 	]+R_SH_IMM_MEDHI16	\.data\+0x49
+[ 	]+5c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+5c:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x49
+[ 	]+60:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+60:[ 	]+R_SH_IMM_LOW16	\.data\+0x49
+[ 	]+64:[ 	]+cc001440[ 	]+movi	5,r4
Index: gas/testsuite/gas/sh/sh64/movi64-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi64-2.d
diff -N gas/testsuite/gas/sh/sh64/movi64-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi64-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,30 @@
+#as: --isa=shmedia --abi=64
+#objdump: -dr
+#name: MOVI expansion, 64-bit ABI, 64-bit subset.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000430[ 	]+movi	1,r3
+[ 	]+4:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+8:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+c:[ 	]+cffffc30[ 	]+movi	-1,r3
+[ 	]+10:[ 	]+c9fffc30[ 	]+shori	32767,r3
+[ 	]+14:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+18:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+1c:[ 	]+ca000030[ 	]+shori	32768,r3
+[ 	]+20:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+24:[ 	]+cdfffc30[ 	]+movi	32767,r3
+[ 	]+28:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+2c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+30:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+34:[ 	]+ce000030[ 	]+movi	-32768,r3
+[ 	]+38:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+3c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+40:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+44:[ 	]+ce000030[ 	]+movi	-32768,r3
+[ 	]+48:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+4c:[ 	]+c8000030[ 	]+shori	0,r3
+[ 	]+50:[ 	]+c8000030[ 	]+shori	0,r3
Index: gas/testsuite/gas/sh/sh64/movi64-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi64-2.s
diff -N gas/testsuite/gas/sh/sh64/movi64-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi64-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,10 @@
+! Check MOVI expansion.  This one for the 64-bit ABI only.
+	.text
+start:
+	movi  65536 << 16,r3
+	movi  -32769 << 16,r3
+	movi  32768 << 16,r3
+	movi  32767 << 48,r3
+	movi  32768 << 48,r3	! Perhaps a warning on this or the next,
+	movi  -32768 << 48,r3	! for being out of range?
+
Index: gas/testsuite/gas/sh/sh64/movi64-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi64-3.d
diff -N gas/testsuite/gas/sh/sh64/movi64-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi64-3.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,52 @@
+#as: --isa=shmedia --abi=64
+#objdump: -dr
+#source: movi-2.s
+#name: MOVI expansion of local symbols with relocs, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+cc000210[ 	]+movi	0,r33
+[ 	]+0:[ 	]+R_SH_IMM_HI16	\.text\+0x51
+[ 	]+4:[ 	]+c8000210[ 	]+shori	0,r33
+[ 	]+4:[ 	]+R_SH_IMM_MEDHI16	\.text\+0x51
+[ 	]+8:[ 	]+c8000210[ 	]+shori	0,r33
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16	\.text\+0x51
+[ 	]+c:[ 	]+c8000210[ 	]+shori	0,r33
+[ 	]+c:[ 	]+R_SH_IMM_LOW16	\.text\+0x51
+[ 	]+10:[ 	]+cc000360[ 	]+movi	0,r54
+[ 	]+10:[ 	]+R_SH_IMM_HI16	\.data\+0x2c
+[ 	]+14:[ 	]+c8000360[ 	]+shori	0,r54
+[ 	]+14:[ 	]+R_SH_IMM_MEDHI16	\.data\+0x2c
+[ 	]+18:[ 	]+c8000360[ 	]+shori	0,r54
+[ 	]+18:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x2c
+[ 	]+1c:[ 	]+c8000360[ 	]+shori	0,r54
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16	\.data\+0x2c
+[ 	]+20:[ 	]+cc0000f0[ 	]+movi	0,r15
+[ 	]+20:[ 	]+R_SH_IMM_HI16	\.text\.other\+0x35
+[ 	]+24:[ 	]+c80000f0[ 	]+shori	0,r15
+[ 	]+24:[ 	]+R_SH_IMM_MEDHI16	\.text\.other\+0x35
+[ 	]+28:[ 	]+c80000f0[ 	]+shori	0,r15
+[ 	]+28:[ 	]+R_SH_IMM_MEDLOW16	\.text\.other\+0x35
+[ 	]+2c:[ 	]+c80000f0[ 	]+shori	0,r15
+[ 	]+2c:[ 	]+R_SH_IMM_LOW16	\.text\.other\+0x35
+
+0+30 <forw>:
+[ 	]+30:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+30:[ 	]+R_SH_IMM_HI16	\.data\.other\+0x38
+[ 	]+34:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+34:[ 	]+R_SH_IMM_MEDHI16	\.data\.other\+0x38
+[ 	]+38:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+38:[ 	]+R_SH_IMM_MEDLOW16	\.data\.other\+0x38
+[ 	]+3c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+3c:[ 	]+R_SH_IMM_LOW16	\.data\.other\+0x38
+Disassembly of section \.text\.other:
+
+0+ <forwdummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <forwothertext>:
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/movi64-noexp-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/movi64-noexp-2.d
diff -N gas/testsuite/gas/sh/sh64/movi64-noexp-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/movi64-noexp-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,28 @@
+#as: --isa=shmedia --abi=64 -no-expand
+#objdump: -dr
+#source: movi-2.s
+#name: MOVI non-expansion of local symbols with relocs, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+cc000210[ 	]+movi	0,r33
+[ 	]+0:[ 	]+R_SH_IMMS16	\.text\+0x2d
+[ 	]+4:[ 	]+cc000360[ 	]+movi	0,r54
+[ 	]+4:[ 	]+R_SH_IMMS16	\.data\+0x2c
+[ 	]+8:[ 	]+cc0000f0[ 	]+movi	0,r15
+[ 	]+8:[ 	]+R_SH_IMMS16	\.text\.other\+0x35
+
+0+c <forw>:
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMMS16	\.data\.other\+0x38
+Disassembly of section \.text\.other:
+
+0+ <forwdummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <forwothertext>:
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt-1.d
diff -N gas/testsuite/gas/sh/sh64/pt-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,26 @@
+#as: --isa=shmedia
+#objdump: -dr
+#name: Basic SHmedia PT and PTA instructions.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+e8000a70[ 	]+pta/l	18 <start2>,tr7
+[ 	]+14:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+18 <start2>:
+[ 	]+18:[ 	]+e8000a40[ 	]+pta/l	20 <start3>,tr4
+[ 	]+1c:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+20 <start3>:
+[ 	]+20:[ 	]+ebffea30[ 	]+pta/l	8 <start4>,tr3
+[ 	]+24:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt-1.s
diff -N gas/testsuite/gas/sh/sh64/pt-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,17 @@
+! Check simple use of PT/PTA.
+	.text
+start:
+	nop
+start1:
+	nop
+start4:
+	pt start1,tr5
+	nop
+	pt start2,tr7
+	nop
+start2:
+	pta start3,tr4
+	nop
+start3:
+	pta start4,tr3
+	nop
Index: gas/testsuite/gas/sh/sh64/pt-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt-2.s
diff -N gas/testsuite/gas/sh/sh64/pt-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,22 @@
+! Check inter-segment pt and pta
+	.text
+start:
+	nop
+start1:
+	nop
+start4:
+	pt start1,tr5
+	nop
+
+	pt start2,tr7
+	nop
+
+	.section .text.other,"ax"
+dummylabel:	! Needed to hang a marker that this is SHmedia.
+	nop
+start2:
+	pta start3,tr4
+	nop
+start3:
+	pta start4,tr3
+	nop
Index: gas/testsuite/gas/sh/sh64/pt-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/pt-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,27 @@
+#as: --isa=shmedia -no-expand
+#objdump: -dr
+#source: pt-1.s
+#name: Basic SHmedia PT and PTA instructions with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+e8000a70[ 	]+pta/l	18 <start2>,tr7
+[ 	]+14:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+18 <start2>:
+[ 	]+18:[ 	]+e8000a40[ 	]+pta/l	20 <start3>,tr4
+[ 	]+1c:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+20 <start3>:
+[ 	]+20:[ 	]+ebffea30[ 	]+pta/l	8 <start4>,tr3
+[ 	]+24:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt32-1.d
diff -N gas/testsuite/gas/sh/sh64/pt32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,39 @@
+#as: --isa=shmedia -abi=32
+#objdump: -dr
+#source: pt-2.s
+#name: Inter-segment PT, 32-bit.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+0+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\.other\+0xf*fffffffd
+[ 	]+14:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+14:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\.other\+0x1
+[ 	]+18:[ 	]+6bf56670[ 	]+ptrel/l	r25,tr7
+[ 	]+1c:[ 	]+6ff0fff0[ 	]+nop	
+Disassembly of section \.text\.other:
+
+0+ <dummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+e8000a40[ 	]+pta/l	c <start3>,tr4
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
+
+0+c <start3>:
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\+0x1
+[ 	]+10:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\+0x5
+[ 	]+14:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+18:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt32-noexp-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt32-noexp-2.d
diff -N gas/testsuite/gas/sh/sh64/pt32-noexp-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt32-noexp-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,34 @@
+#as: --isa=shmedia -abi=32 -no-expand
+#objdump: -dr
+#source: pt-2.s
+#name: Inter-segment PT, 32-bit with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+0+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+e8000270[ 	]+pta/l	10 <start4\+0x8>,tr7
+[ 	]+10:[ 	]+R_SH_PT_16	\.text\.other\+0x5
+[ 	]+14:[ 	]+6ff0fff0[ 	]+nop	
+
+Disassembly of section \.text\.other:
+
+0+ <dummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+e8000a40[ 	]+pta/l	c <start3>,tr4
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
+
+0+c <start3>:
+[ 	]+c:[ 	]+e8000630[ 	]+pta/l	10 <start3\+0x4>,tr3
+[ 	]+c:[ 	]R_SH_PT_16	\.text\+0x9
+[ 	]+10:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt64-1.d
diff -N gas/testsuite/gas/sh/sh64/pt64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt64-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,47 @@
+#as: --isa=shmedia -abi=64
+#objdump: -dr
+#source: pt-2.s
+#name: Inter-segment PT, 64-bit.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+0+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_HI16_PCREL	\.text\.other\+0xfffffffffffffff5
+[ 	]+14:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+14:[ 	]+R_SH_IMM_MEDHI16_PCREL	\.text\.other\+0xfffffffffffffff9
+[ 	]+18:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\.other\+0xfffffffffffffffd
+[ 	]+1c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\.other\+0x1
+[ 	]+20:[ 	]+6bf56670[ 	]+ptrel/l	r25,tr7
+[ 	]+24:[ 	]+6ff0fff0[ 	]+nop	
+Disassembly of section \.text\.other:
+
+0+ <dummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+e8000a40[ 	]+pta/l	c <start3>,tr4
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
+
+0+c <start3>:
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_HI16_PCREL	\.text\+0xfffffffffffffff9
+[ 	]+10:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_MEDHI16_PCREL	\.text\+0xfffffffffffffffd
+[ 	]+14:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+14:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\+0x1
+[ 	]+18:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\+0x5
+[ 	]+1c:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+20:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt64-32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt64-32-1.d
diff -N gas/testsuite/gas/sh/sh64/pt64-32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt64-32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,27 @@
+#as: --isa=shmedia -expand-pt32
+#objdump: -dr
+#source: pt-1.s
+#name: Basic SHmedia PT and PTA instructions with -expand-pt32.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+e8000a70[ 	]+pta/l	18 <start2>,tr7
+[ 	]+14:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+18 <start2>:
+[ 	]+18:[ 	]+e8000a40[ 	]+pta/l	20 <start3>,tr4
+[ 	]+1c:[ 	]+6ff0fff0[ 	]+nop	
+
+[0]+20 <start3>:
+[ 	]+20:[ 	]+ebffea30[ 	]+pta/l	8 <start4>,tr3
+[ 	]+24:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt64-32-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt64-32-2.d
diff -N gas/testsuite/gas/sh/sh64/pt64-32-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt64-32-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,39 @@
+#as: --isa=shmedia -abi=64 -expand-pt32
+#objdump: -dr
+#source: pt-2.s
+#name: Inter-segment PT, 64-bit with -expand-pt32.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+0+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\.other\+0xfffffffffffffffd
+[ 	]+14:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+14:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\.other\+0x1
+[ 	]+18:[ 	]+6bf56670[ 	]+ptrel/l	r25,tr7
+[ 	]+1c:[ 	]+6ff0fff0[ 	]+nop	
+Disassembly of section \.text\.other:
+
+0+ <dummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+e8000a40[ 	]+pta/l	c <start3>,tr4
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
+
+0+c <start3>:
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\.text\+0x1
+[ 	]+10:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_LOW16_PCREL	\.text\+0x5
+[ 	]+14:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+18:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/pt64-noexp-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/pt64-noexp-2.d
diff -N gas/testsuite/gas/sh/sh64/pt64-noexp-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/pt64-noexp-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,34 @@
+#as: --isa=shmedia -abi=64 -no-expand
+#objdump: -dr
+#source: pt-2.s
+#name: Inter-segment PT, 64-bit with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+0+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start1>:
+[ 	]+4:[ 	]+6ff0fff0[ 	]+nop	
+
+0+8 <start4>:
+[ 	]+8:[ 	]+ebfffe50[ 	]+pta/l	4 <start1>,tr5
+[ 	]+c:[ 	]+6ff0fff0[ 	]+nop	
+[ 	]+10:[ 	]+e8000270[ 	]+pta/l	10 <start4\+0x8>,tr7
+[ 	]+10:[ 	]+R_SH_PT_16	\.text\.other\+0x5
+[ 	]+14:[ 	]+6ff0fff0[ 	]+nop	
+
+Disassembly of section \.text\.other:
+
+0+ <dummylabel>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+e8000a40[ 	]+pta/l	c <start3>,tr4
+[ 	]+8:[ 	]+6ff0fff0[ 	]+nop	
+
+0+c <start3>:
+[ 	]+c:[ 	]+e8000630[ 	]+pta/l	10 <start3\+0x4>,tr3
+[ 	]+c:[ 	]R_SH_PT_16	\.text\+0x9
+[ 	]+10:[ 	]+6ff0fff0[ 	]+nop	
Index: gas/testsuite/gas/sh/sh64/ptc-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptc-1.s
diff -N gas/testsuite/gas/sh/sh64/ptc-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptc-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,5 @@
+! Check that simple constants get expected results.
+	.mode SHmedia
+	.text
+start:
+	pta 0x100, tr1
Index: gas/testsuite/gas/sh/sh64/ptc32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptc32-1.d
diff -N gas/testsuite/gas/sh/sh64/ptc32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptc32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,15 @@
+#as: --abi=32
+#objdump: -dr
+#source: ptc-1.s
+#name: PT constant, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\*ABS\*\+0xf8
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_LOW16_PCREL	\*ABS\*\+0xfc
+[ 	]+8:[ 	]+6bf56610[ 	]+ptrel/l	r25,tr1
Index: gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,12 @@
+#as: --abi=32 -no-expand
+#objdump: -dr
+#source: ptc-1.s
+#name: PT constant, 32-bit ABI with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+e8000610[ 	]+pta/l	4 <\*ABS\*\+0x4>,tr1
+[ 	]+0:[ 	]+R_SH_PT_16	\*ABS\*\+0x100
Index: gas/testsuite/gas/sh/sh64/ptc64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptc64-1.d
diff -N gas/testsuite/gas/sh/sh64/ptc64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptc64-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,19 @@
+#as: --abi=64
+#objdump: -dr
+#source: ptc-1.s
+#name: PT constant, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+0+ <start>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_HI16_PCREL	\*ABS\*\+0xf0
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_MEDHI16_PCREL	\*ABS\*\+0xf4
+[ 	]+8:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\*ABS\*\+0xf8
+[ 	]+c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_LOW16_PCREL	\*ABS\*\+0xfc
+[ 	]+10:[ 	]+6bf56610[ 	]+ptrel/l	r25,tr1
Index: gas/testsuite/gas/sh/sh64/ptc64-32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptc64-32-1.d
diff -N gas/testsuite/gas/sh/sh64/ptc64-32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptc64-32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,15 @@
+#as: --abi=64 -expand-pt32
+#objdump: -dr
+#source: ptc-1.s
+#name: PT constant, 64-bit ABI with -expand-pt32.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16_PCREL	\*ABS\*\+0xf8
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_LOW16_PCREL	\*ABS\*\+0xfc
+[ 	]+8:[ 	]+6bf56610[ 	]+ptrel/l	r25,tr1
Index: gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,13 @@
+#as: --abi=64 -no-expand
+#objdump: -dr
+#source: ptc-1.s
+#name: PT constant, 64-bit ABI with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+e8000610[ 	]+pta/l	4 <\*ABS\*\+0x4>,tr1
+[ 	]+0:[ 	]+R_SH_PT_16	\*ABS\*\+0x100
+
Index: gas/testsuite/gas/sh/sh64/ptext-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptext-1.s
diff -N gas/testsuite/gas/sh/sh64/ptext-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptext-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,8 @@
+! PT, PTA, PTB expansion for external symbols.
+start:
+	pt	externalsym1 + 40,tr5
+	pta	externalsym2 + 44,tr4
+	ptb	externalsym3 + 48,tr3
+	pt/u	externalsym4 + 52,tr5
+	pta/u	externalsym5 + 56,tr4
+	ptb/u	externalsym6 + 60,tr3
Index: gas/testsuite/gas/sh/sh64/ptext32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptext32-1.d
diff -N gas/testsuite/gas/sh/sh64/ptext32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptext32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,40 @@
+#as: --isa=shmedia --abi=32
+#source: ptext-1.s
+#objdump: -dr
+#name: PT, PTA, PTB expansion for external symbols, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym1\+0x20
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym1\+0x24
+[ 	]+8:[ 	]+6bf56650[ 	]+ptrel/l	r25,tr5
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym2\+0x24
+[ 	]+10:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym2\+0x28
+[ 	]+14:[ 	]+6bf56640[ 	]+ptrel/l	r25,tr4
+[ 	]+18:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym3\+0x28
+[ 	]+1c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym3\+0x2c
+[ 	]+20:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+24:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+24:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym4\+0x2c
+[ 	]+28:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+28:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym4\+0x30
+[ 	]+2c:[ 	]+6bf56450[ 	]+ptrel/u	r25,tr5
+[ 	]+30:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+30:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym5\+0x30
+[ 	]+34:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+34:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym5\+0x34
+[ 	]+38:[ 	]+6bf56440[ 	]+ptrel/u	r25,tr4
+[ 	]+3c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+3c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym6\+0x34
+[ 	]+40:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+40:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym6\+0x38
+[ 	]+44:[ 	]+6bf56430[ 	]+ptrel/u	r25,tr3
Index: gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,22 @@
+#as: --isa=shmedia --abi=32 -no-expand
+#source: ptext-1.s
+#objdump: -dr
+#name: PT, PTA, PTB non-expansion for external symbols, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+e8000250[ 	]+pta/l	0 <start>,tr5
+[ 	]+0:[ 	]+R_SH_PT_16	externalsym1\+0x28
+[ 	]+4:[ 	]+e8000640[ 	]+pta/l	8 <start\+0x8>,tr4
+[ 	]+4:[ 	]+R_SH_PT_16	externalsym2\+0x2c
+[ 	]+8:[ 	]+ec000630[ 	]+ptb/l	c <start\+0xc>,tr3
+[ 	]+8:[ 	]+R_SH_PT_16	externalsym3\+0x30
+[ 	]+c:[ 	]+e8000050[ 	]+pta/u	c <start\+0xc>,tr5
+[ 	]+c:[ 	]+R_SH_PT_16	externalsym4\+0x34
+[ 	]+10:[ 	]+e8000440[ 	]+pta/u	14 <start\+0x14>,tr4
+[ 	]+10:[ 	]+R_SH_PT_16	externalsym5\+0x38
+[ 	]+14:[ 	]+ec000430[ 	]+ptb/u	18 <start\+0x18>,tr3
+[ 	]+14:[ 	]+R_SH_PT_16	externalsym6\+0x3c
Index: gas/testsuite/gas/sh/sh64/ptext64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptext64-1.d
diff -N gas/testsuite/gas/sh/sh64/ptext64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptext64-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,64 @@
+#as: --isa=shmedia --abi=64
+#source: ptext-1.s
+#objdump: -dr
+#name: PT, PTA, PTB expansion for external symbols, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_HI16_PCREL	externalsym1\+0x18
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_MEDHI16_PCREL	externalsym1\+0x1c
+[ 	]+8:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym1\+0x20
+[ 	]+c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym1\+0x24
+[ 	]+10:[ 	]+6bf56650[ 	]+ptrel/l	r25,tr5
+[ 	]+14:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+14:[ 	]+R_SH_IMM_HI16_PCREL	externalsym2\+0x1c
+[ 	]+18:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_MEDHI16_PCREL	externalsym2\+0x20
+[ 	]+1c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+1c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym2\+0x24
+[ 	]+20:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+20:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym2\+0x28
+[ 	]+24:[ 	]+6bf56640[ 	]+ptrel/l	r25,tr4
+[ 	]+28:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+28:[ 	]+R_SH_IMM_HI16_PCREL	externalsym3\+0x20
+[ 	]+2c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+2c:[ 	]+R_SH_IMM_MEDHI16_PCREL	externalsym3\+0x24
+[ 	]+30:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+30:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym3\+0x28
+[ 	]+34:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+34:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym3\+0x2c
+[ 	]+38:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+3c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+3c:[ 	]+R_SH_IMM_HI16_PCREL	externalsym4\+0x24
+[ 	]+40:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+40:[ 	]+R_SH_IMM_MEDHI16_PCREL	externalsym4\+0x28
+[ 	]+44:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+44:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym4\+0x2c
+[ 	]+48:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+48:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym4\+0x30
+[ 	]+4c:[ 	]+6bf56450[ 	]+ptrel/u	r25,tr5
+[ 	]+50:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+50:[ 	]+R_SH_IMM_HI16_PCREL	externalsym5\+0x28
+[ 	]+54:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+54:[ 	]+R_SH_IMM_MEDHI16_PCREL	externalsym5\+0x2c
+[ 	]+58:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+58:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym5\+0x30
+[ 	]+5c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+5c:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym5\+0x34
+[ 	]+60:[ 	]+6bf56440[ 	]+ptrel/u	r25,tr4
+[ 	]+64:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+64:[ 	]+R_SH_IMM_HI16_PCREL	externalsym6\+0x2c
+[ 	]+68:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+68:[ 	]+R_SH_IMM_MEDHI16_PCREL	externalsym6\+0x30
+[ 	]+6c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+6c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym6\+0x34
+[ 	]+70:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+70:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym6\+0x38
+[ 	]+74:[ 	]+6bf56430[ 	]+ptrel/u	r25,tr3
Index: gas/testsuite/gas/sh/sh64/ptext64-32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptext64-32-1.d
diff -N gas/testsuite/gas/sh/sh64/ptext64-32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptext64-32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,40 @@
+#as: --isa=shmedia --abi=64 -expand-pt32
+#source: ptext-1.s
+#objdump: -dr
+#name: PT, PTA, PTB expansion for external symbols, 64-bit ABI with -expand-pt32.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+0:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym1\+0x20
+[ 	]+4:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+4:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym1\+0x24
+[ 	]+8:[ 	]+6bf56650[ 	]+ptrel/l	r25,tr5
+[ 	]+c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym2\+0x24
+[ 	]+10:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+10:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym2\+0x28
+[ 	]+14:[ 	]+6bf56640[ 	]+ptrel/l	r25,tr4
+[ 	]+18:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+18:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym3\+0x28
+[ 	]+1c:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym3\+0x2c
+[ 	]+20:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+[ 	]+24:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+24:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym4\+0x2c
+[ 	]+28:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+28:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym4\+0x30
+[ 	]+2c:[ 	]+6bf56450[ 	]+ptrel/u	r25,tr5
+[ 	]+30:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+30:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym5\+0x30
+[ 	]+34:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+34:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym5\+0x34
+[ 	]+38:[ 	]+6bf56440[ 	]+ptrel/u	r25,tr4
+[ 	]+3c:[ 	]+cc000190[ 	]+movi	0,r25
+[ 	]+3c:[ 	]+R_SH_IMM_MEDLOW16_PCREL	externalsym6\+0x34
+[ 	]+40:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+40:[ 	]+R_SH_IMM_LOW16_PCREL	externalsym6\+0x38
+[ 	]+44:[ 	]+6bf56430[ 	]+ptrel/u	r25,tr3
Index: gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d
diff -N gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,22 @@
+#as: --isa=shmedia --abi=64 -no-expand
+#source: ptext-1.s
+#objdump: -dr
+#name: PT, PTA, PTB non-expansion for external symbols, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+e8000250[ 	]+pta/l	0 <start>,tr5
+[ 	]+0:[ 	]+R_SH_PT_16	externalsym1\+0x28
+[ 	]+4:[ 	]+e8000640[ 	]+pta/l	8 <start\+0x8>,tr4
+[ 	]+4:[ 	]+R_SH_PT_16	externalsym2\+0x2c
+[ 	]+8:[ 	]+ec000630[ 	]+ptb/l	c <start\+0xc>,tr3
+[ 	]+8:[ 	]+R_SH_PT_16	externalsym3\+0x30
+[ 	]+c:[ 	]+e8000050[ 	]+pta/u	c <start\+0xc>,tr5
+[ 	]+c:[ 	]+R_SH_PT_16	externalsym4\+0x34
+[ 	]+10:[ 	]+e8000440[ 	]+pta/u	14 <start\+0x14>,tr4
+[ 	]+10:[ 	]+R_SH_PT_16	externalsym5\+0x38
+[ 	]+14:[ 	]+ec000430[ 	]+ptb/u	18 <start\+0x18>,tr3
+[ 	]+14:[ 	]+R_SH_PT_16	externalsym6\+0x3c
Index: gas/testsuite/gas/sh/sh64/rel-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel-1.s
diff -N gas/testsuite/gas/sh/sh64/rel-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel-1.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,137 @@
+! Test pc-relative relocations in MOVI and MOVI expansion.
+
+	.mode SHmedia
+	.text
+start:
+	movi data1 - datalabel $,r10
+	movi (data2 - datalabel $) & 65535,r10
+	movi ((data3 - datalabel $) >> 0) & 65535,r10
+	movi ((data4 - datalabel $) >> 16) & 65535,r10
+	movi data5 + 8 - datalabel $,r10
+	movi (data6 + 16 - datalabel $) & 65535,r10
+	movi ((data7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((data8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi othertext1 - datalabel $,r10
+	movi (othertext2 - datalabel $) & 65535,r10
+	movi ((othertext3 - datalabel $) >> 0) & 65535,r10
+	movi ((othertext4 - datalabel $) >> 16) & 65535,r10
+	movi othertext5 + 8 - datalabel $,r10
+	movi (othertext6 + 16 - datalabel $) & 65535,r10
+	movi ((othertext7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((othertext8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi extern1 - datalabel $,r10
+	movi (extern2 - datalabel $) & 65535,r10
+	movi ((extern3 - datalabel $) >> 0) & 65535,r10
+	movi ((extern4 - datalabel $) >> 16) & 65535,r10
+	movi extern5 + 8 - datalabel $,r10
+	movi (extern6 + 16 - datalabel $) & 65535,r10
+	movi ((extern7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((extern8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi gdata1 - datalabel $,r10
+	movi (gdata2 - datalabel $) & 65535,r10
+	movi ((gdata3 - datalabel $) >> 0) & 65535,r10
+	movi ((gdata4 - datalabel $) >> 16) & 65535,r10
+	movi gdata5 + 8 - datalabel $,r10
+	movi (gdata6 + 16 - datalabel $) & 65535,r10
+	movi ((gdata7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((gdata8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi gothertext1 - datalabel $,r10
+	movi (gothertext2 - datalabel $) & 65535,r10
+	movi ((gothertext3 - datalabel $) >> 0) & 65535,r10
+	movi ((gothertext4 - datalabel $) >> 16) & 65535,r10
+	movi gothertext5 + 8 - datalabel $,r10
+	movi (gothertext6 + 16 - datalabel $) & 65535,r10
+	movi ((gothertext7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((gothertext8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	.section .othertext,"ax"
+x:
+	nop
+othertext1:
+	nop
+othertext2:
+	nop
+othertext3:
+	nop
+othertext4:
+	nop
+othertext5:
+	nop
+othertext6:
+	nop
+othertext7:
+	nop
+othertext8:
+	nop
+	.global gothertext1
+gothertext1:
+	nop
+	.global gothertext2
+gothertext2:
+	nop
+	.global gothertext3
+gothertext3:
+	nop
+	.global gothertext4
+gothertext4:
+	nop
+	.global gothertext5
+gothertext5:
+	nop
+	.global gothertext6
+gothertext6:
+	nop
+	.global gothertext7
+gothertext7:
+	nop
+	.global gothertext8
+gothertext8:
+	nop
+
+	.data
+y:
+	.long 0
+data1:
+	.long 0
+data2:
+	.long 0
+data3:
+	.long 0
+data4:
+	.long 0
+data5:
+	.long 0
+data6:
+	.long 0
+data7:
+	.long 0
+data8:
+	.long 0
+	.global gdata1
+gdata1:
+	.long 0
+	.global gdata2
+gdata2:
+	.long 0
+	.global gdata3
+gdata3:
+	.long 0
+	.global gdata4
+gdata4:
+	.long 0
+	.global gdata5
+gdata5:
+	.long 0
+	.global gdata6
+gdata6:
+	.long 0
+	.global gdata7
+gdata7:
+	.long 0
+	.global gdata8
+gdata8:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/rel-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel-2.s
diff -N gas/testsuite/gas/sh/sh64/rel-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel-2.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,138 @@
+! Like rel-1.s, but using "$", not "datalabel $" as self expression.  It's
+! not as useful, but should emit the obvious output.
+
+	.mode SHmedia
+	.text
+start:
+	movi data1 - $,r10
+	movi (data2 - $) & 65535,r10
+	movi ((data3 - $) >> 0) & 65535,r10
+	movi ((data4 - $) >> 16) & 65535,r10
+	movi data5 + 8 - $,r10
+	movi (data6 + 16 - $) & 65535,r10
+	movi ((data7 + 12 - $) >> 0) & 65535,r10
+	movi ((data8 + 4 - $) >> 16) & 65535,r10
+
+	movi othertext1 - $,r10
+	movi (othertext2 - $) & 65535,r10
+	movi ((othertext3 - $) >> 0) & 65535,r10
+	movi ((othertext4 - $) >> 16) & 65535,r10
+	movi othertext5 + 8 - $,r10
+	movi (othertext6 + 16 - $) & 65535,r10
+	movi ((othertext7 + 12 - $) >> 0) & 65535,r10
+	movi ((othertext8 + 4 - $) >> 16) & 65535,r10
+
+	movi extern1 - $,r10
+	movi (extern2 - $) & 65535,r10
+	movi ((extern3 - $) >> 0) & 65535,r10
+	movi ((extern4 - $) >> 16) & 65535,r10
+	movi extern5 + 8 - $,r10
+	movi (extern6 + 16 - $) & 65535,r10
+	movi ((extern7 + 12 - $) >> 0) & 65535,r10
+	movi ((extern8 + 4 - $) >> 16) & 65535,r10
+
+	movi gdata1 - $,r10
+	movi (gdata2 - $) & 65535,r10
+	movi ((gdata3 - $) >> 0) & 65535,r10
+	movi ((gdata4 - $) >> 16) & 65535,r10
+	movi gdata5 + 8 - $,r10
+	movi (gdata6 + 16 - $) & 65535,r10
+	movi ((gdata7 + 12 - $) >> 0) & 65535,r10
+	movi ((gdata8 + 4 - $) >> 16) & 65535,r10
+
+	movi gothertext1 - $,r10
+	movi (gothertext2 - $) & 65535,r10
+	movi ((gothertext3 - $) >> 0) & 65535,r10
+	movi ((gothertext4 - $) >> 16) & 65535,r10
+	movi gothertext5 + 8 - $,r10
+	movi (gothertext6 + 16 - $) & 65535,r10
+	movi ((gothertext7 + 12 - $) >> 0) & 65535,r10
+	movi ((gothertext8 + 4 - $) >> 16) & 65535,r10
+
+	.section .othertext,"ax"
+x:
+	nop
+othertext1:
+	nop
+othertext2:
+	nop
+othertext3:
+	nop
+othertext4:
+	nop
+othertext5:
+	nop
+othertext6:
+	nop
+othertext7:
+	nop
+othertext8:
+	nop
+	.global gothertext1
+gothertext1:
+	nop
+	.global gothertext2
+gothertext2:
+	nop
+	.global gothertext3
+gothertext3:
+	nop
+	.global gothertext4
+gothertext4:
+	nop
+	.global gothertext5
+gothertext5:
+	nop
+	.global gothertext6
+gothertext6:
+	nop
+	.global gothertext7
+gothertext7:
+	nop
+	.global gothertext8
+gothertext8:
+	nop
+
+	.data
+y:
+	.long 0
+data1:
+	.long 0
+data2:
+	.long 0
+data3:
+	.long 0
+data4:
+	.long 0
+data5:
+	.long 0
+data6:
+	.long 0
+data7:
+	.long 0
+data8:
+	.long 0
+	.global gdata1
+gdata1:
+	.long 0
+	.global gdata2
+gdata2:
+	.long 0
+	.global gdata3
+gdata3:
+	.long 0
+	.global gdata4
+gdata4:
+	.long 0
+	.global gdata5
+gdata5:
+	.long 0
+	.global gdata6
+gdata6:
+	.long 0
+	.global gdata7
+gdata7:
+	.long 0
+	.global gdata8
+gdata8:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/rel-3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel-3.s
diff -N gas/testsuite/gas/sh/sh64/rel-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel-3.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,137 @@
+! Like rel-1, but references are marked "datalabel".
+
+	.mode SHmedia
+	.text
+start:
+	movi datalabel data1 - datalabel $,r10
+	movi (datalabel data2 - datalabel $) & 65535,r10
+	movi ((datalabel data3 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel data4 - datalabel $) >> 16) & 65535,r10
+	movi datalabel data5 + 8 - datalabel $,r10
+	movi (datalabel data6 + 16 - datalabel $) & 65535,r10
+	movi ((datalabel data7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel data8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi datalabel othertext1 - datalabel $,r10
+	movi (datalabel othertext2 - datalabel $) & 65535,r10
+	movi ((datalabel othertext3 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel othertext4 - datalabel $) >> 16) & 65535,r10
+	movi datalabel othertext5 + 8 - datalabel $,r10
+	movi (datalabel othertext6 + 16 - datalabel $) & 65535,r10
+	movi ((datalabel othertext7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel othertext8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi datalabel extern1 - datalabel $,r10
+	movi (datalabel extern2 - datalabel $) & 65535,r10
+	movi ((datalabel extern3 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel extern4 - datalabel $) >> 16) & 65535,r10
+	movi datalabel extern5 + 8 - datalabel $,r10
+	movi (datalabel extern6 + 16 - datalabel $) & 65535,r10
+	movi ((datalabel extern7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel extern8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi datalabel gdata1 - datalabel $,r10
+	movi (datalabel gdata2 - datalabel $) & 65535,r10
+	movi ((datalabel gdata3 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel gdata4 - datalabel $) >> 16) & 65535,r10
+	movi datalabel gdata5 + 8 - datalabel $,r10
+	movi (datalabel gdata6 + 16 - datalabel $) & 65535,r10
+	movi ((datalabel gdata7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel gdata8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	movi datalabel gothertext1 - datalabel $,r10
+	movi (datalabel gothertext2 - datalabel $) & 65535,r10
+	movi ((datalabel gothertext3 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel gothertext4 - datalabel $) >> 16) & 65535,r10
+	movi datalabel gothertext5 + 8 - datalabel $,r10
+	movi (datalabel gothertext6 + 16 - datalabel $) & 65535,r10
+	movi ((datalabel gothertext7 + 12 - datalabel $) >> 0) & 65535,r10
+	movi ((datalabel gothertext8 + 4 - datalabel $) >> 16) & 65535,r10
+
+	.section .othertext,"ax"
+x:
+	nop
+othertext1:
+	nop
+othertext2:
+	nop
+othertext3:
+	nop
+othertext4:
+	nop
+othertext5:
+	nop
+othertext6:
+	nop
+othertext7:
+	nop
+othertext8:
+	nop
+	.global gothertext1
+gothertext1:
+	nop
+	.global gothertext2
+gothertext2:
+	nop
+	.global gothertext3
+gothertext3:
+	nop
+	.global gothertext4
+gothertext4:
+	nop
+	.global gothertext5
+gothertext5:
+	nop
+	.global gothertext6
+gothertext6:
+	nop
+	.global gothertext7
+gothertext7:
+	nop
+	.global gothertext8
+gothertext8:
+	nop
+
+	.data
+y:
+	.long 0
+data1:
+	.long 0
+data2:
+	.long 0
+data3:
+	.long 0
+data4:
+	.long 0
+data5:
+	.long 0
+data6:
+	.long 0
+data7:
+	.long 0
+data8:
+	.long 0
+	.global gdata1
+gdata1:
+	.long 0
+	.global gdata2
+gdata2:
+	.long 0
+	.global gdata3
+gdata3:
+	.long 0
+	.global gdata4
+gdata4:
+	.long 0
+	.global gdata5
+gdata5:
+	.long 0
+	.global gdata6
+gdata6:
+	.long 0
+	.global gdata7
+gdata7:
+	.long 0
+	.global gdata8
+gdata8:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/rel-4.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel-4.s
diff -N gas/testsuite/gas/sh/sh64/rel-4.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel-4.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,138 @@
+! Like rel-3.s, but as with rel-2 vs. rel-1, using "$", not "datalabel $"
+! as self expression.
+
+	.mode SHmedia
+	.text
+start:
+	movi datalabel data1 - $,r10
+	movi (datalabel data2 - $) & 65535,r10
+	movi ((datalabel data3 - $) >> 0) & 65535,r10
+	movi ((datalabel data4 - $) >> 16) & 65535,r10
+	movi datalabel data5 + 8 - $,r10
+	movi (datalabel data6 + 16 - $) & 65535,r10
+	movi ((datalabel data7 + 12 - $) >> 0) & 65535,r10
+	movi ((datalabel data8 + 4 - $) >> 16) & 65535,r10
+
+	movi datalabel othertext1 - $,r10
+	movi (datalabel othertext2 - $) & 65535,r10
+	movi ((datalabel othertext3 - $) >> 0) & 65535,r10
+	movi ((datalabel othertext4 - $) >> 16) & 65535,r10
+	movi datalabel othertext5 + 8 - $,r10
+	movi (datalabel othertext6 + 16 - $) & 65535,r10
+	movi ((datalabel othertext7 + 12 - $) >> 0) & 65535,r10
+	movi ((datalabel othertext8 + 4 - $) >> 16) & 65535,r10
+
+	movi datalabel extern1 - $,r10
+	movi (datalabel extern2 - $) & 65535,r10
+	movi ((datalabel extern3 - $) >> 0) & 65535,r10
+	movi ((datalabel extern4 - $) >> 16) & 65535,r10
+	movi datalabel extern5 + 8 - $,r10
+	movi (datalabel extern6 + 16 - $) & 65535,r10
+	movi ((datalabel extern7 + 12 - $) >> 0) & 65535,r10
+	movi ((datalabel extern8 + 4 - $) >> 16) & 65535,r10
+
+	movi datalabel gdata1 - $,r10
+	movi (datalabel gdata2 - $) & 65535,r10
+	movi ((datalabel gdata3 - $) >> 0) & 65535,r10
+	movi ((datalabel gdata4 - $) >> 16) & 65535,r10
+	movi datalabel gdata5 + 8 - $,r10
+	movi (datalabel gdata6 + 16 - $) & 65535,r10
+	movi ((datalabel gdata7 + 12 - $) >> 0) & 65535,r10
+	movi ((datalabel gdata8 + 4 - $) >> 16) & 65535,r10
+
+	movi datalabel gothertext1 - $,r10
+	movi (datalabel gothertext2 - $) & 65535,r10
+	movi ((datalabel gothertext3 - $) >> 0) & 65535,r10
+	movi ((datalabel gothertext4 - $) >> 16) & 65535,r10
+	movi datalabel gothertext5 + 8 - $,r10
+	movi (datalabel gothertext6 + 16 - $) & 65535,r10
+	movi ((datalabel gothertext7 + 12 - $) >> 0) & 65535,r10
+	movi ((datalabel gothertext8 + 4 - $) >> 16) & 65535,r10
+
+	.section .othertext,"ax"
+x:
+	nop
+othertext1:
+	nop
+othertext2:
+	nop
+othertext3:
+	nop
+othertext4:
+	nop
+othertext5:
+	nop
+othertext6:
+	nop
+othertext7:
+	nop
+othertext8:
+	nop
+	.global gothertext1
+gothertext1:
+	nop
+	.global gothertext2
+gothertext2:
+	nop
+	.global gothertext3
+gothertext3:
+	nop
+	.global gothertext4
+gothertext4:
+	nop
+	.global gothertext5
+gothertext5:
+	nop
+	.global gothertext6
+gothertext6:
+	nop
+	.global gothertext7
+gothertext7:
+	nop
+	.global gothertext8
+gothertext8:
+	nop
+
+	.data
+y:
+	.long 0
+data1:
+	.long 0
+data2:
+	.long 0
+data3:
+	.long 0
+data4:
+	.long 0
+data5:
+	.long 0
+data6:
+	.long 0
+data7:
+	.long 0
+data8:
+	.long 0
+	.global gdata1
+gdata1:
+	.long 0
+	.global gdata2
+gdata2:
+	.long 0
+	.global gdata3
+gdata3:
+	.long 0
+	.global gdata4
+gdata4:
+	.long 0
+	.global gdata5
+gdata5:
+	.long 0
+	.global gdata6
+gdata6:
+	.long 0
+	.global gdata7
+gdata7:
+	.long 0
+	.global gdata8
+gdata8:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/rel-5.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel-5.s
diff -N gas/testsuite/gas/sh/sh64/rel-5.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel-5.s 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,48 @@
+! Test MOVI pc-relative expansion within text section.
+
+	.text
+	.mode SHmedia
+start:
+	nop
+	movi start2+8 - datalabel $,r30
+	movi start3+4 - $,r30
+	movi datalabel start4 + 8 - datalabel $,r30
+	movi datalabel start5 + 12 - $,r30
+	movi (datalabel start6 + 24 - datalabel $) & 65535,r40
+	movi ((datalabel start7 + 32 - datalabel $) >> 16) & 65535,r50
+	movi gstart2+8 - datalabel $,r30
+	movi gstart3+4 - $,r30
+	movi datalabel gstart4 + 8 - datalabel $,r30
+	movi datalabel gstart5 + 12 - $,r30
+	movi (datalabel gstart6 + 24 - datalabel $) & 65535,r40
+	movi ((datalabel gstart7 + 32 - datalabel $) >> 16) & 65535,r50
+start2:
+	nop
+start3:
+	nop
+start4:
+	nop
+start5:
+	nop
+start6:
+	nop
+start7:
+	nop
+	.global gstart2
+gstart2:
+	nop
+	.global gstart3
+gstart3:
+	nop
+	.global gstart4
+gstart4:
+	nop
+	.global gstart5
+gstart5:
+	nop
+	.global gstart6
+gstart6:
+	nop
+	.global gstart7
+gstart7:
+	nop
Index: gas/testsuite/gas/sh/sh64/rel32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel32-1.d
diff -N gas/testsuite/gas/sh/sh64/rel32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel32-1.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,86 @@
+#as: --abi=32
+#objdump: -sr
+#source: rel-1.s
+#name: MOVI: PC-relative relocs, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+08 R_SH_IMM_LOW16_PCREL  \.data\+0x0+8
+0+0c R_SH_IMM_LOW16_PCREL  \.data\+0x0+c
+0+10 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+10
+0+1c R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+20 R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+24
+0+30 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+9
+0+34 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+d
+0+38 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+11
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+29
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+29
+0+4c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+25
+0+58 R_SH_IMM_LOW16_PCREL  extern2
+0+5c R_SH_IMM_LOW16_PCREL  extern3
+0+60 R_SH_IMM_MEDLOW16_PCREL  extern4
+0+6c R_SH_IMM_LOW16_PCREL  extern6\+0x0+10
+0+70 R_SH_IMM_LOW16_PCREL  extern7\+0x0+c
+0+74 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+4
+0+80 R_SH_IMM_LOW16_PCREL  gdata2
+0+84 R_SH_IMM_LOW16_PCREL  gdata3
+0+88 R_SH_IMM_MEDLOW16_PCREL  gdata4
+0+94 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+10
+0+98 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+c
+0+9c R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+4
+0+a8 R_SH_IMM_LOW16_PCREL  gothertext2
+0+ac R_SH_IMM_LOW16_PCREL  gothertext3
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gothertext4
+0+bc R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+10
+0+c0 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+c
+0+c4 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+4
+0+00 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+4
+0+04 R_SH_IMM_LOW16_PCREL  \.data\+0x0+8
+0+14 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+1c
+0+18 R_SH_IMM_LOW16_PCREL  \.data\+0x0+20
+0+28 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+5
+0+2c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+9
+0+3c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+1d
+0+40 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+21
+0+50 R_SH_IMM_MEDLOW16_PCREL  extern1
+0+54 R_SH_IMM_LOW16_PCREL  extern1\+0x0+4
+0+64 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+8
+0+68 R_SH_IMM_LOW16_PCREL  extern5\+0x0+c
+0+78 R_SH_IMM_MEDLOW16_PCREL  gdata1
+0+7c R_SH_IMM_LOW16_PCREL  gdata1\+0x0+4
+0+8c R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+8
+0+90 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+c
+0+a0 R_SH_IMM_MEDLOW16_PCREL  gothertext1
+0+a4 R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+4
+0+b4 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+8
+0+b8 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+c
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0010 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0020 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0040 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0060 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0070 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00a0 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00b0 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel32-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel32-2.d
diff -N gas/testsuite/gas/sh/sh64/rel32-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel32-2.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,86 @@
+#as: --abi=32
+#objdump: -sr
+#source: rel-2.s
+#name: MOVI: PC+1-relative relocs, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+8 R_SH_IMM_LOW16_PCREL  \.data\+0x0+7
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+b
+0+10 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+f
+0+1c R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+20 R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+23
+0+30 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+8
+0+34 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+c
+0+38 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+10
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+4c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+24
+0+58 R_SH_IMM_LOW16_PCREL  extern2\+0xf*ffffffff
+0+5c R_SH_IMM_LOW16_PCREL  extern3\+0xf*ffffffff
+0+60 R_SH_IMM_MEDLOW16_PCREL  extern4\+0xf*ffffffff
+0+6c R_SH_IMM_LOW16_PCREL  extern6\+0x0+f
+0+70 R_SH_IMM_LOW16_PCREL  extern7\+0x0+b
+0+74 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+3
+0+80 R_SH_IMM_LOW16_PCREL  gdata2\+0xf*ffffffff
+0+84 R_SH_IMM_LOW16_PCREL  gdata3\+0xf*ffffffff
+0+88 R_SH_IMM_MEDLOW16_PCREL  gdata4\+0xf*ffffffff
+0+94 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+f
+0+98 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+b
+0+9c R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+3
+0+a8 R_SH_IMM_LOW16_PCREL  gothertext2\+0xf*ffffffff
+0+ac R_SH_IMM_LOW16_PCREL  gothertext3\+0xf*ffffffff
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gothertext4\+0xf*ffffffff
+0+bc R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+f
+0+c0 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+b
+0+c4 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+3
+0+ R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+3
+0+4 R_SH_IMM_LOW16_PCREL  \.data\+0x0+7
+0+14 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+1b
+0+18 R_SH_IMM_LOW16_PCREL  \.data\+0x0+1f
+0+28 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+4
+0+2c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+8
+0+3c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+1c
+0+40 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+20
+0+50 R_SH_IMM_MEDLOW16_PCREL  extern1\+0xf*ffffffff
+0+54 R_SH_IMM_LOW16_PCREL  extern1\+0x0+3
+0+64 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+7
+0+68 R_SH_IMM_LOW16_PCREL  extern5\+0x0+b
+0+78 R_SH_IMM_MEDLOW16_PCREL  gdata1\+0xf*ffffffff
+0+7c R_SH_IMM_LOW16_PCREL  gdata1\+0x0+3
+0+8c R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+7
+0+90 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+b
+0+a0 R_SH_IMM_MEDLOW16_PCREL  gothertext1\+0xf*ffffffff
+0+a4 R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+3
+0+b4 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+7
+0+b8 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+b
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0010 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0020 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0040 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0060 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0070 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00a0 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00b0 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel32-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel32-3.d
diff -N gas/testsuite/gas/sh/sh64/rel32-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel32-3.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,86 @@
+#as: --abi=32
+#objdump: -sr
+#source: rel-3.s
+#name: MOVI: PC-relative datalabel relocs, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+8 R_SH_IMM_LOW16_PCREL  \.data\+0x0+8
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+c
+0+10 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+10
+0+1c R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+20 R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+24
+0+30 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+8
+0+34 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+c
+0+38 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+10
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+4c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+24
+0+58 R_SH_IMM_LOW16_PCREL  extern2
+0+5c R_SH_IMM_LOW16_PCREL  extern3
+0+60 R_SH_IMM_MEDLOW16_PCREL  extern4
+0+6c R_SH_IMM_LOW16_PCREL  extern6\+0x0+10
+0+70 R_SH_IMM_LOW16_PCREL  extern7\+0x0+c
+0+74 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+4
+0+80 R_SH_IMM_LOW16_PCREL  gdata2
+0+84 R_SH_IMM_LOW16_PCREL  gdata3
+0+88 R_SH_IMM_MEDLOW16_PCREL  gdata4
+0+94 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+10
+0+98 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+c
+0+9c R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+4
+0+a8 R_SH_IMM_LOW16_PCREL  gothertext2
+0+ac R_SH_IMM_LOW16_PCREL  gothertext3
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gothertext4
+0+bc R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+10
+0+c0 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+c
+0+c4 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+4
+0+ R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+4
+0+4 R_SH_IMM_LOW16_PCREL  \.data\+0x0+8
+0+14 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+1c
+0+18 R_SH_IMM_LOW16_PCREL  \.data\+0x0+20
+0+28 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+4
+0+2c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+8
+0+3c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+1c
+0+40 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+20
+0+50 R_SH_IMM_MEDLOW16_PCREL  extern1
+0+54 R_SH_IMM_LOW16_PCREL  extern1\+0x0+4
+0+64 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+8
+0+68 R_SH_IMM_LOW16_PCREL  extern5\+0x0+c
+0+78 R_SH_IMM_MEDLOW16_PCREL  gdata1
+0+7c R_SH_IMM_LOW16_PCREL  gdata1\+0x0+4
+0+8c R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+8
+0+90 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+c
+0+a0 R_SH_IMM_MEDLOW16_PCREL  gothertext1
+0+a4 R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+4
+0+b4 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+8
+0+b8 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+c
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0010 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0020 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0040 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0060 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0070 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00a0 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00b0 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel32-4.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel32-4.d
diff -N gas/testsuite/gas/sh/sh64/rel32-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel32-4.d 2 Feb 2002 04:00:30 -0000
@@ -0,0 +1,86 @@
+#as: --abi=32
+#objdump: -sr
+#source: rel-4.s
+#name: MOVI: PC+1-relative datalabel relocs, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+8 R_SH_IMM_LOW16_PCREL  \.data\+0x0+7
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+b
+0+10 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+f
+0+1c R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+20 R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+23
+0+30 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+7
+0+34 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+b
+0+38 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+f
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+27
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+27
+0+4c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+23
+0+58 R_SH_IMM_LOW16_PCREL  extern2\+0xf*ffffffff
+0+5c R_SH_IMM_LOW16_PCREL  extern3\+0xf*ffffffff
+0+60 R_SH_IMM_MEDLOW16_PCREL  extern4\+0xf*ffffffff
+0+6c R_SH_IMM_LOW16_PCREL  extern6\+0x0+f
+0+70 R_SH_IMM_LOW16_PCREL  extern7\+0x0+b
+0+74 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+3
+0+80 R_SH_IMM_LOW16_PCREL  gdata2\+0xf*ffffffff
+0+84 R_SH_IMM_LOW16_PCREL  gdata3\+0xf*ffffffff
+0+88 R_SH_IMM_MEDLOW16_PCREL  gdata4\+0xf*ffffffff
+0+94 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+f
+0+98 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+b
+0+9c R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+3
+0+a8 R_SH_IMM_LOW16_PCREL  gothertext2\+0xf*ffffffff
+0+ac R_SH_IMM_LOW16_PCREL  gothertext3\+0xf*ffffffff
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gothertext4\+0xf*ffffffff
+0+bc R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+f
+0+c0 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+b
+0+c4 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+3
+0+ R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+3
+0+4 R_SH_IMM_LOW16_PCREL  \.data\+0x0+7
+0+14 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+1b
+0+18 R_SH_IMM_LOW16_PCREL  \.data\+0x0+1f
+0+28 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+3
+0+2c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+7
+0+3c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+1b
+0+40 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+1f
+0+50 R_SH_IMM_MEDLOW16_PCREL  extern1\+0xf*ffffffff
+0+54 R_SH_IMM_LOW16_PCREL  extern1\+0x0+3
+0+64 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+7
+0+68 R_SH_IMM_LOW16_PCREL  extern5\+0x0+b
+0+78 R_SH_IMM_MEDLOW16_PCREL  gdata1\+0xf*ffffffff
+0+7c R_SH_IMM_LOW16_PCREL  gdata1\+0x0+3
+0+8c R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+7
+0+90 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+b
+0+a0 R_SH_IMM_MEDLOW16_PCREL  gothertext1\+0xf*ffffffff
+0+a4 R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+3
+0+b4 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+7
+0+b8 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+b
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0010 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0020 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0040 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0060 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 0070 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00a0 cc0000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00b0 cc0000a0 cc0000a0 c80000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel32-5.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel32-5.d
diff -N gas/testsuite/gas/sh/sh64/rel32-5.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel32-5.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,30 @@
+#as: --abi=32
+#objdump: -sr
+#source: rel-5.s
+#name: MOVI: PC-relative reloc within .text, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET  *TYPE  *VALUE 
+0+3c R_SH_IMM_LOW16_PCREL  gstart6\+0x0+18
+0+40 R_SH_IMM_MEDLOW16_PCREL  gstart7\+0x0+20
+0+1c R_SH_IMM_MEDLOW16_PCREL  gstart2\+0x0+8
+0+20 R_SH_IMM_LOW16_PCREL  gstart2\+0x0+c
+0+24 R_SH_IMM_MEDLOW16_PCREL  gstart3\+0x0+3
+0+28 R_SH_IMM_LOW16_PCREL  gstart3\+0x0+7
+0+2c R_SH_IMM_MEDLOW16_PCREL  gstart4\+0x0+8
+0+30 R_SH_IMM_LOW16_PCREL  gstart4\+0x0+c
+0+34 R_SH_IMM_MEDLOW16_PCREL  gstart5\+0x0+b
+0+38 R_SH_IMM_LOW16_PCREL  gstart5\+0x0+f
+
+Contents of section \.text:
+ 0000 6ff0fff0 cc0125e0 cc0111e0 cc0121e0  .*
+ 0010 cc012de0 cc016280 cc000320 cc0001e0  .*
+ 0020 c80001e0 cc0001e0 c80001e0 cc0001e0  .*
+ 0030 c80001e0 cc0001e0 c80001e0 cc000280  .*
+ 0040 cc000320 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0050 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0060 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0070 6ff0fff0                             .*
+Contents of section \.data:
Index: gas/testsuite/gas/sh/sh64/rel64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel64-1.d
diff -N gas/testsuite/gas/sh/sh64/rel64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel64-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,111 @@
+#as: --abi=64
+#objdump: -sr
+#source: rel-1.s
+#name: MOVI: PC-relative relocs, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+10 R_SH_IMM_LOW16_PCREL  \.data\+0x0+8
+0+14 R_SH_IMM_LOW16_PCREL  \.data\+0x0+c
+0+18 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+10
+0+2c R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+30 R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+34 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+24
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+9
+0+4c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+d
+0+50 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+11
+0+64 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+29
+0+68 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+29
+0+6c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+25
+0+80 R_SH_IMM_LOW16_PCREL  extern2
+0+84 R_SH_IMM_LOW16_PCREL  extern3
+0+88 R_SH_IMM_MEDLOW16_PCREL  extern4
+0+9c R_SH_IMM_LOW16_PCREL  extern6\+0x0+10
+0+a0 R_SH_IMM_LOW16_PCREL  extern7\+0x0+c
+0+a4 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+4
+0+b8 R_SH_IMM_LOW16_PCREL  gdata2
+0+bc R_SH_IMM_LOW16_PCREL  gdata3
+0+c0 R_SH_IMM_MEDLOW16_PCREL  gdata4
+0+d4 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+10
+0+d8 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+c
+0+dc R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+4
+0+f0 R_SH_IMM_LOW16_PCREL  gothertext2
+0+f4 R_SH_IMM_LOW16_PCREL  gothertext3
+0+f8 R_SH_IMM_MEDLOW16_PCREL  gothertext4
+0+10c R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+10
+0+110 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+c
+0+114 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+4
+0+ R_SH_IMM_HI16_PCREL  \.data\+0x0+4
+0+4 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+8
+0+8 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+c
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+10
+0+1c R_SH_IMM_HI16_PCREL  \.data\+0x0+1c
+0+20 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+20
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+24
+0+28 R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+38 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+5
+0+3c R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+9
+0+40 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+d
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+11
+0+54 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+1d
+0+58 R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+21
+0+5c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+25
+0+60 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+29
+0+70 R_SH_IMM_HI16_PCREL  extern1
+0+74 R_SH_IMM_MEDHI16_PCREL  extern1\+0x0+4
+0+78 R_SH_IMM_MEDLOW16_PCREL  extern1\+0x0+8
+0+7c R_SH_IMM_LOW16_PCREL  extern1\+0x0+c
+0+8c R_SH_IMM_HI16_PCREL  extern5\+0x0+8
+0+90 R_SH_IMM_MEDHI16_PCREL  extern5\+0x0+c
+0+94 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+10
+0+98 R_SH_IMM_LOW16_PCREL  extern5\+0x0+14
+0+a8 R_SH_IMM_HI16_PCREL  gdata1
+0+ac R_SH_IMM_MEDHI16_PCREL  gdata1\+0x0+4
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gdata1\+0x0+8
+0+b4 R_SH_IMM_LOW16_PCREL  gdata1\+0x0+c
+0+c4 R_SH_IMM_HI16_PCREL  gdata5\+0x0+8
+0+c8 R_SH_IMM_MEDHI16_PCREL  gdata5\+0x0+c
+0+cc R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+10
+0+d0 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+14
+0+e0 R_SH_IMM_HI16_PCREL  gothertext1
+0+e4 R_SH_IMM_MEDHI16_PCREL  gothertext1\+0x0+4
+0+e8 R_SH_IMM_MEDLOW16_PCREL  gothertext1\+0x0+8
+0+ec R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+c
+0+fc R_SH_IMM_HI16_PCREL  gothertext5\+0x0+8
+0+100 R_SH_IMM_MEDHI16_PCREL  gothertext5\+0x0+c
+0+104 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+10
+0+108 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+14
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0010 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0020 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0040 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 0060 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0070 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 00a0 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 00b0 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 00d0 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00e0 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 00f0 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0100 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0110 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel64-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel64-2.d
diff -N gas/testsuite/gas/sh/sh64/rel64-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel64-2.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,111 @@
+#as: --abi=64
+#objdump: -sr
+#source: rel-2.s
+#name: MOVI: PC+1-relative relocs, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+10 R_SH_IMM_LOW16_PCREL  \.data\+0x0+7
+0+14 R_SH_IMM_LOW16_PCREL  \.data\+0x0+b
+0+18 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+f
+0+2c R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+30 R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+34 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+23
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+8
+0+4c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+c
+0+50 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+10
+0+64 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+68 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+6c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+24
+0+80 R_SH_IMM_LOW16_PCREL  extern2\+0xffffffffffffffff
+0+84 R_SH_IMM_LOW16_PCREL  extern3\+0xffffffffffffffff
+0+88 R_SH_IMM_MEDLOW16_PCREL  extern4\+0xffffffffffffffff
+0+9c R_SH_IMM_LOW16_PCREL  extern6\+0x0+f
+0+a0 R_SH_IMM_LOW16_PCREL  extern7\+0x0+b
+0+a4 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+3
+0+b8 R_SH_IMM_LOW16_PCREL  gdata2\+0xffffffffffffffff
+0+bc R_SH_IMM_LOW16_PCREL  gdata3\+0xffffffffffffffff
+0+c0 R_SH_IMM_MEDLOW16_PCREL  gdata4\+0xffffffffffffffff
+0+d4 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+f
+0+d8 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+b
+0+dc R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+3
+0+f0 R_SH_IMM_LOW16_PCREL  gothertext2\+0xffffffffffffffff
+0+f4 R_SH_IMM_LOW16_PCREL  gothertext3\+0xffffffffffffffff
+0+f8 R_SH_IMM_MEDLOW16_PCREL  gothertext4\+0xffffffffffffffff
+0+10c R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+f
+0+110 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+b
+0+114 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+3
+0+ R_SH_IMM_HI16_PCREL  \.data\+0x0+3
+0+4 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+7
+0+8 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+b
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+f
+0+1c R_SH_IMM_HI16_PCREL  \.data\+0x0+1b
+0+20 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+1f
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+23
+0+28 R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+38 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+4
+0+3c R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+8
+0+40 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+c
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+10
+0+54 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+1c
+0+58 R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+20
+0+5c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+24
+0+60 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+70 R_SH_IMM_HI16_PCREL  extern1\+0xffffffffffffffff
+0+74 R_SH_IMM_MEDHI16_PCREL  extern1\+0x0+3
+0+78 R_SH_IMM_MEDLOW16_PCREL  extern1\+0x0+7
+0+7c R_SH_IMM_LOW16_PCREL  extern1\+0x0+b
+0+8c R_SH_IMM_HI16_PCREL  extern5\+0x0+7
+0+90 R_SH_IMM_MEDHI16_PCREL  extern5\+0x0+b
+0+94 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+f
+0+98 R_SH_IMM_LOW16_PCREL  extern5\+0x0+13
+0+a8 R_SH_IMM_HI16_PCREL  gdata1\+0xffffffffffffffff
+0+ac R_SH_IMM_MEDHI16_PCREL  gdata1\+0x0+3
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gdata1\+0x0+7
+0+b4 R_SH_IMM_LOW16_PCREL  gdata1\+0x0+b
+0+c4 R_SH_IMM_HI16_PCREL  gdata5\+0x0+7
+0+c8 R_SH_IMM_MEDHI16_PCREL  gdata5\+0x0+b
+0+cc R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+f
+0+d0 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+13
+0+e0 R_SH_IMM_HI16_PCREL  gothertext1\+0xffffffffffffffff
+0+e4 R_SH_IMM_MEDHI16_PCREL  gothertext1\+0x0+3
+0+e8 R_SH_IMM_MEDLOW16_PCREL  gothertext1\+0x0+7
+0+ec R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+b
+0+fc R_SH_IMM_HI16_PCREL  gothertext5\+0x0+7
+0+100 R_SH_IMM_MEDHI16_PCREL  gothertext5\+0x0+b
+0+104 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+f
+0+108 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+13
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0010 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0020 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0040 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 0060 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0070 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 00a0 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 00b0 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 00d0 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00e0 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 00f0 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0100 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0110 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel64-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel64-3.d
diff -N gas/testsuite/gas/sh/sh64/rel64-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel64-3.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,111 @@
+#as: --abi=64
+#objdump: -sr
+#source: rel-3.s
+#name: MOVI: PC-relative datalabel relocs, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+10 R_SH_IMM_LOW16_PCREL  \.data\+0x0+8
+0+14 R_SH_IMM_LOW16_PCREL  \.data\+0x0+c
+0+18 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+10
+0+2c R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+30 R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+34 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+24
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+8
+0+4c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+c
+0+50 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+10
+0+64 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+68 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+6c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+24
+0+80 R_SH_IMM_LOW16_PCREL  extern2
+0+84 R_SH_IMM_LOW16_PCREL  extern3
+0+88 R_SH_IMM_MEDLOW16_PCREL  extern4
+0+9c R_SH_IMM_LOW16_PCREL  extern6\+0x0+10
+0+a0 R_SH_IMM_LOW16_PCREL  extern7\+0x0+c
+0+a4 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+4
+0+b8 R_SH_IMM_LOW16_PCREL  gdata2
+0+bc R_SH_IMM_LOW16_PCREL  gdata3
+0+c0 R_SH_IMM_MEDLOW16_PCREL  gdata4
+0+d4 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+10
+0+d8 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+c
+0+dc R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+4
+0+f0 R_SH_IMM_LOW16_PCREL  gothertext2
+0+f4 R_SH_IMM_LOW16_PCREL  gothertext3
+0+f8 R_SH_IMM_MEDLOW16_PCREL  gothertext4
+0+10c R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+10
+0+110 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+c
+0+114 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+4
+0+ R_SH_IMM_HI16_PCREL  \.data\+0x0+4
+0+4 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+8
+0+8 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+c
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+10
+0+1c R_SH_IMM_HI16_PCREL  \.data\+0x0+1c
+0+20 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+20
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+24
+0+28 R_SH_IMM_LOW16_PCREL  \.data\+0x0+28
+0+38 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+4
+0+3c R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+8
+0+40 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+c
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+10
+0+54 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+1c
+0+58 R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+20
+0+5c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+24
+0+60 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+28
+0+70 R_SH_IMM_HI16_PCREL  extern1
+0+74 R_SH_IMM_MEDHI16_PCREL  extern1\+0x0+4
+0+78 R_SH_IMM_MEDLOW16_PCREL  extern1\+0x0+8
+0+7c R_SH_IMM_LOW16_PCREL  extern1\+0x0+c
+0+8c R_SH_IMM_HI16_PCREL  extern5\+0x0+8
+0+90 R_SH_IMM_MEDHI16_PCREL  extern5\+0x0+c
+0+94 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+10
+0+98 R_SH_IMM_LOW16_PCREL  extern5\+0x0+14
+0+a8 R_SH_IMM_HI16_PCREL  gdata1
+0+ac R_SH_IMM_MEDHI16_PCREL  gdata1\+0x0+4
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gdata1\+0x0+8
+0+b4 R_SH_IMM_LOW16_PCREL  gdata1\+0x0+c
+0+c4 R_SH_IMM_HI16_PCREL  gdata5\+0x0+8
+0+c8 R_SH_IMM_MEDHI16_PCREL  gdata5\+0x0+c
+0+cc R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+10
+0+d0 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+14
+0+e0 R_SH_IMM_HI16_PCREL  gothertext1
+0+e4 R_SH_IMM_MEDHI16_PCREL  gothertext1\+0x0+4
+0+e8 R_SH_IMM_MEDLOW16_PCREL  gothertext1\+0x0+8
+0+ec R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+c
+0+fc R_SH_IMM_HI16_PCREL  gothertext5\+0x0+8
+0+100 R_SH_IMM_MEDHI16_PCREL  gothertext5\+0x0+c
+0+104 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+10
+0+108 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+14
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0010 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0020 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0040 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 0060 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0070 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 00a0 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 00b0 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 00d0 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00e0 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 00f0 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0100 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0110 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel64-4.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel64-4.d
diff -N gas/testsuite/gas/sh/sh64/rel64-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel64-4.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,111 @@
+#as: --abi=64
+#objdump: -sr
+#source: rel-4.s
+#name: MOVI: PC+1-relative datalabel relocs, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+10 R_SH_IMM_LOW16_PCREL  \.data\+0x0+7
+0+14 R_SH_IMM_LOW16_PCREL  \.data\+0x0+b
+0+18 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+f
+0+2c R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+30 R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+34 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+23
+0+48 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+7
+0+4c R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+b
+0+50 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+f
+0+64 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+27
+0+68 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+27
+0+6c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+23
+0+80 R_SH_IMM_LOW16_PCREL  extern2\+0xffffffffffffffff
+0+84 R_SH_IMM_LOW16_PCREL  extern3\+0xffffffffffffffff
+0+88 R_SH_IMM_MEDLOW16_PCREL  extern4\+0xffffffffffffffff
+0+9c R_SH_IMM_LOW16_PCREL  extern6\+0x0+f
+0+a0 R_SH_IMM_LOW16_PCREL  extern7\+0x0+b
+0+a4 R_SH_IMM_MEDLOW16_PCREL  extern8\+0x0+3
+0+b8 R_SH_IMM_LOW16_PCREL  gdata2\+0xffffffffffffffff
+0+bc R_SH_IMM_LOW16_PCREL  gdata3\+0xffffffffffffffff
+0+c0 R_SH_IMM_MEDLOW16_PCREL  gdata4\+0xffffffffffffffff
+0+d4 R_SH_IMM_LOW16_PCREL  gdata6\+0x0+f
+0+d8 R_SH_IMM_LOW16_PCREL  gdata7\+0x0+b
+0+dc R_SH_IMM_MEDLOW16_PCREL  gdata8\+0x0+3
+0+f0 R_SH_IMM_LOW16_PCREL  gothertext2\+0xffffffffffffffff
+0+f4 R_SH_IMM_LOW16_PCREL  gothertext3\+0xffffffffffffffff
+0+f8 R_SH_IMM_MEDLOW16_PCREL  gothertext4\+0xffffffffffffffff
+0+10c R_SH_IMM_LOW16_PCREL  gothertext6\+0x0+f
+0+110 R_SH_IMM_LOW16_PCREL  gothertext7\+0x0+b
+0+114 R_SH_IMM_MEDLOW16_PCREL  gothertext8\+0x0+3
+0+ R_SH_IMM_HI16_PCREL  \.data\+0x0+3
+0+4 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+7
+0+8 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+b
+0+c R_SH_IMM_LOW16_PCREL  \.data\+0x0+f
+0+1c R_SH_IMM_HI16_PCREL  \.data\+0x0+1b
+0+20 R_SH_IMM_MEDHI16_PCREL  \.data\+0x0+1f
+0+24 R_SH_IMM_MEDLOW16_PCREL  \.data\+0x0+23
+0+28 R_SH_IMM_LOW16_PCREL  \.data\+0x0+27
+0+38 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+3
+0+3c R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+7
+0+40 R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+b
+0+44 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+f
+0+54 R_SH_IMM_HI16_PCREL  \.othertext\+0x0+1b
+0+58 R_SH_IMM_MEDHI16_PCREL  \.othertext\+0x0+1f
+0+5c R_SH_IMM_MEDLOW16_PCREL  \.othertext\+0x0+23
+0+60 R_SH_IMM_LOW16_PCREL  \.othertext\+0x0+27
+0+70 R_SH_IMM_HI16_PCREL  extern1\+0xffffffffffffffff
+0+74 R_SH_IMM_MEDHI16_PCREL  extern1\+0x0+3
+0+78 R_SH_IMM_MEDLOW16_PCREL  extern1\+0x0+7
+0+7c R_SH_IMM_LOW16_PCREL  extern1\+0x0+b
+0+8c R_SH_IMM_HI16_PCREL  extern5\+0x0+7
+0+90 R_SH_IMM_MEDHI16_PCREL  extern5\+0x0+b
+0+94 R_SH_IMM_MEDLOW16_PCREL  extern5\+0x0+f
+0+98 R_SH_IMM_LOW16_PCREL  extern5\+0x0+13
+0+a8 R_SH_IMM_HI16_PCREL  gdata1\+0xffffffffffffffff
+0+ac R_SH_IMM_MEDHI16_PCREL  gdata1\+0x0+3
+0+b0 R_SH_IMM_MEDLOW16_PCREL  gdata1\+0x0+7
+0+b4 R_SH_IMM_LOW16_PCREL  gdata1\+0x0+b
+0+c4 R_SH_IMM_HI16_PCREL  gdata5\+0x0+7
+0+c8 R_SH_IMM_MEDHI16_PCREL  gdata5\+0x0+b
+0+cc R_SH_IMM_MEDLOW16_PCREL  gdata5\+0x0+f
+0+d0 R_SH_IMM_LOW16_PCREL  gdata5\+0x0+13
+0+e0 R_SH_IMM_HI16_PCREL  gothertext1\+0xffffffffffffffff
+0+e4 R_SH_IMM_MEDHI16_PCREL  gothertext1\+0x0+3
+0+e8 R_SH_IMM_MEDLOW16_PCREL  gothertext1\+0x0+7
+0+ec R_SH_IMM_LOW16_PCREL  gothertext1\+0x0+b
+0+fc R_SH_IMM_HI16_PCREL  gothertext5\+0x0+7
+0+100 R_SH_IMM_MEDHI16_PCREL  gothertext5\+0x0+b
+0+104 R_SH_IMM_MEDLOW16_PCREL  gothertext5\+0x0+f
+0+108 R_SH_IMM_LOW16_PCREL  gothertext5\+0x0+13
+
+Contents of section \.text:
+ 0000 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0010 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0020 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0030 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 0040 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 0050 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 0060 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0070 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 0080 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0090 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 00a0 cc0000a0 cc0000a0 cc0000a0 c80000a0  .*
+ 00b0 c80000a0 c80000a0 cc0000a0 cc0000a0  .*
+ 00c0 cc0000a0 cc0000a0 c80000a0 c80000a0  .*
+ 00d0 c80000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 00e0 cc0000a0 c80000a0 c80000a0 c80000a0  .*
+ 00f0 cc0000a0 cc0000a0 cc0000a0 cc0000a0  .*
+ 0100 c80000a0 c80000a0 c80000a0 cc0000a0  .*
+ 0110 cc0000a0 cc0000a0                    .*
+Contents of section \.data:
+ 0000 00000000 00000000 00000000 00000000  .*
+ 0010 00000000 00000000 00000000 00000000  .*
+ 0020 00000000 00000000 00000000 00000000  .*
+ 0030 00000000 00000000 00000000 00000000  .*
+ 0040 00000000                             .*
+Contents of section \.othertext:
+ 0000 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0010 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0020 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0030 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0040 6ff0fff0                             .*
Index: gas/testsuite/gas/sh/sh64/rel64-5.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/rel64-5.d
diff -N gas/testsuite/gas/sh/sh64/rel64-5.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/rel64-5.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,40 @@
+#as: --abi=64
+#objdump: -sr
+#source: rel-5.s
+#name: MOVI: PC-relative reloc within .text, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET           TYPE              VALUE 
+0+5c R_SH_IMM_LOW16_PCREL  gstart6\+0x0+18
+0+60 R_SH_IMM_MEDLOW16_PCREL  gstart7\+0x0+20
+0+1c R_SH_IMM_HI16_PCREL  gstart2\+0x0+8
+0+20 R_SH_IMM_MEDHI16_PCREL  gstart2\+0x0+c
+0+24 R_SH_IMM_MEDLOW16_PCREL  gstart2\+0x0+10
+0+28 R_SH_IMM_LOW16_PCREL  gstart2\+0x0+14
+0+2c R_SH_IMM_HI16_PCREL  gstart3\+0x0+3
+0+30 R_SH_IMM_MEDHI16_PCREL  gstart3\+0x0+7
+0+34 R_SH_IMM_MEDLOW16_PCREL  gstart3\+0x0+b
+0+38 R_SH_IMM_LOW16_PCREL  gstart3\+0x0+f
+0+3c R_SH_IMM_HI16_PCREL  gstart4\+0x0+8
+0+40 R_SH_IMM_MEDHI16_PCREL  gstart4\+0x0+c
+0+44 R_SH_IMM_MEDLOW16_PCREL  gstart4\+0x0+10
+0+48 R_SH_IMM_LOW16_PCREL  gstart4\+0x0+14
+0+4c R_SH_IMM_HI16_PCREL  gstart5\+0x0+b
+0+50 R_SH_IMM_MEDHI16_PCREL  gstart5\+0x0+f
+0+54 R_SH_IMM_MEDLOW16_PCREL  gstart5\+0x0+13
+0+58 R_SH_IMM_LOW16_PCREL  gstart5\+0x0+17
+
+Contents of section \.text:
+ 0000 6ff0fff0 cc01a5e0 cc0191e0 cc01a1e0  .*
+ 0010 cc01ade0 cc01e280 cc000320 cc0001e0  .*
+ 0020 c80001e0 c80001e0 c80001e0 cc0001e0  .*
+ 0030 c80001e0 c80001e0 c80001e0 cc0001e0  .*
+ 0040 c80001e0 c80001e0 c80001e0 cc0001e0  .*
+ 0050 c80001e0 c80001e0 c80001e0 cc000280  .*
+ 0060 cc000320 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0070 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0080 6ff0fff0 6ff0fff0 6ff0fff0 6ff0fff0  .*
+ 0090 6ff0fff0                             .*
+Contents of section \.data:
Index: gas/testsuite/gas/sh/sh64/relax-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/relax-1.d
diff -N gas/testsuite/gas/sh/sh64/relax-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/relax-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,30 @@
+#as: --abi=64
+#objdump: -dr
+#source: relax-1.s
+#name: Assembler PT relaxation limit, from first to second state.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+cc000990[ 	]+movi	2,r25
+[ 	]+8:[ 	]+c8000590[ 	]+shori	1,r25
+[ 	]+c:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+
+0+10 <x1>:
+[ 	]+10:[ 	]+e9fffe40[ 	]+pta/l	2000c <x0>,tr4
+[ 	]+\.\.\.
+
+0+2000c <x0>:
+[ 	]+2000c:[ 	]+ea000650[ 	]+pta/l	10 <x1>,tr5
+[ 	]+20010:[ 	]+ea000260[ 	]+pta/l	10 <x1>,tr6
+[ 	]+20014:[ 	]+cffff590[ 	]+movi	-3,r25
+[ 	]+20018:[ 	]+cbffd590[ 	]+shori	65525,r25
+[ 	]+2001c:[ 	]+6bf56660[ 	]+ptrel/l	r25,tr6
+[ 	]+20020:[ 	]+cffff590[ 	]+movi	-3,r25
+[ 	]+20024:[ 	]+cbffa590[ 	]+shori	65513,r25
+[ 	]+20028:[ 	]+6bf56670[ 	]+ptrel/l	r25,tr7
Index: gas/testsuite/gas/sh/sh64/relax-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/relax-1.s
diff -N gas/testsuite/gas/sh/sh64/relax-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/relax-1.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,18 @@
+! Check limits of PT assembler relaxation states.  Unfortunately, we can't
+! check the 32 and 48 bit limit on a host with 32-bit longs, so we just
+! check the first state.  This also checks that a PT expansion without a
+! relocation to 32 bits works.
+
+	.mode SHmedia
+start:
+	nop
+start2:
+	pt	x0,tr3
+x1:
+	pt	x0,tr4
+	.space 32767*4-4,0
+x0:
+	pt	x1,tr5
+	pt	x1,tr6
+	pt	x1,tr6
+	pt	x1,tr7
Index: gas/testsuite/gas/sh/sh64/relax-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/relax-2.d
diff -N gas/testsuite/gas/sh/sh64/relax-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/relax-2.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,30 @@
+#as: --abi=64
+#objdump: -dr
+#source: relax-2.s
+#name: Assembler PTB relaxation limit, from first to second state.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+cc000990[ 	]+movi	2,r25
+[ 	]+8:[ 	]+c8000190[ 	]+shori	0,r25
+[ 	]+c:[ 	]+6bf56630[ 	]+ptrel/l	r25,tr3
+
+0+10 <[ax]1>:
+[ 	]+10:[ 	]+edfffe40[ 	]+ptb/l	2000c <[ax]0>,tr4
+[ 	]+\.\.\.
+
+0+2000c <[ax]0>:
+[ 	]+2000c:[ 	]+ee000650[ 	]+ptb/l	10 <[ax]1>,tr5
+[ 	]+20010:[ 	]+ee000260[ 	]+ptb/l	10 <[ax]1>,tr6
+[ 	]+20014:[ 	]+cffff590[ 	]+movi	-3,r25
+[ 	]+20018:[ 	]+cbffd190[ 	]+shori	65524,r25
+[ 	]+2001c:[ 	]+6bf56660[ 	]+ptrel/l	r25,tr6
+[ 	]+20020:[ 	]+cffff590[ 	]+movi	-3,r25
+[ 	]+20024:[ 	]+cbffa190[ 	]+shori	65512,r25
+[ 	]+20028:[ 	]+6bf56670[ 	]+ptrel/l	r25,tr7
Index: gas/testsuite/gas/sh/sh64/relax-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/relax-2.s
diff -N gas/testsuite/gas/sh/sh64/relax-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/relax-2.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,23 @@
+! Check relaxation for PTB.  This is like relax-1.s, but presumably we can
+! have bugs in the slight differences in limit-checking compared to PT and
+! PTA.
+
+	.mode SHmedia
+start:
+	nop
+start2:
+	ptb	x0,tr3
+	.mode SHcompact
+x1:
+	.mode SHmedia
+a1:
+	ptb	x0,tr4
+	.space 32767*4-4,0
+	.mode SHcompact
+x0:
+	.mode SHmedia
+a0:
+	ptb	x1,tr5
+	ptb	x1,tr6
+	ptb	x1,tr6
+	ptb	x1,tr7
Index: gas/testsuite/gas/sh/sh64/relax-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/relax-3.d
diff -N gas/testsuite/gas/sh/sh64/relax-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/relax-3.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,43 @@
+#as: --abi=64
+#objdump: -dr
+#source: relax-3.s
+#name: Assembler PC-rel MOVI relaxation limit, from first to second state.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+6ff0fff0[ 	]+nop	
+
+0+4 <start2>:
+[ 	]+4:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+8:[ 	]+ca001030[ 	]+shori	32772,r3
+
+0+c <x1>:
+[ 	]+c:[ 	]+cdfffc40[ 	]+movi	32767,r4
+[ 	]+\.\.\.
+
+0+800c <x0>:
+[ 	]+800c:[ 	]+ce000050[ 	]+movi	-32768,r5
+[ 	]+8010:[ 	]+cffffc60[ 	]+movi	-1,r6
+[ 	]+8014:[ 	]+c9fffc60[ 	]+shori	32767,r6
+[ 	]+8018:[ 	]+cffffc70[ 	]+movi	-1,r7
+[ 	]+801c:[ 	]+cbfffc70[ 	]+shori	65535,r7
+[ 	]+8020:[ 	]+cbfffc70[ 	]+shori	65535,r7
+[ 	]+8024:[ 	]+ca000070[ 	]+shori	32768,r7
+[ 	]+8028:[ 	]+cc000080[ 	]+movi	0,r8
+[ 	]+802c:[ 	]+c8000080[ 	]+shori	0,r8
+[ 	]+8030:[ 	]+c8000080[ 	]+shori	0,r8
+[ 	]+8034:[ 	]+c9fffc80[ 	]+shori	32767,r8
+[ 	]+8038:[ 	]+cc000080[ 	]+movi	0,r8
+[ 	]+803c:[ 	]+c8000080[ 	]+shori	0,r8
+[ 	]+8040:[ 	]+c8000080[ 	]+shori	0,r8
+[ 	]+8044:[ 	]+c8004080[ 	]+shori	16,r8
+Disassembly of section \.text\.another:
+
+0+ <y0>:
+[ 	]+0:[ 	]+cc000090[ 	]+movi	0,r9
+[ 	]+4:[ 	]+c8000090[ 	]+shori	0,r9
+[ 	]+8:[ 	]+c8000090[ 	]+shori	0,r9
+[ 	]+c:[ 	]+c8002090[ 	]+shori	8,r9
Index: gas/testsuite/gas/sh/sh64/relax-3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/relax-3.s
diff -N gas/testsuite/gas/sh/sh64/relax-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/relax-3.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,32 @@
+! Check relaxation for MOVI PC-relative expansions.  Unfortunately, we
+! can't check the 32 and 48 bit limit on a host with 32-bit longs, so we
+! just check going from first state to the second state.
+
+	.mode SHmedia
+	.text
+start:
+	nop
+start2:
+	movi	(x0-4-$),r3
+x1:
+	movi	(x0-1-$),r4
+	.space 32768-4,0
+x0:
+	movi	(x1-$),r5
+	movi	(x1+3-$),r6
+
+! These PC-relative expressions are here because of past bugs leading to
+! premature symbol evaluation and assignment when they were exposed to
+! relaxation.
+! The expected result may need future tweaking if advances are done in
+! relaxation.  At the time of this writing the expressions are not
+! relaxed although the numbers will be in the right range finally.
+
+	movi	(x1-x0),r7
+	movi	(x0-1-x1),r8
+	movi	(y1-y0),r8
+
+	.section .text.another,"ax"
+y0:
+	movi	(x1-start2),r9
+y1:
Index: gas/testsuite/gas/sh/sh64/sh64.exp
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/sh64.exp
diff -N gas/testsuite/gas/sh/sh64/sh64.exp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/sh64.exp 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,27 @@
+# Copyright (C) 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+
+# Please email any bugs, comments, and/or additions to this file to:
+# DejaGnu@cygnus.com
+
+if [istarget sh64-*-*] then {
+    set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
+    foreach rdtest $rd_test_list {
+	# We need to strip the ".d", but can leave the dirname.
+	verbose [file rootname $rdtest]
+	run_dump_test [file rootname $rdtest]
+    }
+}
Index: gas/testsuite/gas/sh/sh64/shift-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift-1.s
diff -N gas/testsuite/gas/sh/sh64/shift-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift-1.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,42 @@
+! Check that shift expressions translate to the proper reloc for MOVI and
+! SHORI for local and external symbols.  This is the 32-bit subset.
+	.text
+	.mode SHmedia
+start:
+	movi localsym & 65535,r4
+	movi (localsym >> 0) & 65535,r4
+	movi (localsym >> 16) & 65535,r4
+
+	movi externsym & 65535,r4
+	movi (externsym >> 0) & 65535,r4
+	movi (externsym >> 16) & 65535,r4
+
+	shori localsym & 65535,r4
+	shori (localsym >> 0) & 65535,r4
+	shori (localsym >> 16) & 65535,r4
+
+	shori externsym & 65535,r4
+	shori (externsym >> 0) & 65535,r4
+	shori (externsym >> 16) & 65535,r4
+
+	movi (localsym + 42) & 65535,r4
+	movi ((localsym + 43) >> 0) & 65535,r4
+	movi ((localsym + 44) >> 16) & 65535,r4
+
+	movi (externsym + 45) & 65535,r4
+	movi ((externsym + 46) >> 0) & 65535,r4
+	movi ((externsym + 47) >> 16) & 65535,r4
+
+	shori (localsym + 42) & 65535,r4
+	shori ((localsym + 43) >> 0) & 65535,r4
+	shori ((localsym + 44) >> 16) & 65535,r4
+
+	shori (externsym + 45) & 65535,r4
+	shori ((externsym + 46) >> 0) & 65535,r4
+	shori ((externsym + 47) >> 16) & 65535,r4
+
+	.data
+! Just make localsym have a non-zero offset into .data.
+	.long 0
+localsym:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/shift-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift-2.s
diff -N gas/testsuite/gas/sh/sh64/shift-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift-2.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,34 @@
+! Check that shift expressions translate to the proper reloc for MOVI and
+! SHORI for local and external symbols.  This is the 64-bit subset.
+	.text
+	.mode SHmedia
+start:
+	movi (localsym >> 32) & 65535,r4
+	movi (localsym >> 48) & 65535,r4
+
+	movi ((localsym + 44) >> 32) & 65535,r4
+	movi ((localsym + 43) >> 48) & 65535,r4
+
+	movi (externsym >> 32) & 65535,r4
+	movi (externsym >> 48) & 65535,r4
+
+	movi ((externsym + 41) >> 32) & 65535,r4
+	movi ((externsym + 42) >> 48) & 65535,r4
+
+	shori (localsym >> 32) & 65535,r4
+	shori (localsym >> 48) & 65535,r4
+
+	shori ((localsym + 44) >> 32) & 65535,r4
+	shori ((localsym + 43) >> 48) & 65535,r4
+
+	shori (externsym >> 32) & 65535,r4
+	shori (externsym >> 48) & 65535,r4
+
+	shori ((externsym + 41) >> 32) & 65535,r4
+	shori ((externsym + 42) >> 48) & 65535,r4
+
+	.data
+! Just make localsym have a non-zero offset into .data.
+	.long 0
+localsym:
+	.long 0
Index: gas/testsuite/gas/sh/sh64/shift-3.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift-3.s
diff -N gas/testsuite/gas/sh/sh64/shift-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift-3.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,7 @@
+! This should not get an internal error and it should emit the expected
+! relocs, even though the symbol looks local and is undefined.
+	.text
+	.mode SHmedia
+start:
+	movi	.LC0 & 65535, r1
+	movi	(.LC0 >> 16) & 65535, r3
Index: gas/testsuite/gas/sh/sh64/shift32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift32-1.d
diff -N gas/testsuite/gas/sh/sh64/shift32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift32-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,58 @@
+#as: --abi=32
+#objdump: -dr
+#source: shift-1.s
+#name: Shift expressions, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+0:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+4:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+4:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+8:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x4
+[ 	]+c:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+c:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+10:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+10:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+14:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+14:[ 	]+R_SH_IMM_MEDLOW16	externsym
+[ 	]+18:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+18:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+1c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+20:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+20:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x4
+[ 	]+24:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+24:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+28:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+28:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+2c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+2c:[ 	]+R_SH_IMM_MEDLOW16	externsym
+[ 	]+30:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+30:[ 	]+R_SH_IMM_LOW16	\.data\+0x2e
+[ 	]+34:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+34:[ 	]+R_SH_IMM_LOW16	\.data\+0x2f
+[ 	]+38:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+38:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x30
+[ 	]+3c:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+3c:[ 	]+R_SH_IMM_LOW16	externsym\+0x2d
+[ 	]+40:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+40:[ 	]+R_SH_IMM_LOW16	externsym\+0x2e
+[ 	]+44:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+44:[ 	]+R_SH_IMM_MEDLOW16	externsym\+0x2f
+[ 	]+48:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+48:[ 	]+R_SH_IMM_LOW16	\.data\+0x2e
+[ 	]+4c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+4c:[ 	]+R_SH_IMM_LOW16	\.data\+0x2f
+[ 	]+50:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+50:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x30
+[ 	]+54:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+54:[ 	]+R_SH_IMM_LOW16	externsym\+0x2d
+[ 	]+58:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+58:[ 	]+R_SH_IMM_LOW16	externsym\+0x2e
+[ 	]+5c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+5c:[ 	]+R_SH_IMM_MEDLOW16	externsym\+0x2f
Index: gas/testsuite/gas/sh/sh64/shift32-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift32-3.d
diff -N gas/testsuite/gas/sh/sh64/shift32-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift32-3.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,14 @@
+#as: --abi=32
+#objdump: -dr
+#source: shift-3.s
+#name: Shift expression, local but undefined symbol, 32-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000010[ 	]+movi	0,r1
+[ 	]+0:[ 	]+R_SH_IMM_LOW16	\.LC0
+[ 	]+4:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+4:[ 	]+R_SH_IMM_MEDLOW16	\.LC0
Index: gas/testsuite/gas/sh/sh64/shift32-noexp-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift32-noexp-3.d
diff -N gas/testsuite/gas/sh/sh64/shift32-noexp-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift32-noexp-3.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,14 @@
+#as: --abi=32 -no-expand
+#objdump: -dr
+#source: shift-3.s
+#name: Shift expression, local but undefined symbol, 32-bit ABI with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000010[ 	]+movi	0,r1
+[ 	]+0:[ 	]+R_SH_IMM_LOW16	\.LC0
+[ 	]+4:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+4:[ 	]+R_SH_IMM_MEDLOW16	\.LC0
Index: gas/testsuite/gas/sh/sh64/shift64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift64-1.d
diff -N gas/testsuite/gas/sh/sh64/shift64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift64-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,58 @@
+#as: --abi=64
+#objdump: -dr
+#source: shift-1.s
+#name: Shift expressions, 64-bit ABI, 32-bit subset.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+0:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+4:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+4:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+8:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+8:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x4
+[ 	]+c:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+c:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+10:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+10:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+14:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+14:[ 	]+R_SH_IMM_MEDLOW16	externsym
+[ 	]+18:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+18:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+1c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+1c:[ 	]+R_SH_IMM_LOW16	\.data\+0x4
+[ 	]+20:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+20:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x4
+[ 	]+24:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+24:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+28:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+28:[ 	]+R_SH_IMM_LOW16	externsym
+[ 	]+2c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+2c:[ 	]+R_SH_IMM_MEDLOW16	externsym
+[ 	]+30:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+30:[ 	]+R_SH_IMM_LOW16	\.data\+0x2e
+[ 	]+34:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+34:[ 	]+R_SH_IMM_LOW16	\.data\+0x2f
+[ 	]+38:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+38:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x30
+[ 	]+3c:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+3c:[ 	]+R_SH_IMM_LOW16	externsym\+0x2d
+[ 	]+40:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+40:[ 	]+R_SH_IMM_LOW16	externsym\+0x2e
+[ 	]+44:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+44:[ 	]+R_SH_IMM_MEDLOW16	externsym\+0x2f
+[ 	]+48:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+48:[ 	]+R_SH_IMM_LOW16	\.data\+0x2e
+[ 	]+4c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+4c:[ 	]+R_SH_IMM_LOW16	\.data\+0x2f
+[ 	]+50:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+50:[ 	]+R_SH_IMM_MEDLOW16	\.data\+0x30
+[ 	]+54:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+54:[ 	]+R_SH_IMM_LOW16	externsym\+0x2d
+[ 	]+58:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+58:[ 	]+R_SH_IMM_LOW16	externsym\+0x2e
+[ 	]+5c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+5c:[ 	]+R_SH_IMM_MEDLOW16	externsym\+0x2f
Index: gas/testsuite/gas/sh/sh64/shift64-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift64-2.d
diff -N gas/testsuite/gas/sh/sh64/shift64-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift64-2.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,42 @@
+#as: --abi=64
+#objdump: -dr
+#source: shift-2.s
+#name: Shift expressions, 64-bit ABI, 64-bit subset.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+0:[ 	]+R_SH_IMM_MEDHI16	\.data\+0x4
+[ 	]+4:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+4:[ 	]+R_SH_IMM_HI16	\.data\+0x4
+[ 	]+8:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+8:[ 	]+R_SH_IMM_MEDHI16	\.data\+0x30
+[ 	]+c:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+c:[ 	]+R_SH_IMM_HI16	\.data\+0x2f
+[ 	]+10:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+10:[ 	]+R_SH_IMM_MEDHI16	externsym
+[ 	]+14:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+14:[ 	]+R_SH_IMM_HI16	externsym
+[ 	]+18:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+18:[ 	]+R_SH_IMM_MEDHI16	externsym\+0x29
+[ 	]+1c:[ 	]+cc000040[ 	]+movi	0,r4
+[ 	]+1c:[ 	]+R_SH_IMM_HI16	externsym\+0x2a
+[ 	]+20:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+20:[ 	]+R_SH_IMM_MEDHI16	\.data\+0x4
+[ 	]+24:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+24:[ 	]+R_SH_IMM_HI16	\.data\+0x4
+[ 	]+28:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+28:[ 	]+R_SH_IMM_MEDHI16	\.data\+0x30
+[ 	]+2c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+2c:[ 	]+R_SH_IMM_HI16	\.data\+0x2f
+[ 	]+30:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+30:[ 	]+R_SH_IMM_MEDHI16	externsym
+[ 	]+34:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+34:[ 	]+R_SH_IMM_HI16	externsym
+[ 	]+38:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+38:[ 	]+R_SH_IMM_MEDHI16	externsym\+0x29
+[ 	]+3c:[ 	]+c8000040[ 	]+shori	0,r4
+[ 	]+3c:[ 	]+R_SH_IMM_HI16	externsym\+0x2a
Index: gas/testsuite/gas/sh/sh64/shift64-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift64-3.d
diff -N gas/testsuite/gas/sh/sh64/shift64-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift64-3.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,14 @@
+#as: --abi=64
+#objdump: -dr
+#source: shift-3.s
+#name: Shift expression, local but undefined symbol, 64-bit ABI.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000010[ 	]+movi	0,r1
+[ 	]+0:[ 	]+R_SH_IMM_LOW16	\.LC0
+[ 	]+4:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+4:[ 	]+R_SH_IMM_MEDLOW16	\.LC0
Index: gas/testsuite/gas/sh/sh64/shift64-noexp-3.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/shift64-noexp-3.d
diff -N gas/testsuite/gas/sh/sh64/shift64-noexp-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/shift64-noexp-3.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,14 @@
+#as: --abi=64 -no-expand
+#objdump: -dr
+#source: shift-3.s
+#name: Shift expression, local but undefined symbol, 64-bit ABI with -no-expand.
+
+.*:     file format .*-sh64
+
+Disassembly of section \.text:
+
+[0]+ <start>:
+[ 	]+0:[ 	]+cc000010[ 	]+movi	0,r1
+[ 	]+0:[ 	]+R_SH_IMM_LOW16	\.LC0
+[ 	]+4:[ 	]+cc000030[ 	]+movi	0,r3
+[ 	]+4:[ 	]+R_SH_IMM_MEDLOW16	\.LC0
Index: gas/testsuite/gas/sh/sh64/syntax-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/syntax-1.d
diff -N gas/testsuite/gas/sh/sh64/syntax-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/syntax-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,157 @@
+#as: --isa=shmedia --no-exp
+#objdump: -d
+#name: Minimum SH64 Syntax Support.
+
+.*:     file format elf64-sh64
+
+Disassembly of section .text:
+
+0000000000000000 <.*>:
+   0:	88100410 	ld.l	r1,4,r1
+   4:	88100410 	ld.l	r1,4,r1
+   8:	e8003a00 	pta/l	40 <.*>,tr0
+   c:	e8003600 	pta/l	40 <.*>,tr0
+  10:	e8003000 	pta/u	40 <.*>,tr0
+  14:	e8002c00 	pta/u	40 <.*>,tr0
+  18:	e8002a00 	pta/l	40 <.*>,tr0
+  1c:	e8002600 	pta/l	40 <.*>,tr0
+  20:	ec002000 	ptb/u	40 <.*>,tr0
+  24:	ec001c00 	ptb/u	40 <.*>,tr0
+  28:	ec001a00 	ptb/l	40 <.*>,tr0
+  2c:	ec001600 	ptb/l	40 <.*>,tr0
+  30:	e8001200 	pta/l	40 <.*>,tr0
+  34:	e8000e00 	pta/l	40 <.*>,tr0
+  38:	ec000a00 	ptb/l	40 <.*>,tr0
+  3c:	ec000600 	ptb/l	40 <.*>,tr0
+  40:	040983f0 	or	r0,r32,r63
+  44:	240ffc00 	getcon	sr,r0
+  48:	27fffc00 	getcon	usr,r0
+  4c:	4405fc00 	gettr	tr0,r0
+  50:	4475fc00 	gettr	tr7,r0
+  54:	380003f0 	fmov.s	fr0,fr63
+  58:	380103e0 	fmov.d	dr0,dr62
+  5c:	140e0000 	ftrv.s	mtrx0,fv0,fv0
+  60:	170ef3c0 	ftrv.s	mtrx48,fv60,fv60
+  64:	240ffc00 	getcon	sr,r0
+  68:	241ffc00 	getcon	ssr,r0
+  6c:	242ffc00 	getcon	pssr,r0
+  70:	244ffc00 	getcon	intevt,r0
+  74:	245ffc00 	getcon	expevt,r0
+  78:	246ffc00 	getcon	pexpevt,r0
+  7c:	247ffc00 	getcon	tra,r0
+  80:	248ffc00 	getcon	spc,r0
+  84:	249ffc00 	getcon	pspc,r0
+  88:	24affc00 	getcon	resvec,r0
+  8c:	24bffc00 	getcon	vbr,r0
+  90:	24dffc00 	getcon	tea,r0
+  94:	250ffc00 	getcon	dcr,r0
+  98:	251ffc00 	getcon	kcr0,r0
+  9c:	252ffc00 	getcon	kcr1,r0
+  a0:	27effc00 	getcon	ctc,r0
+  a4:	27fffc00 	getcon	usr,r0
+
+00000000000000a8 <.*>:
+  a8:	e0 04       	mov	#4,r0
+  aa:	00 09       	nop	
+
+00000000000000ac <.*>:
+  ac:	cc001000 	movi	4,r0
+
+00000000000000b0 <.*>:
+  b0:	50 02       	mov.l	@\(8,r0\),r0
+  b2:	00 09       	nop	
+
+00000000000000b4 <.*>:
+  b4:	b0000400 	ld.uw	r0,2,r0
+  b8:	84000400 	ld.w	r0,2,r0
+  bc:	a4000400 	st.w	r0,2,r0
+  c0:	88000400 	ld.l	r0,4,r0
+  c4:	a8000400 	st.l	r0,4,r0
+  c8:	94000400 	fld.s	r0,4,fr0
+  cc:	b4000400 	fst.s	r0,4,fr0
+  d0:	e8000600 	pta/l	d4 <.*>,tr0
+  d4:	ec000a00 	ptb/l	dc <.*>,tr0
+  d8:	8c000400 	ld.q	r0,8,r0
+  dc:	ac000400 	st.q	r0,8,r0
+  e0:	9c000400 	fld.d	r0,8,dr0
+  e4:	bc000400 	fst.d	r0,8,dr0
+  e8:	98000400 	fld.p	r0,8,fp0
+  ec:	b8000400 	fst.p	r0,8,fp0
+  f0:	e00407f0 	alloco	r0,32
+  f4:	e00507f0 	icbi	r0,32
+  f8:	e00907f0 	ocbi	r0,32
+  fc:	e00807f0 	ocbp	r0,32
+ 100:	e00c07f0 	ocbwb	r0,32
+ 104:	e00107f0 	prefi	r0,32
+
+0000000000000108 <.*>:
+ 108:	90 01       	mov.w	10e <.*>,r0	! 0x8101
+ 10a:	85 01       	mov.w	@\(2,r0\),r0
+ 10c:	c5 01       	mov.w	@\(2,gbr\),r0
+ 10e:	81 01       	mov.w	r0,@\(2,r0\)
+ 110:	c1 01       	mov.w	r0,@\(2,gbr\)
+ 112:	8b 01       	bf	118 <.*>
+ 114:	89 01       	bt	11a <.*>
+ 116:	a0 01       	bra	11c <.*>
+ 118:	b0 01       	bsr	11e <.*>
+ 11a:	d0 00       	mov.l	11c <.*>,r0	! 0x5001c601
+ 11c:	50 01       	mov.l	@\(4,r0\),r0
+ 11e:	c6 01       	mov.l	@\(4,gbr\),r0
+ 120:	c7 01       	mova	128 <.*>,r0
+ 122:	10 01       	mov.l	r0,@\(4,r0\)
+ 124:	c2 01       	mov.l	r0,@\(4,gbr\)
+ 126:	00 09       	nop	
+
+0000000000000128 <.*>:
+ 128:	00000139 	.long 0x00000139
+ 12c:	0000013d 	.long 0x0000013d
+ 130:	00000138 	.long 0x00000138
+ 134:	00000138 	.long 0x00000138
+
+0000000000000138 <.*>:
+ 138:	00 00       	.word 0x0000
+ 13a:	01 40       	.word 0x0140
+ 13c:	00 00       	.word 0x0000
+ 13e:	01 61       	.word 0x0161
+
+0000000000000140 <.*>:
+ 140:	cc000000 	movi	0,r0
+ 144:	c8000000 	shori	0,r0
+ 148:	6bf10200 	ptabs/l	r0,tr0
+ 14c:	4401fd20 	blink	tr0,r18
+ 150:	cc000000 	movi	0,r0
+ 154:	c8000000 	shori	0,r0
+ 158:	6bf10200 	ptabs/l	r0,tr0
+ 15c:	4401fd20 	blink	tr0,r18
+ 160:	cfff7000 	movi	-36,r0
+ 164:	cfffe400 	movi	-7,r0
+ 168:	ebfffa00 	pta/l	160 <.*>,tr0
+
+000000000000016c <.*>:
+ 16c:	0000016d 	.long 0x0000016d
+
+0000000000000170 <.*>:
+ 170:	00000171 	.long 0x00000171
+ 174:	cfffd000 	movi	-12,r0
+ 178:	cfffc000 	movi	-16,r0
+
+000000000000017c <.*>:
+ 17c:	c7 01       	mova	184 <.*>,r0
+ 17e:	60 12       	mov.l	@r1,r0
+ 180:	30 1c       	add	r1,r0
+ 182:	00 03       	bsrf	r0
+
+0000000000000184 <.*>:
+ 184:	00 00       	.word 0x0000
+ 186:	00 05       	mov.w	r0,@\(r0,r0\)
+
+0000000000000188 <.*>:
+ 188:	cc002400 	movi	9,r0
+ 18c:	cc001c00 	movi	7,r0
+ 190:	cc004000 	movi	16,r0
+ 194:	cc001000 	movi	4,r0
+ 198:	cffff800 	movi	-2,r0
+ 19c:	cc000400 	movi	1,r0
+ 1a0:	cc002400 	movi	9,r0
+ 1a4:	cc006000 	movi	24,r0
+ 1a8:	cc002000 	movi	8,r0
Index: gas/testsuite/gas/sh/sh64/syntax-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/syntax-1.s
diff -N gas/testsuite/gas/sh/sh64/syntax-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/syntax-1.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,199 @@
+! Verify that minimum support is provided as per SH-5/ST50-047-02.
+
+	.text
+	.mode shmedia
+start:
+
+! Both all-upper and all-lower must be supported.  PTA/PTB without /L
+! or /U is equivalent to with /L
+
+	ld.l	r1,4,r1
+	LD.L	r1,4,r1
+	pta/l	.L1,tr0
+	PTA/L	.L1,tr0
+	pta/u	.L1,tr0
+	PTA/U	.L1,tr0
+	pta/l	.L1,tr0
+	PTA/L	.L1,tr0
+	ptb/u	.L2,tr0
+	PTB/U	.L2,tr0
+	ptb/l	.L2,tr0
+	PTB/L	.L2,tr0
+	pta	.L1,tr0
+	PTA	.L1,tr0
+	ptb	.L2,tr0
+	PTB	.L2,tr0
+.L1:
+	.mode shcompact
+.L2:
+	.align 2
+	.mode shmedia
+
+! All register names accepted, either case.
+
+	or	r0,r32,r63
+	GETCON	CR0,R0
+	getcon	cr63,r0
+	GETTR	TR0,R0
+	gettr	tr7,r0
+	FMOV.S	FR0,FR63
+	fmov.d	dr0,dr62
+	FTRV.S	MTRX0,FV0,fv0
+	ftrv.s	mtrx48,FV60,FV60
+
+! All control register names
+
+	getcon	sr,r0
+	getcon	ssr,r0
+	getcon	pssr,r0
+	getcon	intevt,r0
+	getcon	expevt,r0
+	getcon	pexpevt,r0
+	getcon	tra,r0
+	getcon	spc,r0
+	getcon	pspc,r0
+	getcon	resvec,r0
+	getcon	vbr,r0
+	getcon	tea,r0
+	getcon	dcr,r0
+	getcon	kcr0,r0
+	getcon	kcr1,r0
+	getcon	ctc,r0
+	getcon	usr,r0
+
+! immediates
+
+	.mode shcompact
+s1:
+	mov	#4,r0
+
+	.align 2
+	.mode shmedia
+s2:
+	movi	4,r0
+
+! Scaled operands - user gives scaled value
+
+	.mode shcompact
+s3:
+	mov.l	@(8,r0),r0
+
+	.align 2
+	.mode shmedia
+s4:
+	ld.uw	r0,2,r0
+	ld.w	r0,2,r0
+	st.w	r0,2,r0
+	ld.l	r0,4,r0
+	st.l	r0,4,r0
+	fld.s	r0,4,fr0
+	fst.s	r0,4,fr0
+	pta	.+4,tr0
+	ptb	.+7,tr0
+	ld.q	r0,8,r0
+	st.q	r0,8,r0
+	fld.d	r0,8,dr0
+	fst.d	r0,8,dr0
+	fld.p	r0,8,fp0
+	fst.p	r0,8,fp0
+	alloco	r0,32
+	icbi	r0,32
+	ocbi	r0,32
+	ocbp	r0,32
+	ocbwb	r0,32
+	prefi	r0,32
+
+	.mode	shcompact
+s5:
+	mov.w	@(6,pc),r0
+	mov.w	@(2,r0),r0
+	mov.w	@(2,gbr),r0
+	mov.w	r0,@(2,r0)
+	mov.w	r0,@(2,gbr)
+	bf	.+6
+	bt	.+6
+	bra	.+6
+	bsr	.+6
+	mov.l	@(4,pc),r0
+	mov.l	@(4,r0),r0
+	mov.l	@(4,gbr),r0
+	mova	@(6,pc),r0
+	mov.l	r0,@(4,r0)
+	mov.l	r0,@(4,gbr)
+
+! branchlabel vs datalabel
+
+	.align 2
+	.mode shmedia
+s6:
+	.long	.L3
+	.long	.L3 + 4
+	.long	datalabel .L3
+	.long	DATALABEL .L3
+.L3:
+	.mode	shcompact
+
+s7:
+	.long	.L4
+	.long	.L5
+.L4:
+
+	.align 2
+	.mode shmedia
+s8:
+
+	movi	(.L4 >> 16) & 65535,r0
+	shori	.L4 & 65535, r0
+	ptabs	r0,tr0
+	blink	tr0,r18
+
+	movi	(.L5 >> 16) & 65535,r0
+	shori	.L5 & 65535, r0
+	ptabs	r0,tr0
+	blink	tr0,r18
+.L5:
+
+	movi	(.L4-DATALABEL .L6), r0
+.L6:
+	movi	(.L5-DATALABEL .L7), r0
+.L7:
+
+	pt	.L5,tr0
+
+! Expressions
+
+! Symbols
+
+abcdefghijklmnopqrstuvwxyz0123456789_:
+	.long	abcdefghijklmnopqrstuvwxyz0123456789_
+_x:
+	.long	_x
+
+! program counter
+
+	movi	.L7-$,r0
+.L8:	movi	.L7-.L8,r0
+
+	.mode shcompact
+s9:
+	mova	@(litpool-$,pc), r0
+	mov.l	@r1,r0
+	add	r1,r0
+	bsrf	r0
+litpool:
+	.long	s10 - DATALABEL $
+
+! operators
+
+	.align 2
+	.mode shmedia
+s10:
+	movi	8+1,r0
+	movi	8-1,r0
+	movi	8<<1,r0
+	movi	8>>1,r0
+	movi	~1,r0
+	movi	5&3,r0
+	movi	8|1,r0
+	movi	8*3,r0
+	movi	24/3,r0
Index: gas/testsuite/gas/sh/sh64/syntax-2.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/syntax-2.d
diff -N gas/testsuite/gas/sh/sh64/syntax-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/syntax-2.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,11 @@
+#as: --isa=shmedia
+#objdump: -d
+#name: Minimum SH64 Syntax Support - Pseudos.
+
+dump.o:     file format elf64-sh64
+
+Disassembly of section .text:
+
+0000000000000000 <.*>:
+   0:	e8000a00 	pta/l	8 <.*>,tr0
+   4:	ec000600 	ptb/l	8 <.*>,tr0
Index: gas/testsuite/gas/sh/sh64/syntax-2.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/syntax-2.s
diff -N gas/testsuite/gas/sh/sh64/syntax-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/syntax-2.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,10 @@
+	.text
+start:
+
+! pseudo-ops
+
+	pt	.L4,tr0
+	pt	.L5,tr0
+.L4:
+	.mode shcompact
+.L5:
Index: gas/testsuite/gas/sh/sh64/ua-1.s
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ua-1.s
diff -N gas/testsuite/gas/sh/sh64/ua-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ua-1.s 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,16 @@
+! Check that unaligned pseudos emit the expected relocs and contents
+! whether aligned or not.
+
+	.section .rodata,"a"
+start:
+	.uaquad 0x123456789abcdef
+	.byte 42
+	.uaword 0x4a21
+	.ualong 0x43b1abcd
+	.ualong externsym0 + 3
+	.uaquad 0x12c456d89ab1d0f
+	.uaquad externsym1 + 41
+	.byte 2
+	.uaquad 0x1a34b67c9ab0d4f
+	.ualong externsym2 + 42
+	.uaquad externsym3 + 43
Index: gas/testsuite/gas/sh/sh64/ua32-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ua32-1.d
diff -N gas/testsuite/gas/sh/sh64/ua32-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ua32-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,25 @@
+#as: --abi=32
+#objdump: -sr
+#source: ua-1.s
+#name: Unaligned pseudos, 32-bit ABI.
+
+# Note that the relocs for externsym0 + 3 and externsym2 + 42 are
+# partial-in-place, i.e. REL-like, and are not displayed correctly.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET  *TYPE  *VALUE 
+0+0f R_SH_DIR32        externsym0
+0+1b R_SH_64           externsym1\+0x0+29
+0+2c R_SH_DIR32        externsym2
+0+30 R_SH_64           externsym3\+0x0+2b
+
+
+Contents of section \.text:
+Contents of section \.data:
+Contents of section \.rodata:
+ 0000 01234567 89abcdef 2a4a2143 b1abcd00  .*
+ 0010 00000301 2c456d89 ab1d0f00 00000000  .*
+ 0020 00000002 01a34b67 c9ab0d4f 0000002a  .*
+ 0030 00000000 00000000                    .*
Index: gas/testsuite/gas/sh/sh64/ua64-1.d
===================================================================
RCS file: gas/testsuite/gas/sh/sh64/ua64-1.d
diff -N gas/testsuite/gas/sh/sh64/ua64-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/sh/sh64/ua64-1.d 2 Feb 2002 04:00:31 -0000
@@ -0,0 +1,25 @@
+#as: --abi=64
+#objdump: -sr
+#name: Unaligned pseudos, 64-bit ABI.
+#source: ua-1.s
+
+# Note that the relocs for externsym0 + 3 and externsym2 + 42 are
+# partial-in-place, i.e. REL-like, and are not displayed correctly.
+
+.*:     file format .*-sh64
+
+RELOCATION RECORDS FOR \[\.rodata\]:
+OFFSET           TYPE              VALUE 
+0+0f R_SH_DIR32        externsym0
+0+1b R_SH_64           externsym1\+0x0000000000000029
+0+2c R_SH_DIR32        externsym2
+0+30 R_SH_64           externsym3\+0x000000000000002b
+
+
+Contents of section \.text:
+Contents of section \.data:
+Contents of section \.rodata:
+ 0000 01234567 89abcdef 2a4a2143 b1abcd00  .*
+ 0010 00000301 2c456d89 ab1d0f00 00000000  .*
+ 0020 00000002 01a34b67 c9ab0d4f 0000002a  .*
+ 0030 00000000 00000000                    .*

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]