aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-04-16 15:29:39 +0930
committerAlan Modra <amodra@gmail.com>2018-04-16 15:29:39 +0930
commit211dc24b8744ed14ee5c293e7ac164d02e1fa1fe (patch)
treefcddbd29b4505638de6f018301a674816da8e025 /gas
parent4db9937a27496d2f62ac1dde76565809acd4ecde (diff)
downloadgdb-211dc24b8744ed14ee5c293e7ac164d02e1fa1fe.zip
gdb-211dc24b8744ed14ee5c293e7ac164d02e1fa1fe.tar.gz
gdb-211dc24b8744ed14ee5c293e7ac164d02e1fa1fe.tar.bz2
Remove sh5 and sh64 support
include/ * dis-asm.h: Remove sh5 and sh64 support. bfd/ * Makefile.am: Remove sh5 and sh64 support. * archures.c: Likewise. * config.bfd: Likewise. * configure.ac: Likewise. * cpu-sh.c: Likewise. * elf32-sh-relocs.h: Likewise. * elf32-sh.c: Likewise. * targets.c: Likewise. * elf32-sh64-com.c: Delete. * elf32-sh64.c: Delete. * elf32-sh64.h: Delete. * elf64-sh64.c: Delete. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * po/SRC-POTFILES.in: Regenerate. opcodes/ * Makefile.am: Remove sh5 and sh64 support. * configure.ac: Likewise. * disassemble.c: Likewise. * disassemble.h: Likewise. * sh-dis.c: Likewise. * sh64-dis.c: Delete. * sh64-opc.c: Delete. * sh64-opc.h: Delete. * Makefile.in: Regenerate. * configure: Regenerate. * po/POTFILES.in: Regenerate. bintuils/ * testsuite/binutils-all/objcopy.exp: Remove sh5 and sh64 support. gas/ * Makefile.am: Remove sh5 and sh64 support. * config/tc-sh.c: Likewise. * configure.tgt: Likewise. * doc/Makefile.am: Likewise. * doc/as.texinfo: Likewise. * testsuite/gas/cfi/cfi.exp: Likewise. * testsuite/gas/sh/basic.exp: Likewise. * config/tc-sh64.c: Delete. * config/tc-sh64.h: Delete. * doc/c-sh64.texi: Delete. * testsuite/gas/sh/sh64/abi-32.d: Delete. * testsuite/gas/sh/sh64/abi-32.s: Delete. * testsuite/gas/sh/sh64/abi-64.d: Delete. * testsuite/gas/sh/sh64/abi-64.s: Delete. * testsuite/gas/sh/sh64/basic-1.d: Delete. * testsuite/gas/sh/sh64/basic-1.s: Delete. * testsuite/gas/sh/sh64/case-1.d: Delete. * testsuite/gas/sh/sh64/case-1.s: Delete. * testsuite/gas/sh/sh64/case-noexp-1.d: Delete. * testsuite/gas/sh/sh64/crange1-1.d: Delete. * testsuite/gas/sh/sh64/crange1-2.d: Delete. * testsuite/gas/sh/sh64/crange1.s: Delete. * testsuite/gas/sh/sh64/crange2-1.d: Delete. * testsuite/gas/sh/sh64/crange2-2.d: Delete. * testsuite/gas/sh/sh64/crange2-noexp-1.d: Delete. * testsuite/gas/sh/sh64/crange2.s: Delete. * testsuite/gas/sh/sh64/crange3-1.d: Delete. * testsuite/gas/sh/sh64/crange3.s: Delete. * testsuite/gas/sh/sh64/crange4-1.d: Delete. * testsuite/gas/sh/sh64/crange4.s: Delete. * testsuite/gas/sh/sh64/crange5-1.d: Delete. * testsuite/gas/sh/sh64/crange5.s: Delete. * testsuite/gas/sh/sh64/creg-1.d: Delete. * testsuite/gas/sh/sh64/creg-1.s: Delete. * testsuite/gas/sh/sh64/creg-2.d: Delete. * testsuite/gas/sh/sh64/creg-2.s: Delete. * testsuite/gas/sh/sh64/datal-1.s: Delete. * testsuite/gas/sh/sh64/datal-2.d: Delete. * testsuite/gas/sh/sh64/datal-2.s: Delete. * testsuite/gas/sh/sh64/datal-3.s: Delete. * testsuite/gas/sh/sh64/datal32-1.d: Delete. * testsuite/gas/sh/sh64/datal32-3.d: Delete. * testsuite/gas/sh/sh64/datal64-1.d: Delete. * testsuite/gas/sh/sh64/datal64-3.d: Delete. * testsuite/gas/sh/sh64/eh-1.d: Delete. * testsuite/gas/sh/sh64/eh-1.s: Delete. * testsuite/gas/sh/sh64/endian-1.d: Delete. * testsuite/gas/sh/sh64/endian-1.s: Delete. * testsuite/gas/sh/sh64/endian-2.d: Delete. * testsuite/gas/sh/sh64/endian-2.s: Delete. * testsuite/gas/sh/sh64/err-1.s: Delete. * testsuite/gas/sh/sh64/err-2.s: Delete. * testsuite/gas/sh/sh64/err-3.s: Delete. * testsuite/gas/sh/sh64/err-4.s: Delete. * testsuite/gas/sh/sh64/err-abi-32.s: Delete. * testsuite/gas/sh/sh64/err-abi-64.s: Delete. * testsuite/gas/sh/sh64/err-dsp.s: Delete. * testsuite/gas/sh/sh64/err-movi-noexp-1.s: Delete. * testsuite/gas/sh/sh64/err-noexp-cmd1.s: Delete. * testsuite/gas/sh/sh64/err-pt-1.s: Delete. * testsuite/gas/sh/sh64/err-pt32-cmd1.s: Delete. * testsuite/gas/sh/sh64/err-pt32-cmd2.s: Delete. * testsuite/gas/sh/sh64/err-pt32-cmd3.s: Delete. * testsuite/gas/sh/sh64/err-ptb-1.s: Delete. * testsuite/gas/sh/sh64/err-ptb-2.s: Delete. * testsuite/gas/sh/sh64/err.exp: Delete. * testsuite/gas/sh/sh64/immexpr1.s: Delete. * testsuite/gas/sh/sh64/immexpr2.s: Delete. * testsuite/gas/sh/sh64/immexpr32-1.d: Delete. * testsuite/gas/sh/sh64/immexpr32-2.d: Delete. * testsuite/gas/sh/sh64/immexpr64-1.d: Delete. * testsuite/gas/sh/sh64/immexpr64-2.d: Delete. * testsuite/gas/sh/sh64/lineno.d: Delete. * testsuite/gas/sh/sh64/lineno.s: Delete. * testsuite/gas/sh/sh64/localcom-1.d: Delete. * testsuite/gas/sh/sh64/localcom-1.s: Delete. * testsuite/gas/sh/sh64/mix-1.d: Delete. * testsuite/gas/sh/sh64/mix-1.s: Delete. * testsuite/gas/sh/sh64/mix-noexp-1.d: Delete. * testsuite/gas/sh/sh64/movi-1.s: Delete. * testsuite/gas/sh/sh64/movi-2.s: Delete. * testsuite/gas/sh/sh64/movi-3.d: Delete. * testsuite/gas/sh/sh64/movi-3.s: Delete. * testsuite/gas/sh/sh64/movi32-1.d: Delete. * testsuite/gas/sh/sh64/movi32-2.d: Delete. * testsuite/gas/sh/sh64/movi32-noexp-2.d: Delete. * testsuite/gas/sh/sh64/movi64-1.d: Delete. * testsuite/gas/sh/sh64/movi64-2.d: Delete. * testsuite/gas/sh/sh64/movi64-2.s: Delete. * testsuite/gas/sh/sh64/movi64-3.d: Delete. * testsuite/gas/sh/sh64/movi64-noexp-2.d: Delete. * testsuite/gas/sh/sh64/pt-1.d: Delete. * testsuite/gas/sh/sh64/pt-1.s: Delete. * testsuite/gas/sh/sh64/pt-2.s: Delete. * testsuite/gas/sh/sh64/pt-noexp-1.d: Delete. * testsuite/gas/sh/sh64/pt32-1.d: Delete. * testsuite/gas/sh/sh64/pt32-noexp-2.d: Delete. * testsuite/gas/sh/sh64/pt64-1.d: Delete. * testsuite/gas/sh/sh64/pt64-32-1.d: Delete. * testsuite/gas/sh/sh64/pt64-32-2.d: Delete. * testsuite/gas/sh/sh64/pt64-noexp-2.d: Delete. * testsuite/gas/sh/sh64/ptc-1.s: Delete. * testsuite/gas/sh/sh64/ptc32-1.d: Delete. * testsuite/gas/sh/sh64/ptc32-noexp-1.d: Delete. * testsuite/gas/sh/sh64/ptc64-1.d: Delete. * testsuite/gas/sh/sh64/ptc64-32-1.d: Delete. * testsuite/gas/sh/sh64/ptc64-noexp-1.d: Delete. * testsuite/gas/sh/sh64/ptext-1.s: Delete. * testsuite/gas/sh/sh64/ptext32-1.d: Delete. * testsuite/gas/sh/sh64/ptext32-noexp-1.d: Delete. * testsuite/gas/sh/sh64/ptext64-1.d: Delete. * testsuite/gas/sh/sh64/ptext64-32-1.d: Delete. * testsuite/gas/sh/sh64/ptext64-noexp-1.d: Delete. * testsuite/gas/sh/sh64/rel-1.s: Delete. * testsuite/gas/sh/sh64/rel-2.s: Delete. * testsuite/gas/sh/sh64/rel-3.s: Delete. * testsuite/gas/sh/sh64/rel-4.s: Delete. * testsuite/gas/sh/sh64/rel-5.s: Delete. * testsuite/gas/sh/sh64/rel32-1.d: Delete. * testsuite/gas/sh/sh64/rel32-2.d: Delete. * testsuite/gas/sh/sh64/rel32-3.d: Delete. * testsuite/gas/sh/sh64/rel32-4.d: Delete. * testsuite/gas/sh/sh64/rel32-5.d: Delete. * testsuite/gas/sh/sh64/rel64-1.d: Delete. * testsuite/gas/sh/sh64/rel64-2.d: Delete. * testsuite/gas/sh/sh64/rel64-3.d: Delete. * testsuite/gas/sh/sh64/rel64-4.d: Delete. * testsuite/gas/sh/sh64/rel64-5.d: Delete. * testsuite/gas/sh/sh64/relax-1.d: Delete. * testsuite/gas/sh/sh64/relax-1.s: Delete. * testsuite/gas/sh/sh64/relax-2.d: Delete. * testsuite/gas/sh/sh64/relax-2.s: Delete. * testsuite/gas/sh/sh64/relax-3.d: Delete. * testsuite/gas/sh/sh64/relax-3.s: Delete. * testsuite/gas/sh/sh64/sh64.exp: Delete. * testsuite/gas/sh/sh64/shift-1.s: Delete. * testsuite/gas/sh/sh64/shift-2.s: Delete. * testsuite/gas/sh/sh64/shift-3.s: Delete. * testsuite/gas/sh/sh64/shift32-1.d: Delete. * testsuite/gas/sh/sh64/shift32-3.d: Delete. * testsuite/gas/sh/sh64/shift32-noexp-3.d: Delete. * testsuite/gas/sh/sh64/shift64-1.d: Delete. * testsuite/gas/sh/sh64/shift64-2.d: Delete. * testsuite/gas/sh/sh64/shift64-3.d: Delete. * testsuite/gas/sh/sh64/shift64-noexp-3.d: Delete. * testsuite/gas/sh/sh64/syntax-1.d: Delete. * testsuite/gas/sh/sh64/syntax-1.s: Delete. * testsuite/gas/sh/sh64/syntax-2.d: Delete. * testsuite/gas/sh/sh64/syntax-2.s: Delete. * testsuite/gas/sh/sh64/ua-1.s: Delete. * testsuite/gas/sh/sh64/ua32-1.d: Delete. * testsuite/gas/sh/sh64/ua64-1.d: Delete. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * po/POTFILES.in: Regenerate. ld/ * Makefile.am: Remove sh5 and sh64 support. * configure.tgt: Likewise. * ldlang.c: Likewise. * testsuite/ld-elfcomm/elfcomm.exp: Likewise. * testsuite/ld-gc/gc.exp: Likewise. * testsuite/ld-gc/pr13683.d: Likewise. * testsuite/ld-scripts/crossref.exp: Likewise. * testsuite/ld-selective/selective.exp: Likewise. * testsuite/ld-sh/ld-r-1.d: Likewise. * testsuite/ld-sh/rd-sh.exp: Likewise. * testsuite/ld-sh/sh.exp: Likewise. * testsuite/ld-srec/srec.exp: Likewise. * testsuite/ld-undefined/undefined.exp: Likewise. * emulparams/shelf32.sh: Delete. * emulparams/shelf32_linux.sh: Delete. * emulparams/shelf32_nbsd.sh: Delete. * emulparams/shelf64.sh: Delete. * emulparams/shelf64_nbsd.sh: Delete. * emulparams/shlelf32.sh: Delete. * emulparams/shlelf32_linux.sh: Delete. * emulparams/shlelf32_nbsd.sh: Delete. * emulparams/shlelf64.sh: Delete. * emulparams/shlelf64_nbsd.sh: Delete. * emultempl/sh64elf.em: Delete. * testsuite/ld-sh/sh64/abi32.sd: Delete. * testsuite/ld-sh/sh64/abi32.xd: Delete. * testsuite/ld-sh/sh64/abi64.sd: Delete. * testsuite/ld-sh/sh64/abi64.xd: Delete. * testsuite/ld-sh/sh64/abixx-noexp.sd: Delete. * testsuite/ld-sh/sh64/cmpct1.sd: Delete. * testsuite/ld-sh/sh64/cmpct1.xd: Delete. * testsuite/ld-sh/sh64/crange-1.s: Delete. * testsuite/ld-sh/sh64/crange-2a.s: Delete. * testsuite/ld-sh/sh64/crange-2b.s: Delete. * testsuite/ld-sh/sh64/crange-2c.s: Delete. * testsuite/ld-sh/sh64/crange-2d.s: Delete. * testsuite/ld-sh/sh64/crange-2e.s: Delete. * testsuite/ld-sh/sh64/crange-2f.s: Delete. * testsuite/ld-sh/sh64/crange-2g.s: Delete. * testsuite/ld-sh/sh64/crange-2h.s: Delete. * testsuite/ld-sh/sh64/crange-2i.s: Delete. * testsuite/ld-sh/sh64/crange1.rd: Delete. * testsuite/ld-sh/sh64/crange2.rd: Delete. * testsuite/ld-sh/sh64/crange3-cmpct.rd: Delete. * testsuite/ld-sh/sh64/crange3-media.rd: Delete. * testsuite/ld-sh/sh64/crange3.dd: Delete. * testsuite/ld-sh/sh64/crange3.rd: Delete. * testsuite/ld-sh/sh64/crangerel1.rd: Delete. * testsuite/ld-sh/sh64/crangerel2.rd: Delete. * testsuite/ld-sh/sh64/dlsection-1.s: Delete. * testsuite/ld-sh/sh64/dlsection.sd: Delete. * testsuite/ld-sh/sh64/endian.dbd: Delete. * testsuite/ld-sh/sh64/endian.dld: Delete. * testsuite/ld-sh/sh64/endian.ld: Delete. * testsuite/ld-sh/sh64/endian.s: Delete. * testsuite/ld-sh/sh64/endian.sbd: Delete. * testsuite/ld-sh/sh64/endian.sld: Delete. * testsuite/ld-sh/sh64/gotplt.d: Delete. * testsuite/ld-sh/sh64/gotplt.map: Delete. * testsuite/ld-sh/sh64/gotplt.s: Delete. * testsuite/ld-sh/sh64/init-cmpct.d: Delete. * testsuite/ld-sh/sh64/init-media.d: Delete. * testsuite/ld-sh/sh64/init.s: Delete. * testsuite/ld-sh/sh64/init64.d: Delete. * testsuite/ld-sh/sh64/mix1-noexp.sd: Delete. * testsuite/ld-sh/sh64/mix1.sd: Delete. * testsuite/ld-sh/sh64/mix1.xd: Delete. * testsuite/ld-sh/sh64/mix2-noexp.sd: Delete. * testsuite/ld-sh/sh64/mix2.sd: Delete. * testsuite/ld-sh/sh64/mix2.xd: Delete. * testsuite/ld-sh/sh64/rd-sh64.exp: Delete. * testsuite/ld-sh/sh64/rel-1.s: Delete. * testsuite/ld-sh/sh64/rel-2.s: Delete. * testsuite/ld-sh/sh64/rel32.xd: Delete. * testsuite/ld-sh/sh64/rel64.xd: Delete. * testsuite/ld-sh/sh64/relax.exp: Delete. * testsuite/ld-sh/sh64/relax1.s: Delete. * testsuite/ld-sh/sh64/relax2.s: Delete. * testsuite/ld-sh/sh64/relax3.s: Delete. * testsuite/ld-sh/sh64/relax4.s: Delete. * testsuite/ld-sh/sh64/reldl-1.s: Delete. * testsuite/ld-sh/sh64/reldl-2.s: Delete. * testsuite/ld-sh/sh64/reldl32.rd: Delete. * testsuite/ld-sh/sh64/reldl64.rd: Delete. * testsuite/ld-sh/sh64/relfail.exp: Delete. * testsuite/ld-sh/sh64/relfail.s: Delete. * testsuite/ld-sh/sh64/sh64-1.s: Delete. * testsuite/ld-sh/sh64/sh64-2.s: Delete. * testsuite/ld-sh/sh64/sh64.exp: Delete. * testsuite/ld-sh/sh64/shcmp-1.s: Delete. * testsuite/ld-sh/sh64/shdl-1.s: Delete. * testsuite/ld-sh/sh64/shdl-2.s: Delete. * testsuite/ld-sh/sh64/shdl32.xd: Delete. * testsuite/ld-sh/sh64/shdl64.sd: Delete. * testsuite/ld-sh/sh64/shdl64.xd: Delete. * testsuite/ld-sh/sh64/shmix-1.s: Delete. * testsuite/ld-sh/sh64/shmix-2.s: Delete. * testsuite/ld-sh/sh64/shmix-3.s: Delete. * testsuite/ld-sh/sh64/stobin-0-dso.d: Delete. * testsuite/ld-sh/sh64/stobin-1.d: Delete. * testsuite/ld-sh/sh64/stobin.s: Delete. * testsuite/ld-sh/sh64/stolib.s: Delete. * Makefile.in: Regenerate. * po/BLD-POTFILES.in: Regenerate.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog158
-rw-r--r--gas/Makefile.am2
-rw-r--r--gas/Makefile.in17
-rw-r--r--gas/config/tc-sh.c562
-rw-r--r--gas/config/tc-sh64.c3526
-rw-r--r--gas/config/tc-sh64.h226
-rw-r--r--gas/configure.tgt7
-rw-r--r--gas/doc/Makefile.am1
-rw-r--r--gas/doc/Makefile.in1
-rw-r--r--gas/doc/as.texinfo2
-rw-r--r--gas/doc/c-sh64.texi219
-rw-r--r--gas/po/POTFILES.in2
-rw-r--r--gas/testsuite/gas/cfi/cfi.exp6
-rw-r--r--gas/testsuite/gas/sh/basic.exp21
-rw-r--r--gas/testsuite/gas/sh/sh64/abi-32.d10
-rw-r--r--gas/testsuite/gas/sh/sh64/abi-32.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/abi-64.d9
-rw-r--r--gas/testsuite/gas/sh/sh64/abi-64.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/basic-1.d234
-rw-r--r--gas/testsuite/gas/sh/sh64/basic-1.s233
-rw-r--r--gas/testsuite/gas/sh/sh64/case-1.d23
-rw-r--r--gas/testsuite/gas/sh/sh64/case-1.s12
-rw-r--r--gas/testsuite/gas/sh/sh64/case-noexp-1.d18
-rw-r--r--gas/testsuite/gas/sh/sh64/crange1-1.d104
-rw-r--r--gas/testsuite/gas/sh/sh64/crange1-2.d108
-rw-r--r--gas/testsuite/gas/sh/sh64/crange1.s210
-rw-r--r--gas/testsuite/gas/sh/sh64/crange2-1.d43
-rw-r--r--gas/testsuite/gas/sh/sh64/crange2-2.d22
-rw-r--r--gas/testsuite/gas/sh/sh64/crange2-noexp-1.d43
-rw-r--r--gas/testsuite/gas/sh/sh64/crange2.s34
-rw-r--r--gas/testsuite/gas/sh/sh64/crange3-1.d24
-rw-r--r--gas/testsuite/gas/sh/sh64/crange3.s34
-rw-r--r--gas/testsuite/gas/sh/sh64/crange4-1.d19
-rw-r--r--gas/testsuite/gas/sh/sh64/crange4.s8
-rw-r--r--gas/testsuite/gas/sh/sh64/crange5-1.d12
-rw-r--r--gas/testsuite/gas/sh/sh64/crange5.s26
-rw-r--r--gas/testsuite/gas/sh/sh64/creg-1.d77
-rw-r--r--gas/testsuite/gas/sh/sh64/creg-1.s79
-rw-r--r--gas/testsuite/gas/sh/sh64/creg-2.d17
-rw-r--r--gas/testsuite/gas/sh/sh64/creg-2.s14
-rw-r--r--gas/testsuite/gas/sh/sh64/datal-1.s41
-rw-r--r--gas/testsuite/gas/sh/sh64/datal-2.d44
-rw-r--r--gas/testsuite/gas/sh/sh64/datal-2.s46
-rw-r--r--gas/testsuite/gas/sh/sh64/datal-3.s48
-rw-r--r--gas/testsuite/gas/sh/sh64/datal32-1.d45
-rw-r--r--gas/testsuite/gas/sh/sh64/datal32-3.d94
-rw-r--r--gas/testsuite/gas/sh/sh64/datal64-1.d50
-rw-r--r--gas/testsuite/gas/sh/sh64/datal64-3.d123
-rw-r--r--gas/testsuite/gas/sh/sh64/eh-1.d14
-rw-r--r--gas/testsuite/gas/sh/sh64/eh-1.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/endian-1.d9
-rw-r--r--gas/testsuite/gas/sh/sh64/endian-1.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/endian-2.d10
-rw-r--r--gas/testsuite/gas/sh/sh64/endian-2.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/err-1.s47
-rw-r--r--gas/testsuite/gas/sh/sh64/err-2.s16
-rw-r--r--gas/testsuite/gas/sh/sh64/err-3.s36
-rw-r--r--gas/testsuite/gas/sh/sh64/err-4.s27
-rw-r--r--gas/testsuite/gas/sh/sh64/err-abi-32.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/err-abi-64.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/err-dsp.s15
-rw-r--r--gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s24
-rw-r--r--gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/err-pt-1.s18
-rw-r--r--gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/err-ptb-1.s34
-rw-r--r--gas/testsuite/gas/sh/sh64/err-ptb-2.s34
-rw-r--r--gas/testsuite/gas/sh/sh64/err.exp9
-rw-r--r--gas/testsuite/gas/sh/sh64/immexpr1.s85
-rw-r--r--gas/testsuite/gas/sh/sh64/immexpr2.s16
-rw-r--r--gas/testsuite/gas/sh/sh64/immexpr32-1.d67
-rw-r--r--gas/testsuite/gas/sh/sh64/immexpr32-2.d11
-rw-r--r--gas/testsuite/gas/sh/sh64/immexpr64-1.d68
-rw-r--r--gas/testsuite/gas/sh/sh64/immexpr64-2.d11
-rw-r--r--gas/testsuite/gas/sh/sh64/lineno.d19
-rw-r--r--gas/testsuite/gas/sh/sh64/lineno.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/localcom-1.d30
-rw-r--r--gas/testsuite/gas/sh/sh64/localcom-1.s26
-rw-r--r--gas/testsuite/gas/sh/sh64/mix-1.d42
-rw-r--r--gas/testsuite/gas/sh/sh64/mix-1.s21
-rw-r--r--gas/testsuite/gas/sh/sh64/mix-noexp-1.d33
-rw-r--r--gas/testsuite/gas/sh/sh64/movi-1.s20
-rw-r--r--gas/testsuite/gas/sh/sh64/movi-2.s28
-rw-r--r--gas/testsuite/gas/sh/sh64/movi-3.d18
-rw-r--r--gas/testsuite/gas/sh/sh64/movi-3.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/movi32-1.d35
-rw-r--r--gas/testsuite/gas/sh/sh64/movi32-2.d36
-rw-r--r--gas/testsuite/gas/sh/sh64/movi32-noexp-2.d28
-rw-r--r--gas/testsuite/gas/sh/sh64/movi64-1.d44
-rw-r--r--gas/testsuite/gas/sh/sh64/movi64-2.d30
-rw-r--r--gas/testsuite/gas/sh/sh64/movi64-2.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/movi64-3.d52
-rw-r--r--gas/testsuite/gas/sh/sh64/movi64-noexp-2.d28
-rw-r--r--gas/testsuite/gas/sh/sh64/pt-1.d26
-rw-r--r--gas/testsuite/gas/sh/sh64/pt-1.s17
-rw-r--r--gas/testsuite/gas/sh/sh64/pt-2.s22
-rw-r--r--gas/testsuite/gas/sh/sh64/pt-noexp-1.d27
-rw-r--r--gas/testsuite/gas/sh/sh64/pt32-1.d39
-rw-r--r--gas/testsuite/gas/sh/sh64/pt32-noexp-2.d34
-rw-r--r--gas/testsuite/gas/sh/sh64/pt64-1.d47
-rw-r--r--gas/testsuite/gas/sh/sh64/pt64-32-1.d27
-rw-r--r--gas/testsuite/gas/sh/sh64/pt64-32-2.d39
-rw-r--r--gas/testsuite/gas/sh/sh64/pt64-noexp-2.d34
-rw-r--r--gas/testsuite/gas/sh/sh64/ptc-1.s5
-rw-r--r--gas/testsuite/gas/sh/sh64/ptc32-1.d15
-rw-r--r--gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d12
-rw-r--r--gas/testsuite/gas/sh/sh64/ptc64-1.d19
-rw-r--r--gas/testsuite/gas/sh/sh64/ptc64-32-1.d15
-rw-r--r--gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d13
-rw-r--r--gas/testsuite/gas/sh/sh64/ptext-1.s8
-rw-r--r--gas/testsuite/gas/sh/sh64/ptext32-1.d40
-rw-r--r--gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d22
-rw-r--r--gas/testsuite/gas/sh/sh64/ptext64-1.d64
-rw-r--r--gas/testsuite/gas/sh/sh64/ptext64-32-1.d40
-rw-r--r--gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d22
-rw-r--r--gas/testsuite/gas/sh/sh64/rel-1.s137
-rw-r--r--gas/testsuite/gas/sh/sh64/rel-2.s138
-rw-r--r--gas/testsuite/gas/sh/sh64/rel-3.s137
-rw-r--r--gas/testsuite/gas/sh/sh64/rel-4.s138
-rw-r--r--gas/testsuite/gas/sh/sh64/rel-5.s48
-rw-r--r--gas/testsuite/gas/sh/sh64/rel32-1.d86
-rw-r--r--gas/testsuite/gas/sh/sh64/rel32-2.d86
-rw-r--r--gas/testsuite/gas/sh/sh64/rel32-3.d86
-rw-r--r--gas/testsuite/gas/sh/sh64/rel32-4.d86
-rw-r--r--gas/testsuite/gas/sh/sh64/rel32-5.d30
-rw-r--r--gas/testsuite/gas/sh/sh64/rel64-1.d111
-rw-r--r--gas/testsuite/gas/sh/sh64/rel64-2.d111
-rw-r--r--gas/testsuite/gas/sh/sh64/rel64-3.d111
-rw-r--r--gas/testsuite/gas/sh/sh64/rel64-4.d111
-rw-r--r--gas/testsuite/gas/sh/sh64/rel64-5.d40
-rw-r--r--gas/testsuite/gas/sh/sh64/relax-1.d30
-rw-r--r--gas/testsuite/gas/sh/sh64/relax-1.s18
-rw-r--r--gas/testsuite/gas/sh/sh64/relax-2.d30
-rw-r--r--gas/testsuite/gas/sh/sh64/relax-2.s23
-rw-r--r--gas/testsuite/gas/sh/sh64/relax-3.d43
-rw-r--r--gas/testsuite/gas/sh/sh64/relax-3.s32
-rw-r--r--gas/testsuite/gas/sh/sh64/sh64.exp27
-rw-r--r--gas/testsuite/gas/sh/sh64/shift-1.s42
-rw-r--r--gas/testsuite/gas/sh/sh64/shift-2.s34
-rw-r--r--gas/testsuite/gas/sh/sh64/shift-3.s7
-rw-r--r--gas/testsuite/gas/sh/sh64/shift32-1.d58
-rw-r--r--gas/testsuite/gas/sh/sh64/shift32-3.d14
-rw-r--r--gas/testsuite/gas/sh/sh64/shift32-noexp-3.d14
-rw-r--r--gas/testsuite/gas/sh/sh64/shift64-1.d58
-rw-r--r--gas/testsuite/gas/sh/sh64/shift64-2.d42
-rw-r--r--gas/testsuite/gas/sh/sh64/shift64-3.d14
-rw-r--r--gas/testsuite/gas/sh/sh64/shift64-noexp-3.d14
-rw-r--r--gas/testsuite/gas/sh/sh64/syntax-1.d157
-rw-r--r--gas/testsuite/gas/sh/sh64/syntax-1.s199
-rw-r--r--gas/testsuite/gas/sh/sh64/syntax-2.d11
-rw-r--r--gas/testsuite/gas/sh/sh64/syntax-2.s10
-rw-r--r--gas/testsuite/gas/sh/sh64/ua-1.s16
-rw-r--r--gas/testsuite/gas/sh/sh64/ua32-1.d23
-rw-r--r--gas/testsuite/gas/sh/sh64/ua64-1.d23
156 files changed, 170 insertions, 10629 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2f21bd5..2816772 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,163 @@
2018-04-16 Alan Modra <amodra@gmail.com>
+ * Makefile.am: Remove sh5 and sh64 support.
+ * config/tc-sh.c: Likewise.
+ * configure.tgt: Likewise.
+ * doc/Makefile.am: Likewise.
+ * doc/as.texinfo: Likewise.
+ * testsuite/gas/cfi/cfi.exp: Likewise.
+ * testsuite/gas/sh/basic.exp: Likewise.
+ * config/tc-sh64.c: Delete.
+ * config/tc-sh64.h: Delete.
+ * doc/c-sh64.texi: Delete.
+ * testsuite/gas/sh/sh64/abi-32.d: Delete.
+ * testsuite/gas/sh/sh64/abi-32.s: Delete.
+ * testsuite/gas/sh/sh64/abi-64.d: Delete.
+ * testsuite/gas/sh/sh64/abi-64.s: Delete.
+ * testsuite/gas/sh/sh64/basic-1.d: Delete.
+ * testsuite/gas/sh/sh64/basic-1.s: Delete.
+ * testsuite/gas/sh/sh64/case-1.d: Delete.
+ * testsuite/gas/sh/sh64/case-1.s: Delete.
+ * testsuite/gas/sh/sh64/case-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange1-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange1-2.d: Delete.
+ * testsuite/gas/sh/sh64/crange1.s: Delete.
+ * testsuite/gas/sh/sh64/crange2-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange2-2.d: Delete.
+ * testsuite/gas/sh/sh64/crange2-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange2.s: Delete.
+ * testsuite/gas/sh/sh64/crange3-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange3.s: Delete.
+ * testsuite/gas/sh/sh64/crange4-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange4.s: Delete.
+ * testsuite/gas/sh/sh64/crange5-1.d: Delete.
+ * testsuite/gas/sh/sh64/crange5.s: Delete.
+ * testsuite/gas/sh/sh64/creg-1.d: Delete.
+ * testsuite/gas/sh/sh64/creg-1.s: Delete.
+ * testsuite/gas/sh/sh64/creg-2.d: Delete.
+ * testsuite/gas/sh/sh64/creg-2.s: Delete.
+ * testsuite/gas/sh/sh64/datal-1.s: Delete.
+ * testsuite/gas/sh/sh64/datal-2.d: Delete.
+ * testsuite/gas/sh/sh64/datal-2.s: Delete.
+ * testsuite/gas/sh/sh64/datal-3.s: Delete.
+ * testsuite/gas/sh/sh64/datal32-1.d: Delete.
+ * testsuite/gas/sh/sh64/datal32-3.d: Delete.
+ * testsuite/gas/sh/sh64/datal64-1.d: Delete.
+ * testsuite/gas/sh/sh64/datal64-3.d: Delete.
+ * testsuite/gas/sh/sh64/eh-1.d: Delete.
+ * testsuite/gas/sh/sh64/eh-1.s: Delete.
+ * testsuite/gas/sh/sh64/endian-1.d: Delete.
+ * testsuite/gas/sh/sh64/endian-1.s: Delete.
+ * testsuite/gas/sh/sh64/endian-2.d: Delete.
+ * testsuite/gas/sh/sh64/endian-2.s: Delete.
+ * testsuite/gas/sh/sh64/err-1.s: Delete.
+ * testsuite/gas/sh/sh64/err-2.s: Delete.
+ * testsuite/gas/sh/sh64/err-3.s: Delete.
+ * testsuite/gas/sh/sh64/err-4.s: Delete.
+ * testsuite/gas/sh/sh64/err-abi-32.s: Delete.
+ * testsuite/gas/sh/sh64/err-abi-64.s: Delete.
+ * testsuite/gas/sh/sh64/err-dsp.s: Delete.
+ * testsuite/gas/sh/sh64/err-movi-noexp-1.s: Delete.
+ * testsuite/gas/sh/sh64/err-noexp-cmd1.s: Delete.
+ * testsuite/gas/sh/sh64/err-pt-1.s: Delete.
+ * testsuite/gas/sh/sh64/err-pt32-cmd1.s: Delete.
+ * testsuite/gas/sh/sh64/err-pt32-cmd2.s: Delete.
+ * testsuite/gas/sh/sh64/err-pt32-cmd3.s: Delete.
+ * testsuite/gas/sh/sh64/err-ptb-1.s: Delete.
+ * testsuite/gas/sh/sh64/err-ptb-2.s: Delete.
+ * testsuite/gas/sh/sh64/err.exp: Delete.
+ * testsuite/gas/sh/sh64/immexpr1.s: Delete.
+ * testsuite/gas/sh/sh64/immexpr2.s: Delete.
+ * testsuite/gas/sh/sh64/immexpr32-1.d: Delete.
+ * testsuite/gas/sh/sh64/immexpr32-2.d: Delete.
+ * testsuite/gas/sh/sh64/immexpr64-1.d: Delete.
+ * testsuite/gas/sh/sh64/immexpr64-2.d: Delete.
+ * testsuite/gas/sh/sh64/lineno.d: Delete.
+ * testsuite/gas/sh/sh64/lineno.s: Delete.
+ * testsuite/gas/sh/sh64/localcom-1.d: Delete.
+ * testsuite/gas/sh/sh64/localcom-1.s: Delete.
+ * testsuite/gas/sh/sh64/mix-1.d: Delete.
+ * testsuite/gas/sh/sh64/mix-1.s: Delete.
+ * testsuite/gas/sh/sh64/mix-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/movi-1.s: Delete.
+ * testsuite/gas/sh/sh64/movi-2.s: Delete.
+ * testsuite/gas/sh/sh64/movi-3.d: Delete.
+ * testsuite/gas/sh/sh64/movi-3.s: Delete.
+ * testsuite/gas/sh/sh64/movi32-1.d: Delete.
+ * testsuite/gas/sh/sh64/movi32-2.d: Delete.
+ * testsuite/gas/sh/sh64/movi32-noexp-2.d: Delete.
+ * testsuite/gas/sh/sh64/movi64-1.d: Delete.
+ * testsuite/gas/sh/sh64/movi64-2.d: Delete.
+ * testsuite/gas/sh/sh64/movi64-2.s: Delete.
+ * testsuite/gas/sh/sh64/movi64-3.d: Delete.
+ * testsuite/gas/sh/sh64/movi64-noexp-2.d: Delete.
+ * testsuite/gas/sh/sh64/pt-1.d: Delete.
+ * testsuite/gas/sh/sh64/pt-1.s: Delete.
+ * testsuite/gas/sh/sh64/pt-2.s: Delete.
+ * testsuite/gas/sh/sh64/pt-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/pt32-1.d: Delete.
+ * testsuite/gas/sh/sh64/pt32-noexp-2.d: Delete.
+ * testsuite/gas/sh/sh64/pt64-1.d: Delete.
+ * testsuite/gas/sh/sh64/pt64-32-1.d: Delete.
+ * testsuite/gas/sh/sh64/pt64-32-2.d: Delete.
+ * testsuite/gas/sh/sh64/pt64-noexp-2.d: Delete.
+ * testsuite/gas/sh/sh64/ptc-1.s: Delete.
+ * testsuite/gas/sh/sh64/ptc32-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptc32-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptc64-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptc64-32-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptc64-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptext-1.s: Delete.
+ * testsuite/gas/sh/sh64/ptext32-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptext32-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptext64-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptext64-32-1.d: Delete.
+ * testsuite/gas/sh/sh64/ptext64-noexp-1.d: Delete.
+ * testsuite/gas/sh/sh64/rel-1.s: Delete.
+ * testsuite/gas/sh/sh64/rel-2.s: Delete.
+ * testsuite/gas/sh/sh64/rel-3.s: Delete.
+ * testsuite/gas/sh/sh64/rel-4.s: Delete.
+ * testsuite/gas/sh/sh64/rel-5.s: Delete.
+ * testsuite/gas/sh/sh64/rel32-1.d: Delete.
+ * testsuite/gas/sh/sh64/rel32-2.d: Delete.
+ * testsuite/gas/sh/sh64/rel32-3.d: Delete.
+ * testsuite/gas/sh/sh64/rel32-4.d: Delete.
+ * testsuite/gas/sh/sh64/rel32-5.d: Delete.
+ * testsuite/gas/sh/sh64/rel64-1.d: Delete.
+ * testsuite/gas/sh/sh64/rel64-2.d: Delete.
+ * testsuite/gas/sh/sh64/rel64-3.d: Delete.
+ * testsuite/gas/sh/sh64/rel64-4.d: Delete.
+ * testsuite/gas/sh/sh64/rel64-5.d: Delete.
+ * testsuite/gas/sh/sh64/relax-1.d: Delete.
+ * testsuite/gas/sh/sh64/relax-1.s: Delete.
+ * testsuite/gas/sh/sh64/relax-2.d: Delete.
+ * testsuite/gas/sh/sh64/relax-2.s: Delete.
+ * testsuite/gas/sh/sh64/relax-3.d: Delete.
+ * testsuite/gas/sh/sh64/relax-3.s: Delete.
+ * testsuite/gas/sh/sh64/sh64.exp: Delete.
+ * testsuite/gas/sh/sh64/shift-1.s: Delete.
+ * testsuite/gas/sh/sh64/shift-2.s: Delete.
+ * testsuite/gas/sh/sh64/shift-3.s: Delete.
+ * testsuite/gas/sh/sh64/shift32-1.d: Delete.
+ * testsuite/gas/sh/sh64/shift32-3.d: Delete.
+ * testsuite/gas/sh/sh64/shift32-noexp-3.d: Delete.
+ * testsuite/gas/sh/sh64/shift64-1.d: Delete.
+ * testsuite/gas/sh/sh64/shift64-2.d: Delete.
+ * testsuite/gas/sh/sh64/shift64-3.d: Delete.
+ * testsuite/gas/sh/sh64/shift64-noexp-3.d: Delete.
+ * testsuite/gas/sh/sh64/syntax-1.d: Delete.
+ * testsuite/gas/sh/sh64/syntax-1.s: Delete.
+ * testsuite/gas/sh/sh64/syntax-2.d: Delete.
+ * testsuite/gas/sh/sh64/syntax-2.s: Delete.
+ * testsuite/gas/sh/sh64/ua-1.s: Delete.
+ * testsuite/gas/sh/sh64/ua32-1.d: Delete.
+ * testsuite/gas/sh/sh64/ua64-1.d: Delete.
+ * Makefile.in: Regenerate.
+ * doc/Makefile.in: Regenerate.
+ * po/POTFILES.in: Regenerate.
+
+2018-04-16 Alan Modra <amodra@gmail.com>
+
* config/tc-sh.c: Remove sh-symbianelf support.
* config/tc-sh.h: Likewise.
* configure.ac: Likewise.
diff --git a/gas/Makefile.am b/gas/Makefile.am
index a6d3caa..5411cef 100644
--- a/gas/Makefile.am
+++ b/gas/Makefile.am
@@ -181,7 +181,6 @@ TARGET_CPU_CFILES = \
config/tc-s390.c \
config/tc-score.c \
config/tc-sh.c \
- config/tc-sh64.c \
config/tc-sparc.c \
config/tc-spu.c \
config/tc-tic30.c \
@@ -254,7 +253,6 @@ TARGET_CPU_HFILES = \
config/tc-s390.h \
config/tc-score.h \
config/tc-sh.h \
- config/tc-sh64.h \
config/tc-sparc.h \
config/tc-spu.h \
config/tc-tic30.h \
diff --git a/gas/Makefile.in b/gas/Makefile.in
index a95f74e..4460a39 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -477,7 +477,6 @@ TARGET_CPU_CFILES = \
config/tc-s390.c \
config/tc-score.c \
config/tc-sh.c \
- config/tc-sh64.c \
config/tc-sparc.c \
config/tc-spu.c \
config/tc-tic30.c \
@@ -550,7 +549,6 @@ TARGET_CPU_HFILES = \
config/tc-s390.h \
config/tc-score.h \
config/tc-sh.h \
- config/tc-sh64.h \
config/tc-sparc.h \
config/tc-spu.h \
config/tc-tic30.h \
@@ -907,7 +905,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-s390.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-score.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-sh.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-sh64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-sparc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-spu.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tic30.Po@am__quote@
@@ -1679,20 +1676,6 @@ tc-sh.obj: config/tc-sh.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-sh.obj `if test -f 'config/tc-sh.c'; then $(CYGPATH_W) 'config/tc-sh.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-sh.c'; fi`
-tc-sh64.o: config/tc-sh64.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-sh64.o -MD -MP -MF $(DEPDIR)/tc-sh64.Tpo -c -o tc-sh64.o `test -f 'config/tc-sh64.c' || echo '$(srcdir)/'`config/tc-sh64.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-sh64.Tpo $(DEPDIR)/tc-sh64.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-sh64.c' object='tc-sh64.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-sh64.o `test -f 'config/tc-sh64.c' || echo '$(srcdir)/'`config/tc-sh64.c
-
-tc-sh64.obj: config/tc-sh64.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-sh64.obj -MD -MP -MF $(DEPDIR)/tc-sh64.Tpo -c -o tc-sh64.obj `if test -f 'config/tc-sh64.c'; then $(CYGPATH_W) 'config/tc-sh64.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-sh64.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-sh64.Tpo $(DEPDIR)/tc-sh64.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-sh64.c' object='tc-sh64.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-sh64.obj `if test -f 'config/tc-sh64.c'; then $(CYGPATH_W) 'config/tc-sh64.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-sh64.c'; fi`
-
tc-sparc.o: config/tc-sparc.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-sparc.o -MD -MP -MF $(DEPDIR)/tc-sparc.Tpo -c -o tc-sparc.o `test -f 'config/tc-sparc.c' || echo '$(srcdir)/'`config/tc-sparc.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-sparc.Tpo $(DEPDIR)/tc-sparc.Po
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index 2704457..9b58db3 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -106,18 +106,6 @@ const pseudo_typeS md_pseudo_table[] =
{"2byte", s_uacons, 2},
{"4byte", s_uacons, 4},
{"8byte", s_uacons, 8},
-#ifdef HAVE_SH64
- {"mode", s_sh64_mode, 0 },
-
- /* Have the old name too. */
- {"isa", s_sh64_mode, 0 },
-
- /* Assert that the right ABI is used. */
- {"abi", s_sh64_abi, 0 },
-
- { "vtable_inherit", sh64_vtable_inherit, 0 },
- { "vtable_entry", sh64_vtable_entry, 0 },
-#endif /* HAVE_SH64 */
{0, 0, 0}
};
@@ -167,31 +155,8 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP";
#define COND_JUMP_DELAY 2
#define UNCOND_JUMP 3
-#ifdef HAVE_SH64
-
-/* A 16-bit (times four) pc-relative operand, at most expanded to 32 bits. */
-#define SH64PCREL16_32 4
-/* A 16-bit (times four) pc-relative operand, at most expanded to 64 bits. */
-#define SH64PCREL16_64 5
-
-/* Variants of the above for adjusting the insn to PTA or PTB according to
- the label. */
-#define SH64PCREL16PT_32 6
-#define SH64PCREL16PT_64 7
-
-/* A MOVI expansion, expanding to at most 32 or 64 bits. */
-#define MOVI_IMM_32 8
-#define MOVI_IMM_32_PCREL 9
-#define MOVI_IMM_64 10
-#define MOVI_IMM_64_PCREL 11
-#define END 12
-
-#else /* HAVE_SH64 */
-
#define END 4
-#endif /* HAVE_SH64 */
-
#define UNDEF_DISP 0
#define COND8 1
#define COND12 2
@@ -201,24 +166,6 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP";
#define UNCOND12 1
#define UNCOND32 2
-#ifdef HAVE_SH64
-#define UNDEF_SH64PCREL 0
-#define SH64PCREL16 1
-#define SH64PCREL32 2
-#define SH64PCREL48 3
-#define SH64PCREL64 4
-#define SH64PCRELPLT 5
-
-#define UNDEF_MOVI 0
-#define MOVI_16 1
-#define MOVI_32 2
-#define MOVI_48 3
-#define MOVI_64 4
-#define MOVI_PLT 5
-#define MOVI_GOTOFF 6
-#define MOVI_GOTPC 7
-#endif /* HAVE_SH64 */
-
/* Branch displacements are from the address of the branch plus
four, thus all minimum and maximum values have 4 added to them. */
#define COND8_F 258
@@ -249,85 +196,6 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP";
#define UNCOND32_M -(1<<30)
#define UNCOND32_LENGTH 14
-#ifdef HAVE_SH64
-/* The trivial expansion of a SH64PCREL16 relaxation is just a "PT label,
- TRd" as is the current insn, so no extra length. Note that the "reach"
- is calculated from the address *after* that insn, but the offset in the
- insn is calculated from the beginning of the insn. We also need to
- take into account the implicit 1 coded as the "A" in PTA when counting
- forward. If PTB reaches an odd address, we trap that as an error
- elsewhere, so we don't have to have different relaxation entries. We
- don't add a one to the negative range, since PTB would then have the
- farthest backward-reaching value skipped, not generated at relaxation. */
-#define SH64PCREL16_F (32767 * 4 - 4 + 1)
-#define SH64PCREL16_M (-32768 * 4 - 4)
-#define SH64PCREL16_LENGTH 0
-
-/* The next step is to change that PT insn into
- MOVI ((label - datalabel Ln) >> 16) & 65535, R25
- SHORI (label - datalabel Ln) & 65535, R25
- Ln:
- PTREL R25,TRd
- which means two extra insns, 8 extra bytes. This is the limit for the
- 32-bit ABI.
-
- The expressions look a bit bad since we have to adjust this to avoid overflow on a
- 32-bit host. */
-#define SH64PCREL32_F ((((long) 1 << 30) - 1) * 2 + 1 - 4)
-#define SH64PCREL32_LENGTH (2 * 4)
-
-/* Similarly, we just change the MOVI and add a SHORI for the 48-bit
- expansion. */
-#if BFD_HOST_64BIT_LONG
-/* The "reach" type is long, so we can only do this for a 64-bit-long
- host. */
-#define SH64PCREL32_M ((-((long) 1 << 30)) * 2 - 4)
-#define SH64PCREL48_F ((((long) 1 << 47) - 1) - 4)
-#define SH64PCREL48_M ((-((long) 1 << 47)) - 4)
-#define SH64PCREL48_LENGTH (3 * 4)
-#else
-/* If the host does not have 64-bit longs, just make this state identical
- in reach to the 32-bit state. Note that we have a slightly incorrect
- reach, but the correct one above will overflow a 32-bit number. */
-#define SH64PCREL32_M ((-((long) 1 << 30)) * 2)
-#define SH64PCREL48_F SH64PCREL32_F
-#define SH64PCREL48_M SH64PCREL32_M
-#define SH64PCREL48_LENGTH (3 * 4)
-#endif /* BFD_HOST_64BIT_LONG */
-
-/* And similarly for the 64-bit expansion; a MOVI + SHORI + SHORI + SHORI
- + PTREL sequence. */
-#define SH64PCREL64_LENGTH (4 * 4)
-
-/* For MOVI, we make the MOVI + SHORI... expansion you can see in the
- SH64PCREL expansions. The PCREL one is similar, but the other has no
- pc-relative reach; it must be fully expanded in
- shmedia_md_estimate_size_before_relax. */
-#define MOVI_16_LENGTH 0
-#define MOVI_16_F (32767 - 4)
-#define MOVI_16_M (-32768 - 4)
-#define MOVI_32_LENGTH 4
-#define MOVI_32_F ((((long) 1 << 30) - 1) * 2 + 1 - 4)
-#define MOVI_48_LENGTH 8
-
-#if BFD_HOST_64BIT_LONG
-/* The "reach" type is long, so we can only do this for a 64-bit-long
- host. */
-#define MOVI_32_M ((-((long) 1 << 30)) * 2 - 4)
-#define MOVI_48_F ((((long) 1 << 47) - 1) - 4)
-#define MOVI_48_M ((-((long) 1 << 47)) - 4)
-#else
-/* If the host does not have 64-bit longs, just make this state identical
- in reach to the 32-bit state. Note that we have a slightly incorrect
- reach, but the correct one above will overflow a 32-bit number. */
-#define MOVI_32_M ((-((long) 1 << 30)) * 2)
-#define MOVI_48_F MOVI_32_F
-#define MOVI_48_M MOVI_32_M
-#endif /* BFD_HOST_64BIT_LONG */
-
-#define MOVI_64_LENGTH 12
-#endif /* HAVE_SH64 */
-
#define EMPTY { 0, 0, 0, 0 }
const relax_typeS md_relax_table[C (END, 0)] = {
@@ -369,117 +237,6 @@ const relax_typeS md_relax_table[C (END, 0)] = {
EMPTY, EMPTY, EMPTY,
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-#ifdef HAVE_SH64
- /* C (SH64PCREL16_32, SH64PCREL16) */
- EMPTY,
- { SH64PCREL16_F, SH64PCREL16_M, SH64PCREL16_LENGTH, C (SH64PCREL16_32, SH64PCREL32) },
- /* C (SH64PCREL16_32, SH64PCREL32) */
- { 0, 0, SH64PCREL32_LENGTH, 0 },
- EMPTY, EMPTY,
- /* C (SH64PCREL16_32, SH64PCRELPLT) */
- { 0, 0, SH64PCREL32_LENGTH, 0 },
- EMPTY, EMPTY,
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (SH64PCREL16_64, SH64PCREL16) */
- EMPTY,
- { SH64PCREL16_F, SH64PCREL16_M, SH64PCREL16_LENGTH, C (SH64PCREL16_64, SH64PCREL32) },
- /* C (SH64PCREL16_64, SH64PCREL32) */
- { SH64PCREL32_F, SH64PCREL32_M, SH64PCREL32_LENGTH, C (SH64PCREL16_64, SH64PCREL48) },
- /* C (SH64PCREL16_64, SH64PCREL48) */
- { SH64PCREL48_F, SH64PCREL48_M, SH64PCREL48_LENGTH, C (SH64PCREL16_64, SH64PCREL64) },
- /* C (SH64PCREL16_64, SH64PCREL64) */
- { 0, 0, SH64PCREL64_LENGTH, 0 },
- /* C (SH64PCREL16_64, SH64PCRELPLT) */
- { 0, 0, SH64PCREL64_LENGTH, 0 },
- EMPTY, EMPTY,
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (SH64PCREL16PT_32, SH64PCREL16) */
- EMPTY,
- { SH64PCREL16_F, SH64PCREL16_M, SH64PCREL16_LENGTH, C (SH64PCREL16PT_32, SH64PCREL32) },
- /* C (SH64PCREL16PT_32, SH64PCREL32) */
- { 0, 0, SH64PCREL32_LENGTH, 0 },
- EMPTY, EMPTY,
- /* C (SH64PCREL16PT_32, SH64PCRELPLT) */
- { 0, 0, SH64PCREL32_LENGTH, 0 },
- EMPTY, EMPTY,
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (SH64PCREL16PT_64, SH64PCREL16) */
- EMPTY,
- { SH64PCREL16_F, SH64PCREL16_M, SH64PCREL16_LENGTH, C (SH64PCREL16PT_64, SH64PCREL32) },
- /* C (SH64PCREL16PT_64, SH64PCREL32) */
- { SH64PCREL32_F,
- SH64PCREL32_M,
- SH64PCREL32_LENGTH,
- C (SH64PCREL16PT_64, SH64PCREL48) },
- /* C (SH64PCREL16PT_64, SH64PCREL48) */
- { SH64PCREL48_F, SH64PCREL48_M, SH64PCREL48_LENGTH, C (SH64PCREL16PT_64, SH64PCREL64) },
- /* C (SH64PCREL16PT_64, SH64PCREL64) */
- { 0, 0, SH64PCREL64_LENGTH, 0 },
- /* C (SH64PCREL16PT_64, SH64PCRELPLT) */
- { 0, 0, SH64PCREL64_LENGTH, 0},
- EMPTY, EMPTY,
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (MOVI_IMM_32, UNDEF_MOVI) */
- { 0, 0, MOVI_32_LENGTH, 0 },
- /* C (MOVI_IMM_32, MOVI_16) */
- { MOVI_16_F, MOVI_16_M, MOVI_16_LENGTH, C (MOVI_IMM_32, MOVI_32) },
- /* C (MOVI_IMM_32, MOVI_32) */
- { MOVI_32_F, MOVI_32_M, MOVI_32_LENGTH, 0 },
- EMPTY, EMPTY, EMPTY,
- /* C (MOVI_IMM_32, MOVI_GOTOFF) */
- { 0, 0, MOVI_32_LENGTH, 0 },
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (MOVI_IMM_32_PCREL, MOVI_16) */
- EMPTY,
- { MOVI_16_F, MOVI_16_M, MOVI_16_LENGTH, C (MOVI_IMM_32_PCREL, MOVI_32) },
- /* C (MOVI_IMM_32_PCREL, MOVI_32) */
- { 0, 0, MOVI_32_LENGTH, 0 },
- EMPTY, EMPTY,
- /* C (MOVI_IMM_32_PCREL, MOVI_PLT) */
- { 0, 0, MOVI_32_LENGTH, 0 },
- EMPTY,
- /* C (MOVI_IMM_32_PCREL, MOVI_GOTPC) */
- { 0, 0, MOVI_32_LENGTH, 0 },
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (MOVI_IMM_64, UNDEF_MOVI) */
- { 0, 0, MOVI_64_LENGTH, 0 },
- /* C (MOVI_IMM_64, MOVI_16) */
- { MOVI_16_F, MOVI_16_M, MOVI_16_LENGTH, C (MOVI_IMM_64, MOVI_32) },
- /* C (MOVI_IMM_64, MOVI_32) */
- { MOVI_32_F, MOVI_32_M, MOVI_32_LENGTH, C (MOVI_IMM_64, MOVI_48) },
- /* C (MOVI_IMM_64, MOVI_48) */
- { MOVI_48_F, MOVI_48_M, MOVI_48_LENGTH, C (MOVI_IMM_64, MOVI_64) },
- /* C (MOVI_IMM_64, MOVI_64) */
- { 0, 0, MOVI_64_LENGTH, 0 },
- EMPTY,
- /* C (MOVI_IMM_64, MOVI_GOTOFF) */
- { 0, 0, MOVI_64_LENGTH, 0 },
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
- /* C (MOVI_IMM_64_PCREL, MOVI_16) */
- EMPTY,
- { MOVI_16_F, MOVI_16_M, MOVI_16_LENGTH, C (MOVI_IMM_64_PCREL, MOVI_32) },
- /* C (MOVI_IMM_64_PCREL, MOVI_32) */
- { MOVI_32_F, MOVI_32_M, MOVI_32_LENGTH, C (MOVI_IMM_64_PCREL, MOVI_48) },
- /* C (MOVI_IMM_64_PCREL, MOVI_48) */
- { MOVI_48_F, MOVI_48_M, MOVI_48_LENGTH, C (MOVI_IMM_64_PCREL, MOVI_64) },
- /* C (MOVI_IMM_64_PCREL, MOVI_64) */
- { 0, 0, MOVI_64_LENGTH, 0 },
- /* C (MOVI_IMM_64_PCREL, MOVI_PLT) */
- { 0, 0, MOVI_64_LENGTH, 0 },
- EMPTY,
- /* C (MOVI_IMM_64_PCREL, MOVI_GOTPC) */
- { 0, 0, MOVI_64_LENGTH, 0 },
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-
-#endif /* HAVE_SH64 */
-
};
#undef EMPTY
@@ -501,11 +258,6 @@ sh_PIC_related_p (symbolS *sym)
if (sym == GOT_symbol)
return 1;
-#ifdef HAVE_SH64
- if (sh_PIC_related_p (*symbol_get_tc (sym)))
- return 1;
-#endif
-
exp = symbol_get_value_expression (sym);
return (exp->X_op == O_PIC_reloc
@@ -567,47 +319,11 @@ sh_check_fixup (expressionS *main_exp, bfd_reloc_code_real_type *r_type_p)
if (exp->X_op == O_symbol || exp->X_op == O_add || exp->X_op == O_subtract)
{
-#ifdef HAVE_SH64
- if (exp->X_add_symbol
- && (exp->X_add_symbol == GOT_symbol
- || (GOT_symbol
- && *symbol_get_tc (exp->X_add_symbol) == GOT_symbol)))
- {
- switch (*r_type_p)
- {
- case BFD_RELOC_SH_IMM_LOW16:
- *r_type_p = BFD_RELOC_SH_GOTPC_LOW16;
- break;
-
- case BFD_RELOC_SH_IMM_MEDLOW16:
- *r_type_p = BFD_RELOC_SH_GOTPC_MEDLOW16;
- break;
-
- case BFD_RELOC_SH_IMM_MEDHI16:
- *r_type_p = BFD_RELOC_SH_GOTPC_MEDHI16;
- break;
-
- case BFD_RELOC_SH_IMM_HI16:
- *r_type_p = BFD_RELOC_SH_GOTPC_HI16;
- break;
-
- case BFD_RELOC_NONE:
- case BFD_RELOC_UNUSED:
- *r_type_p = BFD_RELOC_SH_GOTPC;
- break;
-
- default:
- abort ();
- }
- return 0;
- }
-#else
if (exp->X_add_symbol && exp->X_add_symbol == GOT_symbol)
{
*r_type_p = BFD_RELOC_SH_GOTPC;
return 0;
}
-#endif
exp = symbol_get_value_expression (exp->X_add_symbol);
if (! exp)
return 0;
@@ -646,104 +362,6 @@ sh_check_fixup (expressionS *main_exp, bfd_reloc_code_real_type *r_type_p)
}
break;
-#ifdef HAVE_SH64
- case BFD_RELOC_SH_IMM_LOW16:
- switch (exp->X_md)
- {
- case BFD_RELOC_32_GOTOFF:
- *r_type_p = BFD_RELOC_SH_GOTOFF_LOW16;
- break;
-
- case BFD_RELOC_SH_GOTPLT32:
- *r_type_p = BFD_RELOC_SH_GOTPLT_LOW16;
- break;
-
- case BFD_RELOC_32_GOT_PCREL:
- *r_type_p = BFD_RELOC_SH_GOT_LOW16;
- break;
-
- case BFD_RELOC_32_PLT_PCREL:
- *r_type_p = BFD_RELOC_SH_PLT_LOW16;
- break;
-
- default:
- abort ();
- }
- break;
-
- case BFD_RELOC_SH_IMM_MEDLOW16:
- switch (exp->X_md)
- {
- case BFD_RELOC_32_GOTOFF:
- *r_type_p = BFD_RELOC_SH_GOTOFF_MEDLOW16;
- break;
-
- case BFD_RELOC_SH_GOTPLT32:
- *r_type_p = BFD_RELOC_SH_GOTPLT_MEDLOW16;
- break;
-
- case BFD_RELOC_32_GOT_PCREL:
- *r_type_p = BFD_RELOC_SH_GOT_MEDLOW16;
- break;
-
- case BFD_RELOC_32_PLT_PCREL:
- *r_type_p = BFD_RELOC_SH_PLT_MEDLOW16;
- break;
-
- default:
- abort ();
- }
- break;
-
- case BFD_RELOC_SH_IMM_MEDHI16:
- switch (exp->X_md)
- {
- case BFD_RELOC_32_GOTOFF:
- *r_type_p = BFD_RELOC_SH_GOTOFF_MEDHI16;
- break;
-
- case BFD_RELOC_SH_GOTPLT32:
- *r_type_p = BFD_RELOC_SH_GOTPLT_MEDHI16;
- break;
-
- case BFD_RELOC_32_GOT_PCREL:
- *r_type_p = BFD_RELOC_SH_GOT_MEDHI16;
- break;
-
- case BFD_RELOC_32_PLT_PCREL:
- *r_type_p = BFD_RELOC_SH_PLT_MEDHI16;
- break;
-
- default:
- abort ();
- }
- break;
-
- case BFD_RELOC_SH_IMM_HI16:
- switch (exp->X_md)
- {
- case BFD_RELOC_32_GOTOFF:
- *r_type_p = BFD_RELOC_SH_GOTOFF_HI16;
- break;
-
- case BFD_RELOC_SH_GOTPLT32:
- *r_type_p = BFD_RELOC_SH_GOTPLT_HI16;
- break;
-
- case BFD_RELOC_32_GOT_PCREL:
- *r_type_p = BFD_RELOC_SH_GOT_HI16;
- break;
-
- case BFD_RELOC_32_PLT_PCREL:
- *r_type_p = BFD_RELOC_SH_PLT_HI16;
- break;
-
- default:
- abort ();
- }
- break;
-#endif
-
default:
abort ();
}
@@ -815,16 +433,6 @@ sh_elf_cons (int nbytes)
{
expressionS exp;
-#ifdef HAVE_SH64
-
- /* Update existing range to include a previous insn, if there was one. */
- sh64_update_contents_mark (TRUE);
-
- /* We need to make sure the contents type is set to data. */
- sh64_flag_output ();
-
-#endif /* HAVE_SH64 */
-
if (is_it_end_of_statement ())
{
demand_empty_rest_of_line ();
@@ -957,10 +565,6 @@ md_begin (void)
= preset_target_arch ? preset_target_arch : arch_sh_up & ~arch_sh_has_dsp;
valid_arch = target_arch;
-#ifdef HAVE_SH64
- shmedia_md_begin ();
-#endif
-
opcode_hash_control = hash_new ();
/* Insert unique names into hash table. */
@@ -2906,26 +2510,6 @@ md_assemble (char *str)
unsigned int size = 0;
char *initial_str = str;
-#ifdef HAVE_SH64
- if (sh64_isa_mode == sh64_isa_shmedia)
- {
- shmedia_md_assemble (str);
- return;
- }
- else
- {
- /* If we've seen pseudo-directives, make sure any emitted data or
- frags are marked as data. */
- if (!seen_insn)
- {
- sh64_update_contents_mark (TRUE);
- sh64_set_contents_type (CRT_SH5_ISA16);
- }
-
- seen_insn = TRUE;
- }
-#endif /* HAVE_SH64 */
-
opcode = find_cooked_opcode (&str);
op_end = str;
@@ -3136,13 +2720,6 @@ enum options
OPTION_ISA,
OPTION_RENESAS,
OPTION_ALLOW_REG_PREFIX,
-#ifdef HAVE_SH64
- OPTION_ABI,
- OPTION_NO_MIX,
- OPTION_SHCOMPACT_CONST_CRANGE,
- OPTION_NO_EXPAND,
- OPTION_PT32,
-#endif
OPTION_H_TICK_HEX,
#ifdef OBJ_ELF
OPTION_FDPIC,
@@ -3166,13 +2743,6 @@ struct option md_longopts[] =
{"renesas", no_argument, NULL, OPTION_RENESAS},
{"allow-reg-prefix", no_argument, NULL, OPTION_ALLOW_REG_PREFIX},
-#ifdef HAVE_SH64
- {"abi", required_argument, NULL, OPTION_ABI},
- {"no-mix", no_argument, NULL, OPTION_NO_MIX},
- {"shcompact-const-crange", no_argument, NULL, OPTION_SHCOMPACT_CONST_CRANGE},
- {"no-expand", no_argument, NULL, OPTION_NO_EXPAND},
- {"expand-pt32", no_argument, NULL, OPTION_PT32},
-#endif /* HAVE_SH64 */
{ "h-tick-hex", no_argument, NULL, OPTION_H_TICK_HEX },
#ifdef OBJ_ELF
@@ -3223,22 +2793,6 @@ md_parse_option (int c, const char *arg ATTRIBUTE_UNUSED)
preset_target_arch = arch_sh_up & ~arch_sh_has_dsp;
else if (strcasecmp (arg, "any") == 0)
preset_target_arch = arch_sh_up;
-#ifdef HAVE_SH64
- else if (strcasecmp (arg, "shmedia") == 0)
- {
- if (sh64_isa_mode == sh64_isa_shcompact)
- as_bad (_("Invalid combination: --isa=SHcompact with --isa=SHmedia"));
- sh64_isa_mode = sh64_isa_shmedia;
- }
- else if (strcasecmp (arg, "shcompact") == 0)
- {
- if (sh64_isa_mode == sh64_isa_shmedia)
- as_bad (_("Invalid combination: --isa=SHmedia with --isa=SHcompact"));
- if (sh64_abi == sh64_abi_64)
- as_bad (_("Invalid combination: --abi=64 with --isa=SHcompact"));
- sh64_isa_mode = sh64_isa_shcompact;
- }
-#endif /* HAVE_SH64 */
else
{
extern const bfd_arch_info_type bfd_sh_arch;
@@ -3249,9 +2803,6 @@ md_parse_option (int c, const char *arg ATTRIBUTE_UNUSED)
{
int len = strlen(bfd_arch->printable_name);
- if (bfd_arch->mach == bfd_mach_sh5)
- continue;
-
if (strncasecmp (bfd_arch->printable_name, arg, len) != 0)
continue;
@@ -3271,43 +2822,6 @@ md_parse_option (int c, const char *arg ATTRIBUTE_UNUSED)
}
break;
-#ifdef HAVE_SH64
- case OPTION_ABI:
- if (strcmp (arg, "32") == 0)
- {
- if (sh64_abi == sh64_abi_64)
- as_bad (_("Invalid combination: --abi=32 with --abi=64"));
- sh64_abi = sh64_abi_32;
- }
- else if (strcmp (arg, "64") == 0)
- {
- if (sh64_abi == sh64_abi_32)
- as_bad (_("Invalid combination: --abi=64 with --abi=32"));
- if (sh64_isa_mode == sh64_isa_shcompact)
- as_bad (_("Invalid combination: --isa=SHcompact with --abi=64"));
- sh64_abi = sh64_abi_64;
- }
- else
- as_bad (_("Invalid argument to --abi option: %s"), arg);
- break;
-
- case OPTION_NO_MIX:
- sh64_mix = FALSE;
- break;
-
- case OPTION_SHCOMPACT_CONST_CRANGE:
- sh64_shcompact_const_crange = TRUE;
- break;
-
- case OPTION_NO_EXPAND:
- sh64_expand = FALSE;
- break;
-
- case OPTION_PT32:
- sh64_pt32 = TRUE;
- break;
-#endif /* HAVE_SH64 */
-
case OPTION_H_TICK_HEX:
enable_h_tick_hex = 1;
break;
@@ -3346,30 +2860,12 @@ SH options:\n\
bfd_arch_info_type const *bfd_arch = &bfd_sh_arch;
for (; bfd_arch; bfd_arch=bfd_arch->next)
- if (bfd_arch->mach != bfd_mach_sh5)
- {
- fprintf (stream, "\n | %s", bfd_arch->printable_name);
- fprintf (stream, "\n | %s-up", bfd_arch->printable_name);
- }
+ {
+ fprintf (stream, "\n | %s", bfd_arch->printable_name);
+ fprintf (stream, "\n | %s-up", bfd_arch->printable_name);
+ }
}
fprintf (stream, "]\n");
-#ifdef HAVE_SH64
- fprintf (stream, _("\
---isa=[shmedia set as the default instruction set for SH64\n\
- | SHmedia\n\
- | shcompact\n\
- | SHcompact]\n"));
- fprintf (stream, _("\
---abi=[32|64] set size of expanded SHmedia operands and object\n\
- file type\n\
---shcompact-const-crange emit code-range descriptors for constants in\n\
- SHcompact code sections\n\
---no-mix disallow SHmedia code in the same section as\n\
- constants and SHcompact code\n\
---no-expand do not expand MOVI, PT, PTA or PTB instructions\n\
---expand-pt32 with -abi=64, expand PT, PTA and PTB instructions\n\
- to 32 bits only\n"));
-#endif /* HAVE_SH64 */
#ifdef OBJ_ELF
fprintf (stream, _("\
--fdpic generate an FDPIC object file\n"));
@@ -3537,10 +3033,6 @@ sh_frob_section (bfd *abfd ATTRIBUTE_UNUSED, segT sec,
void
sh_frob_file (void)
{
-#ifdef HAVE_SH64
- shmedia_frob_file_before_adjust ();
-#endif
-
if (! sh_relax)
return;
@@ -3673,11 +3165,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT seg, fragS *fragP)
break;
default:
-#ifdef HAVE_SH64
- shmedia_md_convert_frag (headers, seg, fragP, TRUE);
-#else
abort ();
-#endif
}
if (donerelax && !sh_relax)
@@ -3854,9 +3342,6 @@ sh_force_relocation (fixS *fix)
|| fix->fx_r_type == BFD_RELOC_SH_ALIGN
|| fix->fx_r_type == BFD_RELOC_SH_CODE
|| fix->fx_r_type == BFD_RELOC_SH_DATA
-#ifdef HAVE_SH64
- || fix->fx_r_type == BFD_RELOC_SH_SHMEDIA_CODE
-#endif
|| fix->fx_r_type == BFD_RELOC_SH_LABEL);
}
@@ -3892,14 +3377,7 @@ sh_elf_final_processing (void)
/* Set file-specific flags to indicate if this code needs
a processor with the sh-dsp / sh2e ISA to execute. */
-#ifdef HAVE_SH64
- /* SH5 and above don't know about the valid_arch arch_sh* bits defined
- in sh-opc.h, so check SH64 mode before checking valid_arch. */
- if (sh64_isa_mode != sh64_isa_unspecified)
- val = EF_SH5;
- else
-#endif /* HAVE_SH64 */
- val = sh_find_elf_flags (valid_arch);
+ val = sh_find_elf_flags (valid_arch);
elf_elfheader (stdoutput)->e_flags &= ~EF_SH_MACH_MASK;
elf_elfheader (stdoutput)->e_flags |= val;
@@ -3961,11 +3439,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
the other symbol. We have to adjust the relocation type here. */
if (fixP->fx_pcrel)
{
-#ifndef HAVE_SH64
- /* Safeguard; this must not occur for non-sh64 configurations. */
- gas_assert (fixP->fx_r_type != BFD_RELOC_64);
-#endif
-
switch (fixP->fx_r_type)
{
default:
@@ -4164,12 +3637,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
buf[highbyte] |= (val >> 8) & 0xf;
break;
-#ifndef HAVE_SH64
- case BFD_RELOC_64:
- apply_full_field_fix (fixP, buf, *valP, 8);
- break;
-#endif
-
case BFD_RELOC_32:
case BFD_RELOC_32_PCREL:
apply_full_field_fix (fixP, buf, val, 4);
@@ -4260,12 +3727,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
#endif
default:
-#ifdef HAVE_SH64
- shmedia_md_apply_fix (fixP, valP);
- return;
-#else
abort ();
-#endif
}
if (shift != 0)
@@ -4304,12 +3766,7 @@ md_estimate_size_before_relax (fragS *fragP, segT segment_type)
switch (fragP->fr_subtype)
{
default:
-#ifdef HAVE_SH64
- return shmedia_md_estimate_size_before_relax (fragP, segment_type);
-#else
abort ();
-#endif
-
case C (UNCOND_JUMP, UNDEF_DISP):
/* Used to be a branch to somewhere which was unknown. */
@@ -4375,11 +3832,6 @@ md_estimate_size_before_relax (fragS *fragP, segT segment_type)
void
md_number_to_chars (char *ptr, valueT use, int nbytes)
{
-#ifdef HAVE_SH64
- /* We might need to set the contents type to data. */
- sh64_flag_output ();
-#endif
-
if (! target_big_endian)
number_to_chars_littleendian (ptr, use, nbytes);
else
@@ -4457,10 +3909,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
rel->addend = 0;
rel->address = rel->addend = fixp->fx_offset;
}
-#ifdef HAVE_SH64
- else if (shmedia_init_reloc (rel, fixp))
- ;
-#endif
else
rel->addend = fixp->fx_addnumber;
diff --git a/gas/config/tc-sh64.c b/gas/config/tc-sh64.c
deleted file mode 100644
index 001fa2a..0000000
--- a/gas/config/tc-sh64.c
+++ /dev/null
@@ -1,3526 +0,0 @@
-/* tc-sh64.c -- Assemble code for the SuperH SH SHcompact and SHmedia.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
-
- This file is part of GAS, the GNU Assembler.
-
- GAS 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 3, or (at your option)
- any later version.
-
- GAS 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 GAS; see the file COPYING. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* This file defines SHmedia ISA-specific functions and includes tc-sh.c.
- The SHcompact ISA is in all useful aspects the "old" sh4 as implemented
- in tc-sh.c. Not making this file part of tc-sh.c makes it easier to
- keep a leaner sh[1-4]-only implementation. */
-
-#define HAVE_SH64
-
-#include "as.h"
-#include "safe-ctype.h"
-#include "opcodes/sh64-opc.h"
-
-#ifndef OBJ_ELF
-#error This file assumes object output is in the ELF format
-#endif
-
-/* Suffix used when we make "datalabel" symbol copies. It must not
- collide with anything that can normally appear in a symbol, "faked
- symbol" or local symbol. */
-#define DATALABEL_SUFFIX " DL"
-
-/* See shmedia_md_apply_fix and shmedia_md_pcrel_from_section for usage. */
-#define SHMEDIA_MD_PCREL_FROM_FIX(FIXP) \
- ((FIXP)->fx_size + (FIXP)->fx_where + (FIXP)->fx_frag->fr_address - 4)
-
-/* We use this internally to see which one is PT and which is a PTA/PTB
- that should be error-checked. We give it a better name here (but not
- one that looks official). Adding it to reloc.c would make it look too
- much of a real reloc; it is just used temporarily as a fixup-type. */
-#define SHMEDIA_BFD_RELOC_PT BFD_RELOC_12_PCREL
-
-typedef struct
- {
- shmedia_arg_type type;
-
- /* These could go into a union, but that would uglify the code. */
- int reg;
- expressionS immediate;
-
- /* If IMMEDIATE was a shift-expression, like "(S >> N) & 65535", where
- N = 0, 16, 32, 48, used to extract a certain 16-bit-field to make up
- a MOVI or SHORI relocation for a symbol, then we put the
- corresponding reloc-type here and modify the "immediate" expression
- to S. Otherwise, this is just BFD_RELOC_NONE. */
- bfd_reloc_code_real_type reloctype;
- } shmedia_operand_info;
-
-/* Frag containing last base instruction. This is put in the TC field in
- a frag, so we can emit fixups for fr_opcode without needing to make
- sure that the opcode is in the same frag as any variant operand. */
-fragS *sh64_last_insn_frag = NULL;
-
-typedef struct
- {
- shmedia_operand_info operands[3];
- unsigned long ops_val;
- } shmedia_operands_info;
-
-enum sh64_abi_values
- { sh64_abi_unspecified, sh64_abi_32, sh64_abi_64 };
-
-/* What ISA are we assembling code for? */
-enum sh64_isa_values sh64_isa_mode = sh64_isa_unspecified;
-
-/* What ABI was specified, if any (implicitly or explicitly)? */
-static enum sh64_abi_values sh64_abi = sh64_abi_unspecified;
-
-/* A note that says if we're in a sequence of insns without label
- settings, segment or ISA mode changes or emitted data. */
-static bfd_boolean seen_insn = FALSE;
-
-/* This is set to TRUE in shmedia_md_end, so that we don't emit any
- .cranges entries when the assembler calls output functions while
- grinding along after all input is seen. */
-static bfd_boolean sh64_end_of_assembly = FALSE;
-
-/* Controlled by the option -no-mix, this invalidates mixing SHcompact and
- SHmedia code in the same section, and also invalidates mixing data and
- SHmedia code in the same section. No .cranges will therefore be
- emitted, unless -shcompact-const-crange is specified and there is a
- constant pool in SHcompact code. */
-static bfd_boolean sh64_mix = TRUE;
-
-static bfd_boolean sh64_shcompact_const_crange = FALSE;
-
-/* Controlled by the option -no-expand, this says whether or not we expand
- MOVI and PT/PTA/PTB. When we do not expand these insns to fit an
- operand, we will emit errors for operands out of range and generate the
- basic instruction and reloc for an external symbol. */
-static bfd_boolean sh64_expand = TRUE;
-
-/* Controlled by the option -expand-pt32, this says whether we expand
- PT/PTA/PTB of an external symbol to (only) 32 or (the full) 64 bits
- when -abi=64 is in effect. */
-static bfd_boolean sh64_pt32 = FALSE;
-
-/* When emitting a .cranges descriptor, we want to avoid getting recursive
- calls through emit_expr. */
-static bfd_boolean emitting_crange = FALSE;
-
-/* SHmedia mnemonics. */
-static struct hash_control *shmedia_opcode_hash_control = NULL;
-
-static const unsigned char shmedia_big_nop_pattern[4] =
- {
- (SHMEDIA_NOP_OPC >> 24) & 255, (SHMEDIA_NOP_OPC >> 16) & 255,
- (SHMEDIA_NOP_OPC >> 8) & 255, SHMEDIA_NOP_OPC & 255
- };
-
-static const unsigned char shmedia_little_nop_pattern[4] =
- {
- SHMEDIA_NOP_OPC & 255, (SHMEDIA_NOP_OPC >> 8) & 255,
- (SHMEDIA_NOP_OPC >> 16) & 255, (SHMEDIA_NOP_OPC >> 24) & 255
- };
-
-static void shmedia_md_begin (void);
-static int shmedia_parse_reg (char *, shmedia_arg_type *, int *,
- shmedia_arg_type);
-static void shmedia_md_assemble (char *);
-static void shmedia_md_apply_fix (fixS *, valueT *);
-static int shmedia_md_estimate_size_before_relax (fragS *, segT);
-static int shmedia_init_reloc (arelent *, fixS *);
-static char *shmedia_get_operands (shmedia_opcode_info *, char *,
- shmedia_operands_info *);
-static void s_sh64_mode (int);
-static void s_sh64_abi (int);
-static void shmedia_md_convert_frag (bfd *, segT, fragS *, bfd_boolean);
-static void shmedia_check_limits (offsetT *, bfd_reloc_code_real_type,
- fixS *);
-static void sh64_set_contents_type (enum sh64_elf_cr_type);
-static void shmedia_get_operand (char **, shmedia_operand_info *,
- shmedia_arg_type);
-static unsigned long shmedia_immediate_op (char *, shmedia_operand_info *,
- int, bfd_reloc_code_real_type);
-static char *shmedia_parse_exp (char *, shmedia_operand_info *);
-static void shmedia_frob_file_before_adjust (void);
-static void sh64_emit_crange (symbolS *, symbolS *, enum sh64_elf_cr_type);
-static void sh64_flush_last_crange (bfd *, asection *, void *);
-static void sh64_flag_output (void);
-static void sh64_update_contents_mark (bfd_boolean);
-static void sh64_vtable_entry (int);
-static void sh64_vtable_inherit (int);
-static char *strip_datalabels (void);
-static int shmedia_build_Mytes (shmedia_opcode_info *,
- shmedia_operands_info *);
-static shmedia_opcode_info *shmedia_find_cooked_opcode (char **);
-static unsigned long shmedia_mask_number (unsigned long,
- bfd_reloc_code_real_type);
-
-#include "tc-sh.c"
-
-void
-shmedia_md_end (void)
-{
- symbolS *symp;
-
- /* First, update the last range to include whatever data was last
- emitted. */
- sh64_update_contents_mark (TRUE);
-
- /* Make sure frags generated after this point are not marked with the
- wrong ISA; make them easily spottable. We still want to distinguish
- it from sh64_isa_unspecified when we compile for SHcompact or
- SHmedia. */
- if (sh64_isa_mode != sh64_isa_unspecified)
- sh64_isa_mode = sh64_isa_sh5_guard;
-
- sh64_end_of_assembly = TRUE;
-
- bfd_map_over_sections (stdoutput, sh64_flush_last_crange, NULL);
-
- /* Iterate over segments and emit the last .cranges descriptor. */
- for (symp = symbol_rootP; symp != NULL; symp = symp->sy_next)
- {
- symbolS *mainsym = *symbol_get_tc (symp);
-
- /* Is this a datalabel symbol; does it have a pointer to the main
- symbol? */
- if (mainsym != NULL)
- {
- /* If the datalabel symbol is undefined, check if the main
- symbol has changed in that respect. */
- if (S_GET_SEGMENT (symp) == undefined_section)
- {
- segT symseg;
-
- symseg = S_GET_SEGMENT (mainsym);
-
- /* If the symbol is now defined to something that is not
- global and without STO_SH5_ISA32, we just equate the
- datalabel symbol to the main symbol, and the lack of
- STO_SH5_ISA32 will handle the datalabelness. */
- if (symseg != undefined_section)
- {
- if (S_GET_OTHER (mainsym) != STO_SH5_ISA32)
- {
- symp->sy_value.X_op = O_symbol;
- symp->sy_value.X_add_symbol = mainsym;
- symp->sy_value.X_op_symbol = NULL;
- symp->sy_value.X_add_number = 0;
- S_SET_SEGMENT (symp, S_GET_SEGMENT (mainsym));
- symbol_set_frag (symp, &zero_address_frag);
- copy_symbol_attributes (symp, mainsym);
- }
- else
- {
- /* An undefined symbol has since we saw it at
- "datalabel", been defined to a BranchTarget
- symbol. What we need to do here is very similar
- to when we find the "datalabel" for a defined
- symbol. FIXME: Break out to common function. */
- symbol_set_value_expression (symp,
- symbol_get_value_expression
- (mainsym));
- S_SET_SEGMENT (symp, symseg);
- symbol_set_frag (symp, symbol_get_frag (mainsym));
- copy_symbol_attributes (symp, mainsym);
-
- /* Unset the BranchTarget mark that can be set at
- attribute-copying. */
- S_SET_OTHER (symp,
- S_GET_OTHER (symp) & ~STO_SH5_ISA32);
-
- /* The GLOBAL and WEAK attributes are not copied
- over by copy_symbol_attributes. Do it here. */
- if (S_IS_WEAK (mainsym))
- S_SET_WEAK (symp);
- else if (S_IS_EXTERNAL (mainsym))
- S_SET_EXTERNAL (symp);
- }
- }
- else
- {
- /* A symbol that was defined at the time we saw
- "datalabel" can since have been attributed with being
- weak or global. */
- if (S_IS_WEAK (mainsym))
- S_SET_WEAK (symp);
- else if (S_IS_EXTERNAL (mainsym))
- S_SET_EXTERNAL (symp);
- }
- }
- }
- }
-
- for (symp = symbol_rootP; symp != NULL; symp = symp->sy_next)
- if (S_GET_OTHER (symp) & STO_SH5_ISA32)
- symp->sy_value.X_add_number++;
-}
-
-/* When resolving symbols, the main assembler has done us a misfavour. It
- has removed the equation to the main symbol for a datalabel reference
- that should be equal to the main symbol, e.g. when it's a global or
- weak symbol and is a non-BranchTarget symbol anyway. We change that
- back, so that relocs are against the main symbol, not the local "section
- + offset" value. */
-
-static void
-shmedia_frob_file_before_adjust (void)
-{
- symbolS *symp;
- for (symp = symbol_rootP; symp != NULL; symp = symp->sy_next)
- {
- symbolS *mainsym = *symbol_get_tc (symp);
-
- if (mainsym != NULL
- && S_GET_OTHER (mainsym) != STO_SH5_ISA32
- && (S_IS_EXTERNAL (mainsym) || S_IS_WEAK (mainsym)))
- {
- symp->sy_value.X_op = O_symbol;
- symp->sy_value.X_add_symbol = mainsym;
- symp->sy_value.X_op_symbol = NULL;
- symp->sy_value.X_add_number = 0;
-
- /* For the "equation trick" to work, we have to set the section
- to undefined. */
- S_SET_SEGMENT (symp, undefined_section);
- symbol_set_frag (symp, &zero_address_frag);
- copy_symbol_attributes (symp, mainsym);
-
- /* Don't forget to remove the STO_SH5_ISA32 attribute after
- copying the other attributes. */
- S_SET_OTHER (symp, S_GET_OTHER (symp) & ~STO_SH5_ISA32);
- }
- }
-}
-
-/* We need to mark the current location after the alignment. This is
- copied code the caller, do_align. We mark the frag location before and
- after as we need and arrange to skip the same code in do_align.
-
- An alternative to code duplication is to call the do_align recursively,
- arranging to fall through into do_align if we're already here. That
- would require do_align as an incoming function parameter, since it's
- static in read.c. That solution was discarded a too kludgy. */
-
-void
-sh64_do_align (int n, const char *fill, int len, int max)
-{
- /* Update region, or put a data region in front. */
- sh64_update_contents_mark (TRUE);
-
- /* Only make a frag if we HAVE to... */
- if (n != 0 && !need_pass_2)
- {
- if (fill == NULL)
- {
- if (subseg_text_p (now_seg))
- frag_align_code (n, max);
- else
- frag_align (n, 0, max);
- }
- else if (len <= 1)
- frag_align (n, *fill, max);
- else
- frag_align_pattern (n, fill, len, max);
- }
-
- /* Update mark for current region with current type. */
- sh64_update_contents_mark (FALSE);
-}
-
-/* The MAX_MEM_FOR_RS_ALIGN_CODE worker. We have to find out the ISA of
- the current segment at this position. We can't look just at
- sh64_isa_shmedia, and we can't look at frag_now. This is brittle:
- callers are currently frag_align_code from subsegs_finish in write.c
- (end of assembly) and frag_align_code from do_align in read.c (during
- assembly). */
-
-int
-sh64_max_mem_for_rs_align_code (void)
-{
- segment_info_type *seginfo;
- fragS *mode_start_frag;
- seginfo = seg_info (now_seg);
-
- /* We don't use the contents type we find at the tc_segment_info_data,
- since that does not give us absolute information about the ISA; the
- contents type can presumably be CRT_DATA and we'd be none the wiser.
- Instead we use the information stored at the frag of the symbol at
- the start of this range. If any information is missing or NULL,
- assume SHcompact. */
- return
- /* If the current ISA mode is SHmedia, that's the mode that we're
- going to assign to the new frag, so request enough memory for
- it, even if we switch modes afterwards, otherwise we may
- allocate too little memory and end up overflowing our buffer. */
- (sh64_isa_mode == sh64_isa_shmedia
- || (sh64_isa_mode != sh64_isa_unspecified
- && seginfo != NULL
- && seginfo->tc_segment_info_data.mode_start_symbol != NULL
- && ((mode_start_frag
- = (symbol_get_frag
- (seginfo->tc_segment_info_data.mode_start_symbol)))
- != NULL)
- && mode_start_frag->tc_frag_data.isa == sh64_isa_shmedia))
- ? (3 + 4) : (2 + 1);
-}
-
-/* Put in SHmedia NOP:s if the alignment was created when in SHmedia mode. */
-
-void
-sh64_handle_align (fragS * frag)
-{
- int bytes = frag->fr_next->fr_address - frag->fr_address - frag->fr_fix;
- char * p = frag->fr_literal + frag->fr_fix;
-
- if (frag->tc_frag_data.isa == sh64_isa_shmedia
- && frag->fr_type == rs_align_code)
- {
- while (bytes & 3)
- {
- *p++ = 0;
- bytes--;
- frag->fr_fix += 1;
- }
-
- if (target_big_endian)
- {
- memcpy (p, shmedia_big_nop_pattern,
- sizeof shmedia_big_nop_pattern);
- frag->fr_var = sizeof shmedia_big_nop_pattern;
- }
- else
- {
- memcpy (p, shmedia_little_nop_pattern,
- sizeof shmedia_little_nop_pattern);
- frag->fr_var = sizeof shmedia_little_nop_pattern;
- }
- }
- else
- /* Punt to SHcompact function. */
- sh_handle_align (frag);
-}
-
-/* Set SEC_SH64_ISA32 for SHmedia sections. */
-
-void
-shmedia_frob_section_type (asection *sec)
-{
- segment_info_type *seginfo;
- seginfo = seg_info (sec);
-
- /* This and elf32-sh64.c:sh64_elf_fake_sections are the only places
- where we use anything else than ELF header flags to communicate the
- section as containing SHmedia or other contents. BFD SEC_* section
- flags are running out and should not be overloaded with
- target-specific semantics. This target is ELF only (semantics not
- defined for other formats), so we use the target-specific pointer
- field of the ELF section data. */
- if (seginfo && sh64_abi == sh64_abi_32)
- {
- struct sh64_section_data *sec_elf_data;
- flagword sec_type = 0;
-
- if (seginfo->tc_segment_info_data.emitted_ranges != 0)
- sec_type = SHF_SH5_ISA32_MIXED;
- else if (seginfo->tc_segment_info_data.contents_type == CRT_SH5_ISA32)
- sec_type = SHF_SH5_ISA32;
-
- sec_elf_data = sh64_elf_section_data (sec)->sh64_info;
- if (sec_elf_data == NULL)
- {
- sec_elf_data = XCNEW (struct sh64_section_data);
- sh64_elf_section_data (sec)->sh64_info = sec_elf_data;
- }
-
- sec_elf_data->contents_flags = sec_type;
- }
-}
-
-/* This function is called by write_object_file right before the symbol
- table is written. We subtract 1 from all symbols marked STO_SH5_ISA32,
- as their values are temporarily incremented in shmedia_md_end, before
- symbols values are used by relocs and fixups.
-
- To increment all symbols and then decrement here is admittedly a
- hackish solution. The alternative is to add infrastructure and hooks
- to symbol evaluation that evaluates symbols differently internally to
- the value output into the object file, but at the moment that just
- seems too much for little benefit. */
-
-void
-sh64_adjust_symtab (void)
-{
- symbolS *symp;
-
- for (symp = symbol_rootP; symp; symp = symbol_next (symp))
- {
- symbolS *main_symbol = *symbol_get_tc (symp);
-
- if (main_symbol)
- {
- char *sym_name = (char *) S_GET_NAME (symp);
-
- /* All datalabels not used in relocs should be gone by now.
-
- We change those remaining to have the name of the main
- symbol, and we set the ELF type of the symbol of the reloc to
- STT_DATALABEL. */
- sym_name[strlen (sym_name) - strlen (DATALABEL_SUFFIX)] = 0;
- elf_symbol (symbol_get_bfdsym (symp))->internal_elf_sym.st_info
- = STT_DATALABEL;
-
- /* Also set this symbol to "undefined", so we'll have only one
- definition. */
- S_SET_SEGMENT (symp, undefined_section);
- }
- else if (S_GET_OTHER (symp) & STO_SH5_ISA32)
- {
- /* It's important to change the BFD symbol value, since it is now
- set to the GAS symbolS value. */
- symp->bsym->value--;
-
- /* Note that we do *not* adjust symp->sy_value.X_add_number. If
- you do this, the test case in sh/sh64/immexpr2.s will fail.
- This is because *after* symbols have been output but before
- relocs are output, fixups are inspected one more time, and
- some leftover expressions are resolved. To resolve to the
- same values, those expressions must have the same GAS symbol
- values before as after symbols have been output. We could
- "symp->sy_value.X_add_number++" on the STO_SH5_ISA32 symbols
- through tc_frob_file after symbols have been output, but that
- would be too gross. */
- }
- }
-}
-
-/* Fill-in an allocated arelent. */
-
-static int
-shmedia_init_reloc (arelent *rel, fixS *fixP)
-{
- /* Adjust parts of *relp according to *fixp, and tell that it has been
- done, so default initializations will not happen. */
- switch (fixP->fx_r_type)
- {
- case BFD_RELOC_64:
- case BFD_RELOC_64_PCREL:
- case BFD_RELOC_SH_IMM_LOW16:
- case BFD_RELOC_SH_IMM_MEDLOW16:
- case BFD_RELOC_SH_IMM_MEDHI16:
- case BFD_RELOC_SH_IMM_HI16:
- case BFD_RELOC_SH_IMM_LOW16_PCREL:
- case BFD_RELOC_SH_IMM_MEDLOW16_PCREL:
- case BFD_RELOC_SH_IMM_MEDHI16_PCREL:
- case BFD_RELOC_SH_IMM_HI16_PCREL:
- case BFD_RELOC_SH_IMMU5:
- case BFD_RELOC_SH_IMMU6:
- case BFD_RELOC_SH_IMMS6:
- case BFD_RELOC_SH_IMMS10:
- case BFD_RELOC_SH_IMMS10BY2:
- case BFD_RELOC_SH_IMMS10BY4:
- case BFD_RELOC_SH_IMMS10BY8:
- case BFD_RELOC_SH_IMMS16:
- case BFD_RELOC_SH_IMMU16:
- case BFD_RELOC_SH_PT_16:
- case BFD_RELOC_SH_GOT_LOW16:
- case BFD_RELOC_SH_GOT_MEDLOW16:
- case BFD_RELOC_SH_GOT_MEDHI16:
- case BFD_RELOC_SH_GOT_HI16:
- case BFD_RELOC_SH_GOT10BY4:
- case BFD_RELOC_SH_GOT10BY8:
- case BFD_RELOC_SH_GOTPLT_LOW16:
- case BFD_RELOC_SH_GOTPLT_MEDLOW16:
- case BFD_RELOC_SH_GOTPLT_MEDHI16:
- case BFD_RELOC_SH_GOTPLT_HI16:
- case BFD_RELOC_SH_GOTPLT10BY4:
- case BFD_RELOC_SH_GOTPLT10BY8:
- case BFD_RELOC_SH_GOTOFF_LOW16:
- case BFD_RELOC_SH_GOTOFF_MEDLOW16:
- case BFD_RELOC_SH_GOTOFF_MEDHI16:
- case BFD_RELOC_SH_GOTOFF_HI16:
- case BFD_RELOC_SH_GOTPC_LOW16:
- case BFD_RELOC_SH_GOTPC_MEDLOW16:
- case BFD_RELOC_SH_GOTPC_MEDHI16:
- case BFD_RELOC_SH_GOTPC_HI16:
- case BFD_RELOC_SH_PLT_LOW16:
- case BFD_RELOC_SH_PLT_MEDLOW16:
- case BFD_RELOC_SH_PLT_MEDHI16:
- case BFD_RELOC_SH_PLT_HI16:
- rel->addend = fixP->fx_addnumber + fixP->fx_offset;
- return 1;
-
- case BFD_RELOC_SH_IMMS6BY32:
- /* This must be resolved in assembly; we do not support it as a
- reloc in an object file. */
- as_bad_where (fixP->fx_file, fixP->fx_line,
- _("This operand must be constant at assembly time"));
- break;
-
- /* There are valid cases where we get here for other than SHmedia
- relocs, so don't make a BAD_CASE out of this. */
- default:
- ;
- }
-
- return 0;
-}
-
-/* Hook called from md_apply_fix in tc-sh.c. */
-
-static void
-shmedia_md_apply_fix (fixS *fixP, valueT *valp)
-{
- offsetT val = *valp;
- char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
- unsigned long insn
- = target_big_endian ? bfd_getb32 (buf) : bfd_getl32 (buf);
- bfd_reloc_code_real_type orig_fx_r_type = fixP->fx_r_type;
-
- /* Change a 64-bit pc-relative reloc into the correct type, just like
- tc-sh.c:md_apply_fix. */
- if (fixP->fx_pcrel)
- {
- switch (orig_fx_r_type)
- {
- case BFD_RELOC_64:
- case BFD_RELOC_SH_IMM_LOW16:
- case BFD_RELOC_SH_IMM_MEDLOW16:
- case BFD_RELOC_SH_IMM_MEDHI16:
- case BFD_RELOC_SH_IMM_HI16:
- /* Because write.c calls MD_PCREL_FROM_SECTION twice, we need to
- undo one of the adjustments, if the relocation is not
- actually for a symbol within the same segment (which we
- cannot check, because we're not called from md_apply_fix, so
- we have to keep the reloc). FIXME: This is a bug in
- write.c:fixup_segment affecting most targets that change
- ordinary relocs to pcrel relocs in md_apply_fix. */
- fixP->fx_offset
- = *valp + SHMEDIA_MD_PCREL_FROM_FIX (fixP);
- break;
-
- case BFD_RELOC_SH_PLT_LOW16:
- case BFD_RELOC_SH_PLT_MEDLOW16:
- case BFD_RELOC_SH_PLT_MEDHI16:
- case BFD_RELOC_SH_PLT_HI16:
- case BFD_RELOC_SH_GOTPC_LOW16:
- case BFD_RELOC_SH_GOTPC_MEDLOW16:
- case BFD_RELOC_SH_GOTPC_MEDHI16:
- case BFD_RELOC_SH_GOTPC_HI16:
- *valp = 0;
- return;
-
- default:
- ;
- }
-
- /* We might need to change some relocs into the corresponding
- PC-relative one. */
- switch (orig_fx_r_type)
- {
- case BFD_RELOC_64:
- fixP->fx_r_type = BFD_RELOC_64_PCREL;
- break;
-
- case BFD_RELOC_SH_IMM_LOW16:
- fixP->fx_r_type = BFD_RELOC_SH_IMM_LOW16_PCREL;
- break;
-
- case BFD_RELOC_SH_IMM_MEDLOW16:
- fixP->fx_r_type = BFD_RELOC_SH_IMM_MEDLOW16_PCREL;
- break;
-
- case BFD_RELOC_SH_IMM_MEDHI16:
- fixP->fx_r_type = BFD_RELOC_SH_IMM_MEDHI16_PCREL;
- break;
-
- case BFD_RELOC_SH_IMM_HI16:
- fixP->fx_r_type = BFD_RELOC_SH_IMM_HI16_PCREL;
- break;
-
- case SHMEDIA_BFD_RELOC_PT:
- /* This is how we see a difference between PT and PTA when not
- expanding (in which case we handle it in
- shmedia_md_convert_frag). Note that we don't see a
- difference after the reloc is emitted. */
- fixP->fx_r_type = BFD_RELOC_SH_PT_16;
- break;
-
- case BFD_RELOC_SH_PT_16:
- /* This tells us there was a PTA or PTB insn explicitly
- expressed as such (not as PT). We "or" in a 1 into the
- lowest bit in the (unused) destination field to tell the
- linker that it should check the right ISA type of the
- destination and not just change a PTA to PTB (if necessary). */
- md_number_to_chars (buf, insn | (1 << 10), 4);
- break;
-
- case BFD_RELOC_64_PCREL:
- case BFD_RELOC_SH_IMM_LOW16_PCREL:
- case BFD_RELOC_SH_IMM_MEDLOW16_PCREL:
- case BFD_RELOC_SH_IMM_MEDHI16_PCREL:
- case BFD_RELOC_SH_IMM_HI16_PCREL:
- /* Already handled. */
- break;
-
- default:
- /* Everything else that changes into a pc-relative relocation is
- an error. */
- as_bad_where (fixP->fx_file, fixP->fx_line,
- _("Invalid operand expression"));
- break;
- }
-
- return;
- }
-
- /* If an expression looked like it was PC-relative, but was completely
- resolvable, we end up here with the result only in *VALP, and no
- relocation will be emitted. */
- if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
- {
- /* Emit error for an out-of-range value. */
- shmedia_check_limits ((offsetT *) valp, fixP->fx_r_type, fixP);
-
- switch (fixP->fx_r_type)
- {
- case BFD_RELOC_SH_IMM_LOW16:
- md_number_to_chars (buf, insn | ((val & 65535) << 10), 4);
- break;
-
- case BFD_RELOC_SH_IMM_MEDLOW16:
- md_number_to_chars (buf,
- insn
- | ((valueT) (val & ((valueT) 65535 << 16))
- >> (16 - 10)), 4);
- break;
-
- case BFD_RELOC_SH_IMM_MEDHI16:
- md_number_to_chars (buf,
- insn
- | ((valueT) (val & ((valueT) 65535 << 32))
- >> (32 - 10)), 4);
- break;
-
- case BFD_RELOC_SH_IMM_HI16:
- md_number_to_chars (buf,
- insn
- | ((valueT) (val & ((valueT) 65535 << 48))
- >> (48 - 10)), 4);
- break;
-
- case BFD_RELOC_SH_IMMS16:
- case BFD_RELOC_SH_IMMU16:
- md_number_to_chars (buf, insn | ((val & 65535) << 10), 4);
- break;
-
- case BFD_RELOC_SH_IMMS10:
- md_number_to_chars (buf, insn | ((val & 0x3ff) << 10), 4);
- break;
-
- case BFD_RELOC_SH_IMMS10BY2:
- md_number_to_chars (buf,
- insn | ((val & (0x3ff << 1)) << (10 - 1)), 4);
- break;
-
- case BFD_RELOC_SH_IMMS10BY4:
- md_number_to_chars (buf,
- insn | ((val & (0x3ff << 2)) << (10 - 2)), 4);
- break;
-
- case BFD_RELOC_SH_IMMS10BY8:
- md_number_to_chars (buf,
- insn | ((val & (0x3ff << 3)) << (10 - 3)), 4);
- break;
-
- case BFD_RELOC_SH_SHMEDIA_CODE:
- /* We just ignore and remove this one for the moment. FIXME:
- Use it when implementing relaxing. */
- break;
-
- case BFD_RELOC_64:
- md_number_to_chars (buf, val, 8);
- break;
-
- case SHMEDIA_BFD_RELOC_PT:
- /* Change a PT to PTB if the operand turned out to be SHcompact.
- The basic opcode specified with PT is equivalent to PTA. */
- if ((val & 1) == 0)
- insn |= SHMEDIA_PTB_BIT;
- /* Fall through. */
-
- case BFD_RELOC_SH_PT_16:
- if (! sh64_expand || sh_relax)
- {
- /* Check if the operand of a PTA or PTB was for the "wrong"
- ISA. A PT had an incoming fixup of SHMEDIA_BFD_RELOC_PT,
- which we have changed to the right type above. */
- if (orig_fx_r_type != SHMEDIA_BFD_RELOC_PT)
- {
- if ((insn & SHMEDIA_PTB_BIT) != 0 && (val & 1) != 0)
- as_bad_where (fixP->fx_file, fixP->fx_line,
- _("PTB operand is a SHmedia symbol"));
- else if ((insn & SHMEDIA_PTB_BIT) == 0 && (val & 1) == 0)
- as_bad_where (fixP->fx_file, fixP->fx_line,
- _("PTA operand is a SHcompact symbol"));
- }
-
- md_number_to_chars (buf,
- insn | ((val & (0xffff << 2))
- << (10 - 2)),
- 4);
- break;
- }
- /* Fall through. */
-
- default:
- /* This isn't a BAD_CASE, because presumably we can get here
- from unexpected operands. Since we don't handle them, make
- them syntax errors. */
- as_bad_where (fixP->fx_file, fixP->fx_line,
- _("invalid expression in operand"));
- }
- fixP->fx_done = 1;
- }
-}
-
-/* Hook called from md_convert_frag in tc-sh.c. */
-
-static void
-shmedia_md_convert_frag (bfd *output_bfd ATTRIBUTE_UNUSED,
- segT seg ATTRIBUTE_UNUSED, fragS *fragP,
- bfd_boolean final)
-{
- /* Pointer to first byte in variable-sized part of the frag. */
- char *var_partp;
-
- /* Pointer to first opcode byte in frag. */
- char *opcodep;
-
- /* Pointer to frag of opcode. */
- fragS *opc_fragP = fragP->tc_frag_data.opc_frag;
-
- /* Size in bytes of variable-sized part of frag. */
- int var_part_size = 0;
-
- /* This is part of *fragP. It contains all information about addresses
- and offsets to varying parts. */
- symbolS *symbolP = fragP->fr_symbol;
-
- bfd_boolean reloc_needed
- = (! final
- || sh_relax
- || symbolP == NULL
- || ! S_IS_DEFINED (symbolP)
- || S_IS_EXTERNAL (symbolP)
- || S_IS_WEAK (symbolP)
- || (S_GET_SEGMENT (fragP->fr_symbol) != absolute_section
- && S_GET_SEGMENT (fragP->fr_symbol) != seg));
-
- bfd_reloc_code_real_type reloctype = BFD_RELOC_NONE;
-
- unsigned long var_part_offset;
-
- /* Where, in file space, does addr point? */
- bfd_vma target_address;
- bfd_vma opcode_address;
-
- /* What was the insn? */
- unsigned long insn;
- know (fragP->fr_type == rs_machine_dependent);
-
- var_part_offset = fragP->fr_fix;
- var_partp = fragP->fr_literal + var_part_offset;
- opcodep = fragP->fr_opcode;
-
- insn = target_big_endian ? bfd_getb32 (opcodep) : bfd_getl32 (opcodep);
-
- target_address
- = ((symbolP && final && ! sh_relax ? S_GET_VALUE (symbolP) : 0)
- + fragP->fr_offset);
-
- /* The opcode that would be extended is the last four "fixed" bytes. */
- opcode_address = fragP->fr_address + fragP->fr_fix - 4;
-
- switch (fragP->fr_subtype)
- {
- case C (SH64PCREL16PT_64, SH64PCREL16):
- case C (SH64PCREL16PT_32, SH64PCREL16):
- /* We can get a PT to a relaxed SHcompact address if it is in the
- same section; a mixed-ISA section. Change the opcode to PTB if
- so. */
- if ((target_address & 1) == 0)
- insn |= SHMEDIA_PTB_BIT;
- /* Fall through. */
-
- case C (SH64PCREL16_32, SH64PCREL16):
- case C (SH64PCREL16_64, SH64PCREL16):
- /* Check that a PTA or PTB points to the right type of target. We
- can get here for a SHcompact target if we are in a mixed-ISA
- section. */
- if (((target_address & 1) == 0) && ((insn & SHMEDIA_PTB_BIT) == 0))
- as_bad_where (fragP->fr_file, fragP->fr_line,
- _("PTA operand is a SHcompact symbol"));
- if (((target_address & 1) != 0) && ((insn & SHMEDIA_PTB_BIT) != 0))
- as_bad_where (fragP->fr_file, fragP->fr_line,
- _("PTB operand is a SHmedia symbol"));
-
- /* When relaxing, we do not output the address in the insn, but
- instead a 1 into the low bit. This matches what the linker
- expects to find for a BFD_RELOC_SH_PT_16 reloc, when it checks
- correctness for PTA/PTB insn; used when the target address is
- unknown (which is not the case here). */
- md_number_to_chars (opcodep,
- insn
- | (((sh_relax
- ? 1 : ((target_address - opcode_address) / 4))
- & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Note that we do not emit info that this was originally a PT since
- we have resolved to which one of PTA or PTB it will be. */
- if (sh_relax)
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 1, BFD_RELOC_SH_PT_16);
- var_part_size = 0;
- break;
-
- case C (SH64PCREL16_32, SH64PCRELPLT):
- case C (SH64PCREL16PT_32, SH64PCRELPLT):
- reloctype = BFD_RELOC_32_PLT_PCREL;
- reloc_needed = 1;
- /* Fall through */
-
- case C (SH64PCREL16_32, SH64PCREL32):
- case C (SH64PCREL16_64, SH64PCREL32):
- case C (SH64PCREL16PT_32, SH64PCREL32):
- case C (SH64PCREL16PT_64, SH64PCREL32):
- /* In the fixed bit, put in a MOVI. */
- md_number_to_chars (opcodep,
- SHMEDIA_MOVI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | ((((reloc_needed
- ? 0 : (target_address - (opcode_address + 8))
- ) >> 16) & 65535) << 10),
- 4);
-
- /* Fill in a SHORI for the low part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | (((reloc_needed
- ? 0 : (target_address - (opcode_address + 8)))
- & 65535) << 10),
- 4);
-
- /* End with a "PTREL R25,TRd". */
- md_number_to_chars (var_partp + 4,
- SHMEDIA_PTREL_OPC | (insn & SHMEDIA_LIKELY_BIT)
- | (SHMEDIA_TEMP_REG << 10)
- | (insn & (7 << 4)),
- 4);
-
- /* We need relocs only if the target symbol was undefined or if
- we're relaxing. */
- if (reloc_needed)
- {
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset - 8, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDLOW16
- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset - 4, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_LOW16
- : BFD_RELOC_SH_IMM_LOW16_PCREL);
- }
-
- var_part_size = 8;
- break;
-
- case C (SH64PCREL16_64, SH64PCREL48):
- case C (SH64PCREL16PT_64, SH64PCREL48):
- /* In the fixed bit, put in a MOVI. */
- md_number_to_chars (opcodep,
- SHMEDIA_MOVI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | ((((reloc_needed
- ? 0 : (target_address - (opcode_address + 12))
- ) >> 32) & 65535) << 10),
- 4);
-
- /* The first SHORI, for the medium part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | ((((reloc_needed
- ? 0 : (target_address - (opcode_address + 12))
- ) >> 16) & 65535) << 10),
- 4);
-
- /* Fill in a SHORI for the low part. */
- md_number_to_chars (var_partp + 4,
- SHMEDIA_SHORI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | (((reloc_needed
- ? 0 : (target_address - (opcode_address + 12)))
- & 65535) << 10),
- 4);
-
- /* End with a "PTREL R25,TRd". */
- md_number_to_chars (var_partp + 8,
- SHMEDIA_PTREL_OPC | (insn & SHMEDIA_LIKELY_BIT)
- | (SHMEDIA_TEMP_REG << 10)
- | (insn & (7 << 4)),
- 4);
-
- /* We need relocs only if the target symbol was undefined or if
- we're relaxing. */
- if (reloc_needed)
- {
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset - 12, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDHI16
- : BFD_RELOC_SH_IMM_MEDHI16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset - 8, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDLOW16
- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal + 4, 4, fragP->fr_symbol,
- fragP->fr_offset - 4, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_LOW16
- : BFD_RELOC_SH_IMM_LOW16_PCREL);
- }
-
- var_part_size = 12;
- break;
-
- case C (SH64PCREL16_64, SH64PCRELPLT):
- case C (SH64PCREL16PT_64, SH64PCRELPLT):
- reloctype = BFD_RELOC_32_PLT_PCREL;
- reloc_needed = 1;
- /* Fall through */
-
- case C (SH64PCREL16_64, SH64PCREL64):
- case C (SH64PCREL16PT_64, SH64PCREL64):
- /* In the fixed bit, put in a MOVI. */
- md_number_to_chars (opcodep,
- SHMEDIA_MOVI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | ((((reloc_needed
- ? 0 : (target_address - (opcode_address + 16))
- ) >> 48) & 65535) << 10),
- 4);
-
- /* The first SHORI, for the medium-high part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | ((((reloc_needed
- ? 0 : (target_address - (opcode_address + 16))
- ) >> 32) & 65535) << 10),
- 4);
-
- /* A SHORI, for the medium-low part. */
- md_number_to_chars (var_partp + 4,
- SHMEDIA_SHORI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | ((((reloc_needed
- ? 0 : (target_address - (opcode_address + 16))
- ) >> 16) & 65535) << 10),
- 4);
-
- /* Fill in a SHORI for the low part. */
- md_number_to_chars (var_partp + 8,
- SHMEDIA_SHORI_OPC
- | (SHMEDIA_TEMP_REG << 4)
- | (((reloc_needed
- ? 0 : (target_address - (opcode_address + 16)))
- & 65535) << 10),
- 4);
-
- /* End with a "PTREL R25,TRd". */
- md_number_to_chars (var_partp + 12,
- SHMEDIA_PTREL_OPC | (insn & SHMEDIA_LIKELY_BIT)
- | (SHMEDIA_TEMP_REG << 10)
- | (insn & (7 << 4)),
- 4);
-
- /* We need relocs only if the target symbol was undefined or if
- we're relaxing. */
- if (reloc_needed)
- {
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset - 16, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_HI16
- : BFD_RELOC_SH_IMM_HI16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset - 12, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDHI16
- : BFD_RELOC_SH_IMM_MEDHI16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal + 4, 4, fragP->fr_symbol,
- fragP->fr_offset - 8, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDLOW16
- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal + 8, 4, fragP->fr_symbol,
- fragP->fr_offset - 4, 1,
- reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_LOW16
- : BFD_RELOC_SH_IMM_LOW16_PCREL);
- }
-
- var_part_size = 16;
- break;
-
- case C (MOVI_IMM_64, MOVI_GOTOFF):
- reloctype = BFD_RELOC_32_GOTOFF;
- reloc_needed = 1;
- /* Fall through. */
-
- case C (MOVI_IMM_64, UNDEF_MOVI):
- case C (MOVI_IMM_64, MOVI_64):
- {
- /* We only get here for undefined symbols, so we can simplify
- handling compared to those above; we have 0 in the parts that
- will be filled with the symbol parts. */
-
- int reg = (insn >> 4) & 0x3f;
-
- /* In the fixed bit, put in a MOVI. */
- md_number_to_chars (opcodep, SHMEDIA_MOVI_OPC | (reg << 4), 4);
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 0,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_HI16
- : reloctype == BFD_RELOC_32_GOTOFF
- ? BFD_RELOC_SH_GOTOFF_HI16
- : (abort (), BFD_RELOC_SH_IMM_HI16));
-
- /* The first SHORI, for the medium-high part. */
- md_number_to_chars (var_partp, SHMEDIA_SHORI_OPC | (reg << 4), 4);
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset, 0,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_MEDHI16
- : reloctype == BFD_RELOC_32_GOTOFF
- ? BFD_RELOC_SH_GOTOFF_MEDHI16
- : (abort (), BFD_RELOC_SH_IMM_MEDHI16));
-
- /* A SHORI, for the medium-low part. */
- md_number_to_chars (var_partp + 4,
- SHMEDIA_SHORI_OPC | (reg << 4), 4);
- fix_new (fragP, var_partp - fragP->fr_literal + 4, 4, fragP->fr_symbol,
- fragP->fr_offset, 0,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_MEDLOW16
- : reloctype == BFD_RELOC_32_GOTOFF
- ? BFD_RELOC_SH_GOTOFF_MEDLOW16
- : (abort (), BFD_RELOC_SH_IMM_MEDLOW16));
-
- /* Fill in a SHORI for the low part. */
- md_number_to_chars (var_partp + 8,
- SHMEDIA_SHORI_OPC | (reg << 4), 4);
- fix_new (fragP, var_partp - fragP->fr_literal + 8, 4, fragP->fr_symbol,
- fragP->fr_offset, 0,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_LOW16
- : reloctype == BFD_RELOC_32_GOTOFF
- ? BFD_RELOC_SH_GOTOFF_LOW16
- : (abort (), BFD_RELOC_SH_IMM_LOW16));
-
- var_part_size = 12;
- break;
- }
-
- case C (MOVI_IMM_32, MOVI_GOTOFF):
- reloctype = BFD_RELOC_32_GOTOFF;
- reloc_needed = 1;
- /* Fall through. */
-
- case C (MOVI_IMM_32, UNDEF_MOVI):
- case C (MOVI_IMM_32, MOVI_32):
- {
- /* Note that we only get here for undefined symbols. */
-
- int reg = (insn >> 4) & 0x3f;
-
- /* A MOVI, for the high part. */
- md_number_to_chars (opcodep, SHMEDIA_MOVI_OPC | (reg << 4), 4);
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 0,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_MEDLOW16
- : reloctype == BFD_RELOC_32_GOTOFF
- ? BFD_RELOC_SH_GOTOFF_MEDLOW16
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_MEDLOW16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDLOW16
- : (abort (), BFD_RELOC_SH_IMM_MEDLOW16));
-
- /* Fill in a SHORI for the low part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC | (reg << 4), 4);
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset, 0,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_LOW16
- : reloctype == BFD_RELOC_32_GOTOFF
- ? BFD_RELOC_SH_GOTOFF_LOW16
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_LOW16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_LOW16
- : (abort (), BFD_RELOC_SH_IMM_LOW16));
-
- var_part_size = 4;
- break;
- }
-
- case C (MOVI_IMM_32_PCREL, MOVI_16):
- case C (MOVI_IMM_64_PCREL, MOVI_16):
- md_number_to_chars (opcodep,
- insn
- | (((reloc_needed
- ? 0 : (target_address - opcode_address))
- & 65535) << 10),
- 4);
- if (reloc_needed)
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 1,
- BFD_RELOC_SH_IMM_LOW16_PCREL);
- var_part_size = 0;
- break;
-
- case C (MOVI_IMM_32, MOVI_16):
- case C (MOVI_IMM_64, MOVI_16):
- md_number_to_chars (opcodep,
- insn
- | (((reloc_needed ? 0 : target_address)
- & 65535) << 10),
- 4);
- if (reloc_needed)
- abort ();
- var_part_size = 0;
- break;
-
- case C (MOVI_IMM_32_PCREL, MOVI_PLT):
- reloctype = BFD_RELOC_32_PLT_PCREL;
- goto movi_imm_32_pcrel_reloc_needed;
-
- case C (MOVI_IMM_32_PCREL, MOVI_GOTPC):
- reloctype = BFD_RELOC_SH_GOTPC;
- /* Fall through. */
-
- movi_imm_32_pcrel_reloc_needed:
- reloc_needed = 1;
- /* Fall through. */
-
- case C (MOVI_IMM_32_PCREL, MOVI_32):
- case C (MOVI_IMM_64_PCREL, MOVI_32):
- {
- int reg = (insn >> 4) & 0x3f;
-
- md_number_to_chars (opcodep,
- insn
- | (((((reloc_needed
- ? 0 : (target_address - opcode_address)))
- >> 16) & 65535) << 10), 4);
-
- /* A SHORI, for the low part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | (((reloc_needed
- ? 0 : (target_address - opcode_address))
- & 65535) << 10), 4);
- if (reloc_needed)
- {
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 1,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_MEDLOW16_PCREL
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_MEDLOW16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDLOW16
- : (abort (), BFD_RELOC_SH_IMM_MEDLOW16_PCREL));
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset + 4, 1,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_LOW16_PCREL
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_LOW16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_LOW16
- : (abort (), BFD_RELOC_SH_IMM_LOW16_PCREL));
- }
- var_part_size = 4;
- }
- break;
-
- case C (MOVI_IMM_32_PCREL, MOVI_48):
- case C (MOVI_IMM_64_PCREL, MOVI_48):
- {
- int reg = (insn >> 4) & 0x3f;
-
- md_number_to_chars (opcodep,
- insn
- | (((((reloc_needed
- ? 0 : (target_address - opcode_address)))
- >> 32) & 65535) << 10), 4);
-
- /* A SHORI, for the medium part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | ((((reloc_needed
- ? 0 : (target_address - opcode_address))
- >> 16) & 65535) << 10), 4);
-
- /* A SHORI, for the low part. */
- md_number_to_chars (var_partp + 4,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | (((reloc_needed
- ? 0 : (target_address - opcode_address))
- & 65535) << 10), 4);
- if (reloc_needed)
- {
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 1,
- BFD_RELOC_SH_IMM_MEDHI16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset + 4, 1, BFD_RELOC_SH_IMM_MEDLOW16_PCREL);
- fix_new (fragP, var_partp - fragP->fr_literal + 4, 4, fragP->fr_symbol,
- fragP->fr_offset + 8, 1, BFD_RELOC_SH_IMM_LOW16_PCREL);
- }
- var_part_size = 8;
- }
- break;
-
- case C (MOVI_IMM_64_PCREL, MOVI_PLT):
- reloctype = BFD_RELOC_32_PLT_PCREL;
- goto movi_imm_64_pcrel_reloc_needed;
-
- case C (MOVI_IMM_64_PCREL, MOVI_GOTPC):
- reloctype = BFD_RELOC_SH_GOTPC;
- /* Fall through. */
-
- movi_imm_64_pcrel_reloc_needed:
- reloc_needed = 1;
- /* Fall through. */
-
- case C (MOVI_IMM_32_PCREL, MOVI_64):
- case C (MOVI_IMM_64_PCREL, MOVI_64):
- {
- int reg = (insn >> 4) & 0x3f;
-
- md_number_to_chars (opcodep,
- insn
- | (((((reloc_needed
- ? 0 : (target_address - opcode_address)))
- >> 48) & 65535) << 10), 4);
-
- /* A SHORI, for the medium-high part. */
- md_number_to_chars (var_partp,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | ((((reloc_needed
- ? 0 : (target_address - opcode_address))
- >> 32) & 65535) << 10), 4);
-
- /* A SHORI, for the medium-low part. */
- md_number_to_chars (var_partp + 4,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | ((((reloc_needed
- ? 0 : (target_address - opcode_address))
- >> 16) & 65535) << 10), 4);
-
- /* A SHORI, for the low part. */
- md_number_to_chars (var_partp + 8,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | (((reloc_needed
- ? 0 : (target_address - opcode_address))
- & 65535) << 10), 4);
- if (reloc_needed)
- {
- fix_new (opc_fragP, opcodep - opc_fragP->fr_literal, 4,
- fragP->fr_symbol, fragP->fr_offset, 1,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_HI16_PCREL
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_HI16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_HI16
- : (abort (), BFD_RELOC_SH_IMM_HI16_PCREL));
- fix_new (fragP, var_partp - fragP->fr_literal, 4, fragP->fr_symbol,
- fragP->fr_offset + 4, 1,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_MEDHI16_PCREL
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_MEDHI16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDHI16
- : (abort (), BFD_RELOC_SH_IMM_MEDHI16_PCREL));
- fix_new (fragP, var_partp - fragP->fr_literal + 4, 4,
- fragP->fr_symbol,
- fragP->fr_offset + 8, 1,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_MEDLOW16_PCREL
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_MEDLOW16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_MEDLOW16
- : (abort (), BFD_RELOC_SH_IMM_MEDLOW16_PCREL));
- fix_new (fragP, var_partp - fragP->fr_literal + 8, 4,
- fragP->fr_symbol,
- fragP->fr_offset + 12, 1,
- reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_IMM_LOW16_PCREL
- : reloctype == BFD_RELOC_SH_GOTPC
- ? BFD_RELOC_SH_GOTPC_LOW16
- : reloctype == BFD_RELOC_32_PLT_PCREL
- ? BFD_RELOC_SH_PLT_LOW16
- : (abort (), BFD_RELOC_SH_IMM_LOW16_PCREL));
- }
- var_part_size = 12;
- }
- break;
-
- default:
- BAD_CASE (fragP->fr_subtype);
- }
-
- fragP->fr_fix += var_part_size;
- fragP->fr_var = 0;
-}
-
-/* Mask NUMBER (originating from a signed number) corresponding to the HOW
- reloc. */
-
-static unsigned long
-shmedia_mask_number (unsigned long number, bfd_reloc_code_real_type how)
-{
- switch (how)
- {
- case BFD_RELOC_SH_IMMU5:
- number &= (1 << 5) - 1;
- break;
-
- case BFD_RELOC_SH_IMMS6:
- case BFD_RELOC_SH_IMMU6:
- number &= (1 << 6) - 1;
- break;
-
- case BFD_RELOC_SH_IMMS6BY32:
- number = (number & ((1 << (6 + 5)) - 1)) >> 5;
- break;
-
- case BFD_RELOC_SH_IMMS10:
- number &= (1 << 10) - 1;
- break;
-
- case BFD_RELOC_SH_IMMS10BY2:
- number = (number & ((1 << (10 + 1)) - 1)) >> 1;
- break;
-
- case BFD_RELOC_SH_IMMS10BY4:
- number = (number & ((1 << (10 + 2)) - 1)) >> 2;
- break;
-
- case BFD_RELOC_SH_IMMS10BY8:
- number = (number & ((1 << (10 + 3)) - 1)) >> 3;
- break;
-
- case BFD_RELOC_SH_IMMS16:
- case BFD_RELOC_SH_IMMU16:
- number &= (1 << 16) - 1;
- break;
-
- default:
- BAD_CASE (how);
- }
-
- return number;
-}
-
-/* Emit errors for values out-of-range, using as_bad_where if FRAGP is
- non-NULL, as_bad otherwise. */
-
-static void
-shmedia_check_limits (offsetT *valp, bfd_reloc_code_real_type reloc,
- fixS *fixp)
-{
- offsetT val = *valp;
-
- const char *msg = NULL;
-
- switch (reloc)
- {
- case BFD_RELOC_SH_IMMU5:
- if (val < 0 || val > (1 << 5) - 1)
- msg = _("invalid operand, not a 5-bit unsigned value: %d");
- break;
-
- case BFD_RELOC_SH_IMMS6:
- if (val < -(1 << 5) || val > (1 << 5) - 1)
- msg = _("invalid operand, not a 6-bit signed value: %d");
- break;
-
- case BFD_RELOC_SH_IMMU6:
- if (val < 0 || val > (1 << 6) - 1)
- msg = _("invalid operand, not a 6-bit unsigned value: %d");
- break;
-
- case BFD_RELOC_SH_IMMS6BY32:
- if (val < -(1 << 10) || val > (1 << 10) - 1)
- msg = _("invalid operand, not a 11-bit signed value: %d");
- else if (val & 31)
- msg = _("invalid operand, not a multiple of 32: %d");
- break;
-
- case BFD_RELOC_SH_IMMS10:
- if (val < -(1 << 9) || val > (1 << 9) - 1)
- msg = _("invalid operand, not a 10-bit signed value: %d");
- break;
-
- case BFD_RELOC_SH_IMMS10BY2:
- if (val < -(1 << 10) || val > (1 << 10) - 1)
- msg = _("invalid operand, not a 11-bit signed value: %d");
- else if (val & 1)
- msg = _("invalid operand, not an even value: %d");
- break;
-
- case BFD_RELOC_SH_IMMS10BY4:
- if (val < -(1 << 11) || val > (1 << 11) - 1)
- msg = _("invalid operand, not a 12-bit signed value: %d");
- else if (val & 3)
- msg = _("invalid operand, not a multiple of 4: %d");
- break;
-
- case BFD_RELOC_SH_IMMS10BY8:
- if (val < -(1 << 12) || val > (1 << 12) - 1)
- msg = _("invalid operand, not a 13-bit signed value: %d");
- else if (val & 7)
- msg = _("invalid operand, not a multiple of 8: %d");
- break;
-
- case BFD_RELOC_SH_IMMS16:
- if (val < -(1 << 15) || val > (1 << 15) - 1)
- msg = _("invalid operand, not a 16-bit signed value: %d");
- break;
-
- case BFD_RELOC_SH_IMMU16:
- if (val < 0 || val > (1 << 16) - 1)
- msg = _("invalid operand, not a 16-bit unsigned value: %d");
- break;
-
- case BFD_RELOC_SH_PT_16:
- case SHMEDIA_BFD_RELOC_PT:
- if (val < -(1 << 15) * 4 || val > ((1 << 15) - 1) * 4 + 1)
- msg = _("operand out of range for PT, PTA and PTB");
- else if ((val % 4) != 0 && ((val - 1) % 4) != 0)
- msg = _("operand not a multiple of 4 for PT, PTA or PTB: %d");
- break;
-
- /* These have no limits; they take a 16-bit slice of a 32- or 64-bit
- number. */
- case BFD_RELOC_SH_IMM_HI16:
- case BFD_RELOC_SH_IMM_MEDHI16:
- case BFD_RELOC_SH_IMM_MEDLOW16:
- case BFD_RELOC_SH_IMM_LOW16:
- case BFD_RELOC_SH_IMM_HI16_PCREL:
- case BFD_RELOC_SH_IMM_MEDHI16_PCREL:
- case BFD_RELOC_SH_IMM_MEDLOW16_PCREL:
- case BFD_RELOC_SH_IMM_LOW16_PCREL:
-
- case BFD_RELOC_SH_SHMEDIA_CODE:
- break;
-
- /* This one has limits out of our reach. */
- case BFD_RELOC_64:
- break;
-
- default:
- BAD_CASE (reloc);
- }
-
- if (msg)
- {
- if (fixp)
- as_bad_where (fixp->fx_file, fixp->fx_line, msg, val);
- else
- as_bad (msg, val);
- }
-}
-
-/* Handle an immediate operand by checking limits and noting it for later
- evaluation if not computable yet, and return a bitfield suitable to
- "or" into the opcode (non-zero if the value was a constant number). */
-
-static unsigned long
-shmedia_immediate_op (char *where, shmedia_operand_info *op, int pcrel,
- bfd_reloc_code_real_type how)
-{
- unsigned long retval = 0;
-
- /* If this is not an absolute number, make it a fixup. A constant in
- place of a pc-relative operand also needs a fixup. */
- if (op->immediate.X_op != O_constant || pcrel)
- fix_new_exp (frag_now,
- where - frag_now->fr_literal,
- 4,
- &op->immediate,
- pcrel,
- how);
- else
- {
- /* Check that the number is within limits as represented by the
- reloc, and return the number. */
- shmedia_check_limits (&op->immediate.X_add_number, how, NULL);
-
- retval
- = shmedia_mask_number ((unsigned long) op->immediate.X_add_number,
- how);
- }
-
- return retval << 10;
-}
-
-/* Try and parse a register name case-insensitively, return the number of
- chars consumed. */
-
-static int
-shmedia_parse_reg (char *src, shmedia_arg_type *mode, int *reg,
- shmedia_arg_type argtype)
-{
- int l0 = TOLOWER (src[0]);
- int l1 = l0 ? TOLOWER (src[1]) : 0;
-
- if (l0 == 'r')
- {
- if (src[1] >= '1' && src[1] <= '5')
- {
- if (src[2] >= '0' && src[2] <= '9'
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_GREG_M;
- *reg = 10 * (src[1] - '0') + src[2] - '0';
- return 3;
- }
- }
-
- if (src[1] == '6')
- {
- if (src[2] >= '0' && src[2] <= '3'
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_GREG_M;
- *reg = 60 + src[2] - '0';
- return 3;
- }
- }
-
- if (src[1] >= '0' && src[1] <= '9'
- && ! IDENT_CHAR ((unsigned char) src[2]))
- {
- *mode = A_GREG_M;
- *reg = (src[1] - '0');
- return 2;
- }
- }
-
- if (l0 == 't' && l1 == 'r')
- {
- if (src[2] >= '0' && src[2] <= '7'
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_TREG_B;
- *reg = (src[2] - '0');
- return 3;
- }
- }
-
- if (l0 == 'f' && l1 == 'r')
- {
- if (src[2] >= '1' && src[2] <= '5')
- {
- if (src[3] >= '0' && src[3] <= '9'
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_FREG_G;
- *reg = 10 * (src[2] - '0') + src[3] - '0';
- return 4;
- }
- }
- if (src[2] == '6')
- {
- if (src[3] >= '0' && src[3] <= '3'
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_FREG_G;
- *reg = 60 + src[3] - '0';
- return 4;
- }
- }
- if (src[2] >= '0' && src[2] <= '9'
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_FREG_G;
- *reg = (src[2] - '0');
- return 3;
- }
- }
-
- if (l0 == 'f' && l1 == 'v')
- {
- if (src[2] >= '1' && src[2] <= '5')
- {
- if (src[3] >= '0' && src[3] <= '9'
- && ((10 * (src[2] - '0') + src[3] - '0') % 4) == 0
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_FVREG_G;
- *reg = 10 * (src[2] - '0') + src[3] - '0';
- return 4;
- }
- }
- if (src[2] == '6')
- {
- if (src[3] == '0'
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_FVREG_G;
- *reg = 60 + src[3] - '0';
- return 4;
- }
- }
- if (src[2] >= '0' && src[2] <= '9'
- && ((src[2] - '0') % 4) == 0
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_FVREG_G;
- *reg = (src[2] - '0');
- return 3;
- }
- }
-
- if (l0 == 'd' && l1 == 'r')
- {
- if (src[2] >= '1' && src[2] <= '5')
- {
- if (src[3] >= '0' && src[3] <= '9'
- && ((src[3] - '0') % 2) == 0
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_DREG_G;
- *reg = 10 * (src[2] - '0') + src[3] - '0';
- return 4;
- }
- }
-
- if (src[2] == '6')
- {
- if ((src[3] == '0' || src[3] == '2')
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_DREG_G;
- *reg = 60 + src[3] - '0';
- return 4;
- }
- }
-
- if (src[2] >= '0' && src[2] <= '9'
- && ((src[2] - '0') % 2) == 0
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_DREG_G;
- *reg = (src[2] - '0');
- return 3;
- }
- }
-
- if (l0 == 'f' && l1 == 'p')
- {
- if (src[2] >= '1' && src[2] <= '5')
- {
- if (src[3] >= '0' && src[3] <= '9'
- && ((src[3] - '0') % 2) == 0
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_FPREG_G;
- *reg = 10 * (src[2] - '0') + src[3] - '0';
- return 4;
- }
- }
-
- if (src[2] == '6')
- {
- if ((src[3] == '0' || src[3] == '2')
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_FPREG_G;
- *reg = 60 + src[3] - '0';
- return 4;
- }
- }
-
- if (src[2] >= '0' && src[2] <= '9'
- && ((src[2] - '0') % 2) == 0
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_FPREG_G;
- *reg = (src[2] - '0');
- return 3;
- }
- }
-
- if (l0 == 'm' && strncasecmp (src, "mtrx", 4) == 0)
- {
- if (src[4] == '0' && ! IDENT_CHAR ((unsigned char) src[5]))
- {
- *mode = A_FMREG_G;
- *reg = 0;
- return 5;
- }
-
- if (src[4] == '1' && src[5] == '6'
- && ! IDENT_CHAR ((unsigned char) src[6]))
- {
- *mode = A_FMREG_G;
- *reg = 16;
- return 6;
- }
-
- if (src[4] == '3' && src[5] == '2'
- && ! IDENT_CHAR ((unsigned char) src[6]))
- {
- *mode = A_FMREG_G;
- *reg = 32;
- return 6;
- }
-
- if (src[4] == '4' && src[5] == '8'
- && ! IDENT_CHAR ((unsigned char) src[6]))
- {
- *mode = A_FMREG_G;
- *reg = 48;
- return 6;
- }
- }
-
- if (l0 == 'c' && l1 == 'r')
- {
- if (src[2] >= '1' && src[2] <= '5')
- {
- if (src[3] >= '0' && src[3] <= '9'
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_CREG_K;
- *reg = 10 * (src[2] - '0') + src[3] - '0';
- return 4;
- }
- }
- if (src[2] == '6')
- {
- if (src[3] >= '0' && src[3] <= '3'
- && ! IDENT_CHAR ((unsigned char) src[4]))
- {
- *mode = A_CREG_K;
- *reg = 60 + src[3] - '0';
- return 4;
- }
- }
- if (src[2] >= '0' && src[2] <= '9'
- && ! IDENT_CHAR ((unsigned char) src[3]))
- {
- *mode = A_CREG_K;
- *reg = (src[2] - '0');
- return 3;
- }
- }
-
- /* We either have an error, a symbol or a control register by predefined
- name. To keep things simple but still fast for normal cases, we do
- linear search in the (not to big) table of predefined control
- registers. We only do this when we *expect* a control register.
- Those instructions should be rare enough that linear searching is ok.
- Or just read them into a hash-table in shmedia_md_begin. Since they
- cannot be specified in the same place of symbol operands, don't add
- them there to the *main* symbol table as being in "reg_section". */
- if (argtype == A_CREG_J || argtype == A_CREG_K)
- {
- const shmedia_creg_info *cregp;
- int len = 0;
-
- for (cregp = shmedia_creg_table; cregp->name != NULL; cregp++)
- {
- len = strlen (cregp->name);
- if (strncasecmp (cregp->name, src, len) == 0
- && ! IDENT_CHAR (src[len]))
- break;
- }
-
- if (cregp->name != NULL)
- {
- *mode = A_CREG_K;
- *reg = cregp->cregno;
- return len;
- }
- }
-
- return 0;
-}
-
-/* Called from md_estimate_size_before_relax in tc-sh.c */
-
-static int
-shmedia_md_estimate_size_before_relax (fragS *fragP,
- segT segment_type ATTRIBUTE_UNUSED)
-{
- int old_fr_fix;
- expressionS *exp;
-
- /* For ELF, we can't relax externally visible symbols; see tc-i386.c. */
- bfd_boolean sym_relaxable
- = (fragP->fr_symbol
- && S_GET_SEGMENT (fragP->fr_symbol) == segment_type
- && ! S_IS_EXTERNAL (fragP->fr_symbol)
- && ! S_IS_WEAK (fragP->fr_symbol));
-
- old_fr_fix = fragP->fr_fix;
-
- switch (fragP->fr_subtype)
- {
- case C (SH64PCREL16_32, UNDEF_SH64PCREL):
- case C (SH64PCREL16PT_32, UNDEF_SH64PCREL):
- /* Used to be to somewhere which was unknown. */
- if (sym_relaxable)
- {
- int what = GET_WHAT (fragP->fr_subtype);
-
- /* In this segment, so head for shortest. */
- fragP->fr_subtype = C (what, SH64PCREL16);
- }
- else
- {
- int what = GET_WHAT (fragP->fr_subtype);
- /* We know the abs value, but we don't know where we will be
- linked, so we must make it the longest. Presumably we could
- switch to a non-pcrel representation, but having absolute
- values in PT operands should be rare enough not to be worth
- adding that code. */
- fragP->fr_subtype = C (what, SH64PCREL32);
- }
- fragP->fr_var = md_relax_table[fragP->fr_subtype].rlx_length;
- break;
-
- case C (SH64PCREL16_64, UNDEF_SH64PCREL):
- case C (SH64PCREL16PT_64, UNDEF_SH64PCREL):
- /* Used to be to somewhere which was unknown. */
- if (sym_relaxable)
- {
- int what = GET_WHAT (fragP->fr_subtype);
-
- /* In this segment, so head for shortest. */
- fragP->fr_subtype = C (what, SH64PCREL16);
- }
- else
- {
- int what = GET_WHAT (fragP->fr_subtype);
- /* We know the abs value, but we don't know where we will be
- linked, so we must make it the longest. Presumably we could
- switch to a non-pcrel representation, but having absolute
- values in PT operands should be rare enough not to be worth
- adding that code. */
- fragP->fr_subtype = C (what, SH64PCREL64);
- }
- fragP->fr_var = md_relax_table[fragP->fr_subtype].rlx_length;
- break;
-
- case C (MOVI_IMM_64, UNDEF_MOVI):
- case C (MOVI_IMM_32, UNDEF_MOVI):
- exp = NULL;
-
- /* Look inside the "symbol". If we find a PC-relative expression,
- change this to a PC-relative, relaxable expression. */
- if (fragP->fr_symbol != NULL
- && (exp = symbol_get_value_expression (fragP->fr_symbol)) != NULL
- && exp->X_op == O_subtract
- && exp->X_op_symbol != NULL
- && S_GET_SEGMENT (exp->X_op_symbol) == segment_type)
- {
- int what = GET_WHAT (fragP->fr_subtype);
- int what_high = what == MOVI_IMM_32 ? MOVI_32 : MOVI_64;
- expressionS *opexp
- = symbol_get_value_expression (exp->X_op_symbol);
- expressionS *addexp
- = symbol_get_value_expression (exp->X_add_symbol);
-
- /* Change the MOVI expression to the "X" in "X - Y" and subtract
- Y:s offset to this location from X. Note that we can only
- allow an Y which is offset from this frag. */
- if (opexp != NULL
- && addexp != NULL
- && opexp->X_op == O_constant
- && fragP == symbol_get_frag (exp->X_op_symbol))
- {
- /* At this point, before relaxing, the add-number of opexp
- is the offset from the fr_fix part. */
- fragP->fr_offset
- = (exp->X_add_number
- - (opexp->X_add_number - (fragP->fr_fix - 4)));
- fragP->fr_symbol = exp->X_add_symbol;
-
- what = what == MOVI_IMM_32
- ? MOVI_IMM_32_PCREL : MOVI_IMM_64_PCREL;
-
- /* Check the "X" symbol to estimate the size of this
- PC-relative expression. */
- if (S_GET_SEGMENT (exp->X_add_symbol) == segment_type
- && ! S_IS_EXTERNAL (exp->X_add_symbol)
- && ! S_IS_WEAK (exp->X_add_symbol))
- fragP->fr_subtype = C (what, MOVI_16);
- else
- fragP->fr_subtype = C (what, what_high);
-
- /* This is now a PC-relative expression, fit to be relaxed. */
- }
- else
- fragP->fr_subtype = C (what, what_high);
- }
- else if (fragP->fr_symbol == NULL
- || (S_GET_SEGMENT (fragP->fr_symbol) == absolute_section
- && exp->X_op == O_constant))
- {
- unsigned long insn
- = (target_big_endian
- ? bfd_getb32 (fragP->fr_opcode)
- : bfd_getl32 (fragP->fr_opcode));
- offsetT one = (offsetT) 1;
- offsetT value = fragP->fr_offset
- + (fragP->fr_symbol == NULL ? 0 : S_GET_VALUE (fragP->fr_symbol));
-
- if (value >= (-((offsetT) 1 << 15)) && value < ((offsetT) 1 << 15))
- {
- /* Fits in 16-bit signed number. */
- int what = GET_WHAT (fragP->fr_subtype);
- fragP->fr_subtype = C (what, MOVI_16);
-
- /* Just "or" in the value. */
- md_number_to_chars (fragP->fr_opcode,
- insn | ((value & ((1 << 16) - 1)) << 10),
- 4);
- }
- else if (value >= -(one << 31)
- && (value < (one << 31)
- || (sh64_abi == sh64_abi_32 && value < (one << 32))))
- {
- /* The value fits in a 32-bit signed number. */
- int reg = (insn >> 4) & 0x3f;
-
- /* Just "or" in the high bits of the value, making the first
- MOVI. */
- md_number_to_chars (fragP->fr_opcode,
- insn
- | (((value >> 16) & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Add a SHORI with the low bits. Note that this insn lives
- in the variable fragment part. */
- md_number_to_chars (fragP->fr_literal + old_fr_fix,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | ((value & ((1 << 16) - 1)) << 10),
- 4);
-
- /* We took a piece of the variable part. */
- fragP->fr_fix += 4;
- }
- else if (GET_WHAT (fragP->fr_subtype) == MOVI_IMM_32)
- {
- /* Value out of range. */
- as_bad_where (fragP->fr_file, fragP->fr_line,
- _("MOVI operand is not a 32-bit signed value: 0x%8x%08x"),
- ((unsigned int) (value >> 32)
- & (unsigned int) 0xffffffff),
- (unsigned int) value & (unsigned int) 0xffffffff);
-
- /* Must advance size, or we will get internal inconsistency
- and fall into an assert. */
- fragP->fr_fix += 4;
- }
- /* Now we know we are allowed to expand to 48- and 64-bit values. */
- else if (value >= -(one << 47) && value < (one << 47))
- {
- /* The value fits in a 48-bit signed number. */
- int reg = (insn >> 4) & 0x3f;
-
- /* Just "or" in the high bits of the value, making the first
- MOVI. */
- md_number_to_chars (fragP->fr_opcode,
- insn
- | (((value >> 32) & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Add a SHORI with the middle bits. Note that this insn lives
- in the variable fragment part. */
- md_number_to_chars (fragP->fr_literal + old_fr_fix,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | (((value >> 16) & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Add a SHORI with the low bits. */
- md_number_to_chars (fragP->fr_literal + old_fr_fix + 4,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | ((value & ((1 << 16) - 1)) << 10),
- 4);
-
- /* We took a piece of the variable part. */
- fragP->fr_fix += 8;
- }
- else
- {
- /* A 64-bit number. */
- int reg = (insn >> 4) & 0x3f;
-
- /* Just "or" in the high bits of the value, making the first
- MOVI. */
- md_number_to_chars (fragP->fr_opcode,
- insn
- | (((value >> 48) & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Add a SHORI with the midhigh bits. Note that this insn lives
- in the variable fragment part. */
- md_number_to_chars (fragP->fr_literal + old_fr_fix,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | (((value >> 32) & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Add a SHORI with the midlow bits. */
- md_number_to_chars (fragP->fr_literal + old_fr_fix + 4,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | (((value >> 16) & ((1 << 16) - 1)) << 10),
- 4);
-
- /* Add a SHORI with the low bits. */
- md_number_to_chars (fragP->fr_literal + old_fr_fix + 8,
- SHMEDIA_SHORI_OPC
- | (reg << 4)
- | ((value & ((1 << 16) - 1)) << 10), 4);
- /* We took all of the variable part. */
- fragP->fr_fix += 12;
- }
-
- /* MOVI expansions that get here have not been converted to
- PC-relative frags, but instead expanded by
- md_number_to_chars or by calling shmedia_md_convert_frag
- with final == FALSE. We must not have them around as
- frags anymore; symbols would be prematurely evaluated
- when relaxing. We will not need to have md_convert_frag
- called again with them; any further handling is through
- the already emitted fixups. */
- frag_wane (fragP);
- break;
- }
- fragP->fr_var = md_relax_table[fragP->fr_subtype].rlx_length;
- break;
-
- /* For relaxation states that remain unchanged, report the
- estimated length. */
- case C (SH64PCREL16_32, SH64PCREL16):
- case C (SH64PCREL16PT_32, SH64PCREL16):
- case C (SH64PCREL16_32, SH64PCREL32):
- case C (SH64PCREL16PT_32, SH64PCREL32):
- case C (SH64PCREL16_32, SH64PCRELPLT):
- case C (SH64PCREL16PT_32, SH64PCRELPLT):
- case C (SH64PCREL16_64, SH64PCREL16):
- case C (SH64PCREL16PT_64, SH64PCREL16):
- case C (SH64PCREL16_64, SH64PCREL32):
- case C (SH64PCREL16PT_64, SH64PCREL32):
- case C (SH64PCREL16_64, SH64PCREL48):
- case C (SH64PCREL16PT_64, SH64PCREL48):
- case C (SH64PCREL16_64, SH64PCREL64):
- case C (SH64PCREL16PT_64, SH64PCREL64):
- case C (SH64PCREL16_64, SH64PCRELPLT):
- case C (SH64PCREL16PT_64, SH64PCRELPLT):
- case C (MOVI_IMM_32, MOVI_16):
- case C (MOVI_IMM_32, MOVI_32):
- case C (MOVI_IMM_32, MOVI_GOTOFF):
- case C (MOVI_IMM_32_PCREL, MOVI_16):
- case C (MOVI_IMM_32_PCREL, MOVI_32):
- case C (MOVI_IMM_32_PCREL, MOVI_PLT):
- case C (MOVI_IMM_32_PCREL, MOVI_GOTPC):
- case C (MOVI_IMM_64, MOVI_16):
- case C (MOVI_IMM_64, MOVI_32):
- case C (MOVI_IMM_64, MOVI_48):
- case C (MOVI_IMM_64, MOVI_64):
- case C (MOVI_IMM_64, MOVI_GOTOFF):
- case C (MOVI_IMM_64_PCREL, MOVI_16):
- case C (MOVI_IMM_64_PCREL, MOVI_32):
- case C (MOVI_IMM_64_PCREL, MOVI_48):
- case C (MOVI_IMM_64_PCREL, MOVI_64):
- case C (MOVI_IMM_64_PCREL, MOVI_PLT):
- case C (MOVI_IMM_64_PCREL, MOVI_GOTPC):
- fragP->fr_var = md_relax_table[fragP->fr_subtype].rlx_length;
- break;
-
- default:
- abort ();
- }
-
- return fragP->fr_var + (fragP->fr_fix - old_fr_fix);
-}
-
-/* Parse an expression, SH64-style. Copied from tc-sh.c, but with
- datatypes adjusted. */
-
-static char *
-shmedia_parse_exp (char *s, shmedia_operand_info *op)
-{
- char *save;
- char *new_pointer;
-
- save = input_line_pointer;
- input_line_pointer = s;
- expression (&op->immediate);
- if (op->immediate.X_op == O_absent)
- as_bad (_("missing operand"));
- new_pointer = input_line_pointer;
- input_line_pointer = save;
- return new_pointer;
-}
-
-/* Parse an operand. Store pointer to next character in *PTR. */
-
-static void
-shmedia_get_operand (char **ptr, shmedia_operand_info *op,
- shmedia_arg_type argtype)
-{
- char *src = *ptr;
- shmedia_arg_type mode = (shmedia_arg_type) -1;
- unsigned int len;
-
- len = shmedia_parse_reg (src, &mode, &(op->reg), argtype);
- if (len)
- {
- *ptr = src + len;
- op->type = mode;
- }
- else
- {
- /* Not a reg, so it must be a displacement. */
- *ptr = shmedia_parse_exp (src, op);
- op->type = A_IMMM;
-
- /* This is just an initialization; shmedia_get_operands will change
- as needed. */
- op->reloctype = BFD_RELOC_NONE;
- }
-}
-
-/* Parse the operands for this insn; return NULL if invalid, else return
- how much text was consumed. */
-
-static char *
-shmedia_get_operands (shmedia_opcode_info *info, char *args,
- shmedia_operands_info *operands)
-{
- char *ptr = args;
- int i;
-
- if (*ptr == ' ')
- ptr++;
-
- for (i = 0; info->arg[i] != 0; i++)
- {
- memset (operands->operands + i, 0, sizeof (operands->operands[0]));
-
- /* No operand to get for these fields. */
- if (info->arg[i] == A_REUSE_PREV)
- continue;
-
- shmedia_get_operand (&ptr, &operands->operands[i], info->arg[i]);
-
- /* Check operands type match. */
- switch (info->arg[i])
- {
- case A_GREG_M:
- case A_GREG_N:
- case A_GREG_D:
- if (operands->operands[i].type != A_GREG_M)
- return NULL;
- break;
-
- case A_FREG_G:
- case A_FREG_H:
- case A_FREG_F:
- if (operands->operands[i].type != A_FREG_G)
- return NULL;
- break;
-
- case A_FVREG_G:
- case A_FVREG_H:
- case A_FVREG_F:
- if (operands->operands[i].type != A_FVREG_G)
- return NULL;
- break;
-
- case A_FMREG_G:
- case A_FMREG_H:
- case A_FMREG_F:
- if (operands->operands[i].type != A_FMREG_G)
- return NULL;
- break;
-
- case A_FPREG_G:
- case A_FPREG_H:
- case A_FPREG_F:
- if (operands->operands[i].type != A_FPREG_G)
- return NULL;
- break;
-
- case A_DREG_G:
- case A_DREG_H:
- case A_DREG_F:
- if (operands->operands[i].type != A_DREG_G)
- return NULL;
- break;
-
- case A_TREG_A:
- case A_TREG_B:
- if (operands->operands[i].type != A_TREG_B)
- return NULL;
- break;
-
- case A_CREG_J:
- case A_CREG_K:
- if (operands->operands[i].type != A_CREG_K)
- return NULL;
- break;
-
- case A_IMMS16:
- case A_IMMU16:
- /* Check for an expression that looks like S & 65535 or
- (S >> N) & 65535, where N = 0, 16, 32, 48.
-
- Get the S and put at operands->operands[i].immediate, and
- adjust operands->operands[i].reloctype. */
- {
- expressionS *imm_expr = &operands->operands[i].immediate;
- expressionS *right_expr;
-
- if (operands->operands[i].type == A_IMMM
- && imm_expr->X_op == O_bit_and
- && imm_expr->X_op_symbol != NULL
- && ((right_expr
- = symbol_get_value_expression (imm_expr->X_op_symbol))
- ->X_op == O_constant)
- && right_expr->X_add_number == 0xffff)
- {
- symbolS *inner = imm_expr->X_add_symbol;
- bfd_reloc_code_real_type reloctype = BFD_RELOC_SH_IMM_LOW16;
- expressionS *inner_expr
- = symbol_get_value_expression (inner);
-
- if (inner_expr->X_op == O_right_shift)
- {
- expressionS *inner_right;
-
- if (inner_expr->X_op_symbol != NULL
- && ((inner_right
- = symbol_get_value_expression (inner_expr
- ->X_op_symbol))
- ->X_op == O_constant))
- {
- offsetT addnum
- = inner_right->X_add_number;
-
- if (addnum == 0 || addnum == 16 || addnum == 32
- || addnum == 48)
- {
- reloctype
- = (addnum == 0
- ? BFD_RELOC_SH_IMM_LOW16
- : (addnum == 16
- ? BFD_RELOC_SH_IMM_MEDLOW16
- : (addnum == 32
- ? BFD_RELOC_SH_IMM_MEDHI16
- : BFD_RELOC_SH_IMM_HI16)));
-
- inner = inner_expr->X_add_symbol;
- inner_expr = symbol_get_value_expression (inner);
- }
- }
- }
-
- /* I'm not sure I understand the logic, but evidently the
- inner expression of a lone symbol is O_constant, with
- the actual symbol in expr_section. For a constant, the
- section would be absolute_section. For sym+offset,
- it's O_symbol as always. See expr.c:make_expr_symbol,
- first statements. */
-
- if (inner_expr->X_op == O_constant
- && S_GET_SEGMENT (inner) != absolute_section)
- {
- operands->operands[i].immediate.X_op = O_symbol;
- operands->operands[i].immediate.X_add_symbol = inner;
- operands->operands[i].immediate.X_add_number = 0;
- }
- else
- operands->operands[i].immediate
- = *symbol_get_value_expression (inner);
-
- operands->operands[i].reloctype = reloctype;
- }
- }
- /* Fall through. */
- case A_IMMS6:
- case A_IMMS6BY32:
- case A_IMMS10:
- case A_IMMS10BY1:
- case A_IMMS10BY2:
- case A_IMMS10BY4:
- case A_IMMS10BY8:
- case A_PCIMMS16BY4:
- case A_PCIMMS16BY4_PT:
- case A_IMMU5:
- case A_IMMU6:
- if (operands->operands[i].type != A_IMMM)
- return NULL;
-
- if (sh_check_fixup (&operands->operands[i].immediate,
- &operands->operands[i].reloctype))
- {
- as_bad (_("invalid PIC reference"));
- return NULL;
- }
-
- break;
-
- default:
- BAD_CASE (info->arg[i]);
- }
-
- if (*ptr == ',' && info->arg[i + 1])
- ptr++;
- }
- return ptr;
-}
-
-
-/* Find an opcode at the start of *STR_P in the hash table, and set
- *STR_P to the first character after the last one read. */
-
-static shmedia_opcode_info *
-shmedia_find_cooked_opcode (char **str_p)
-{
- char *str = *str_p;
- char *op_start;
- char *op_end;
- char name[20];
- unsigned int nlen = 0;
-
- /* Drop leading whitespace. */
- while (*str == ' ')
- str++;
-
- /* Find the op code end. */
- for (op_start = op_end = str;
- *op_end
- && nlen < sizeof (name) - 1
- && ! is_end_of_line[(unsigned char) *op_end]
- && ! ISSPACE ((unsigned char) *op_end);
- op_end++)
- {
- unsigned char c = op_start[nlen];
-
- /* The machine independent code will convert CMP/EQ into cmp/EQ
- because it thinks the '/' is the end of the symbol. Moreover,
- all but the first sub-insn is a parallel processing insn won't
- be capitalized. Instead of hacking up the machine independent
- code, we just deal with it here. */
- c = TOLOWER (c);
- name[nlen] = c;
- nlen++;
- }
-
- name[nlen] = 0;
- *str_p = op_end;
-
- if (nlen == 0)
- as_bad (_("can't find opcode"));
-
- return
- (shmedia_opcode_info *) hash_find (shmedia_opcode_hash_control, name);
-}
-
-/* Build up an instruction, including allocating the frag. */
-
-static int
-shmedia_build_Mytes (shmedia_opcode_info *opcode,
- shmedia_operands_info *operands)
-{
- unsigned long insn = opcode->opcode_base;
- int i, j;
- char *insn_loc = frag_more (4);
-
- /* The parameter to dwarf2_emit_insn is actually the offset to the start
- of the insn from the fix piece of instruction that was emitted.
- Since we want .debug_line addresses to record (address | 1) for
- SHmedia insns, we get the wanted effect by taking one off the size,
- knowing it's a multiple of 4. We count from the first fix piece of
- the insn. There must be no frags changes (frag_more or frag_var)
- calls in-between the frag_more call we account for, and this
- dwarf2_emit_insn call. */
- dwarf2_emit_insn (3);
-
- /* This is stored into any frag_var operand. */
- sh64_last_insn_frag = frag_now;
-
- /* Loop over opcode info, emit an instruction. */
- for (i = 0, j = 0; opcode->arg[i]; i++)
- {
- shmedia_arg_type argtype = opcode->arg[i];
- shmedia_operand_info *opjp = &operands->operands[j];
- switch (argtype)
- {
- case A_TREG_A:
- case A_TREG_B:
- case A_GREG_M:
- case A_GREG_N:
- case A_GREG_D:
- case A_FREG_G:
- case A_FREG_H:
- case A_FREG_F:
- case A_FVREG_G:
- case A_FVREG_H:
- case A_FVREG_F:
- case A_FMREG_G:
- case A_FMREG_H:
- case A_FMREG_F:
- case A_FPREG_G:
- case A_FPREG_H:
- case A_FPREG_F:
- case A_DREG_G:
- case A_DREG_H:
- case A_DREG_F:
- case A_CREG_J:
- case A_CREG_K:
- /* Six-bit register fields. They just get filled with the
- parsed register number. */
- insn |= (opjp->reg << opcode->nibbles[i]);
- j++;
- break;
-
- case A_REUSE_PREV:
- /* Copy the register for the previous operand to this position. */
- insn |= (operands->operands[j - 1].reg << opcode->nibbles[i]);
- j++;
- break;
-
- case A_IMMS6:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMS6);
- j++;
- break;
-
- case A_IMMS6BY32:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMS6BY32);
- j++;
- break;
-
- case A_IMMS10BY1:
- case A_IMMS10:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMS10);
- j++;
- break;
-
- case A_IMMS10BY2:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMS10BY2);
- j++;
- break;
-
- case A_IMMS10BY4:
- if (opjp->reloctype == BFD_RELOC_NONE)
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMS10BY4);
- else if (opjp->reloctype == BFD_RELOC_SH_GOTPLT32)
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_GOTPLT10BY4);
- else if (opjp->reloctype == BFD_RELOC_32_GOT_PCREL)
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_GOT10BY4);
- else
- as_bad (_("invalid PIC reference"));
- j++;
- break;
-
- case A_IMMS10BY8:
- if (opjp->reloctype == BFD_RELOC_NONE)
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMS10BY8);
- else if (opjp->reloctype == BFD_RELOC_SH_GOTPLT32)
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_GOTPLT10BY8);
- else if (opjp->reloctype == BFD_RELOC_32_GOT_PCREL)
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_GOT10BY8);
- else
- as_bad (_("invalid PIC reference"));
- j++;
- break;
-
- case A_IMMS16:
- /* Sneak a peek if this is the MOVI insn. If so, check if we
- should expand it. */
- if (opjp->reloctype == BFD_RELOC_32_GOT_PCREL)
- opjp->reloctype = BFD_RELOC_SH_GOT_LOW16;
- else if (opjp->reloctype == BFD_RELOC_SH_GOTPLT32)
- opjp->reloctype = BFD_RELOC_SH_GOTPLT_LOW16;
-
- if ((opjp->reloctype == BFD_RELOC_NONE
- || opjp->reloctype == BFD_RELOC_32_GOTOFF
- || opjp->reloctype == BFD_RELOC_32_PLT_PCREL
- || opjp->reloctype == BFD_RELOC_SH_GOTPC)
- && opcode->opcode_base == SHMEDIA_MOVI_OPC
- && (opjp->immediate.X_op != O_constant
- || opjp->immediate.X_add_number < -32768
- || opjp->immediate.X_add_number > 32767)
- && (sh64_expand
- || opjp->reloctype == BFD_RELOC_32_GOTOFF
- || opjp->reloctype == BFD_RELOC_32_PLT_PCREL
- || opjp->reloctype == BFD_RELOC_SH_GOTPC))
- {
- int what = sh64_abi == sh64_abi_64 ? MOVI_IMM_64 : MOVI_IMM_32;
- offsetT max = sh64_abi == sh64_abi_64 ? MOVI_64 : MOVI_32;
- offsetT min = MOVI_16;
- offsetT init = UNDEF_MOVI;
- valueT addvalue
- = opjp->immediate.X_op_symbol != NULL
- ? 0 : opjp->immediate.X_add_number;
- symbolS *sym
- = opjp->immediate.X_op_symbol != NULL
- ? make_expr_symbol (&opjp->immediate)
- : opjp->immediate.X_add_symbol;
-
- if (opjp->reloctype == BFD_RELOC_32_GOTOFF)
- init = max = min = MOVI_GOTOFF;
- else if (opjp->reloctype == BFD_RELOC_32_PLT_PCREL)
- {
- init = max = min = MOVI_PLT;
- what = (sh64_abi == sh64_abi_64
- ? MOVI_IMM_64_PCREL
- : MOVI_IMM_32_PCREL);
- }
- else if (opjp->reloctype == BFD_RELOC_SH_GOTPC)
- {
- init = max = min = MOVI_GOTPC;
- what = (sh64_abi == sh64_abi_64
- ? MOVI_IMM_64_PCREL
- : MOVI_IMM_32_PCREL);
- }
-
- frag_var (rs_machine_dependent,
- md_relax_table[C (what, max)].rlx_length,
- md_relax_table[C (what, min)].rlx_length,
- C (what, init), sym, addvalue, insn_loc);
- }
- else
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- (opjp->reloctype
- == BFD_RELOC_NONE)
- ? BFD_RELOC_SH_IMMS16
- : opjp->reloctype);
- j++;
- break;
-
- case A_PCIMMS16BY4:
- {
- int what
- = ((sh64_abi == sh64_abi_64 && ! sh64_pt32)
- ? SH64PCREL16_64 : SH64PCREL16_32);
- offsetT max
- = ((sh64_abi == sh64_abi_64 && ! sh64_pt32)
- ? SH64PCREL64 : SH64PCREL32);
- offsetT min = SH64PCREL16;
- offsetT init = UNDEF_SH64PCREL;
-
- /* Don't allow complex expressions here. */
- if (opjp->immediate.X_op_symbol != NULL)
- {
- as_bad (_("invalid operand: expression in PT target"));
- return 0;
- }
-
- if (opjp->reloctype == BFD_RELOC_32_PLT_PCREL)
- init = max = min = SH64PCRELPLT;
-
- /* If we're not expanding, then just emit a fixup. */
- if (sh64_expand || opjp->reloctype != BFD_RELOC_NONE)
- frag_var (rs_machine_dependent,
- md_relax_table[C (what, max)].rlx_length,
- md_relax_table[C (what, min)].rlx_length,
- C (what, init),
- opjp->immediate.X_add_symbol,
- opjp->immediate.X_add_number,
- insn_loc);
- else
- insn |= shmedia_immediate_op (insn_loc, opjp, 1,
- opjp->reloctype == BFD_RELOC_NONE
- ? BFD_RELOC_SH_PT_16
- : opjp->reloctype);
-
- j++;
- break;
- }
-
- case A_PCIMMS16BY4_PT:
- {
- int what
- = ((sh64_abi == sh64_abi_64 && ! sh64_pt32)
- ? SH64PCREL16PT_64 : SH64PCREL16PT_32);
- offsetT max
- = ((sh64_abi == sh64_abi_64 && ! sh64_pt32)
- ? SH64PCREL64 : SH64PCREL32);
- offsetT min = SH64PCREL16;
- offsetT init = UNDEF_SH64PCREL;
-
- /* Don't allow complex expressions here. */
- if (opjp->immediate.X_op_symbol != NULL)
- {
- as_bad (_("invalid operand: expression in PT target"));
- return 0;
- }
-
- if (opjp->reloctype == BFD_RELOC_32_PLT_PCREL)
- init = max = min = SH64PCRELPLT;
-
- /* If we're not expanding, then just emit a fixup. */
- if (sh64_expand || opjp->reloctype != BFD_RELOC_NONE)
- frag_var (rs_machine_dependent,
- md_relax_table[C (what, max)].rlx_length,
- md_relax_table[C (what, min)].rlx_length,
- C (what, init),
- opjp->immediate.X_add_symbol,
- opjp->immediate.X_add_number,
- insn_loc);
- else
- /* This reloc-type is just temporary, so we can distinguish
- PTA from PT. It is changed in shmedia_md_apply_fix to
- BFD_RELOC_SH_PT_16. */
- insn |= shmedia_immediate_op (insn_loc, opjp, 1,
- opjp->reloctype == BFD_RELOC_NONE
- ? SHMEDIA_BFD_RELOC_PT
- : opjp->reloctype);
-
- j++;
- break;
- }
-
- case A_IMMU5:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMU5);
- j++;
- break;
-
- case A_IMMU6:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- BFD_RELOC_SH_IMMU6);
- j++;
- break;
-
- case A_IMMU16:
- insn |= shmedia_immediate_op (insn_loc, opjp, 0,
- (opjp->reloctype
- == BFD_RELOC_NONE)
- ? BFD_RELOC_SH_IMMU16
- : opjp->reloctype);
- j++;
- break;
-
- default:
- BAD_CASE (argtype);
- }
- }
-
- md_number_to_chars (insn_loc, insn, 4);
- return 4;
-}
-
-/* Assemble a SHmedia instruction. */
-
-static void
-shmedia_md_assemble (char *str)
-{
- char *op_end;
- shmedia_opcode_info *opcode;
- shmedia_operands_info operands;
- int size;
-
- opcode = shmedia_find_cooked_opcode (&str);
- op_end = str;
-
- if (opcode == NULL)
- {
- as_bad (_("unknown opcode"));
- return;
- }
-
- /* Start a SHmedia code region, if there has been pseudoinsns or similar
- seen since the last one. */
- if (!seen_insn)
- {
- sh64_update_contents_mark (TRUE);
- sh64_set_contents_type (CRT_SH5_ISA32);
- seen_insn = TRUE;
- }
-
- op_end = shmedia_get_operands (opcode, op_end, &operands);
-
- if (op_end == NULL)
- {
- as_bad (_("invalid operands to %s"), opcode->name);
- return;
- }
-
- if (*op_end)
- {
- as_bad (_("excess operands to %s"), opcode->name);
- return;
- }
-
- size = shmedia_build_Mytes (opcode, &operands);
- if (size == 0)
- return;
-}
-
-/* Hook called from md_begin in tc-sh.c. */
-
-void
-shmedia_md_begin (void)
-{
- const shmedia_opcode_info *shmedia_opcode;
- shmedia_opcode_hash_control = hash_new ();
-
- /* Create opcode table for SHmedia mnemonics. */
- for (shmedia_opcode = shmedia_table;
- shmedia_opcode->name;
- shmedia_opcode++)
- hash_insert (shmedia_opcode_hash_control, shmedia_opcode->name,
- (char *) shmedia_opcode);
-}
-
-/* Switch instruction set. Only valid if one of the --isa or --abi
- options was specified. */
-
-static void
-s_sh64_mode (int ignore ATTRIBUTE_UNUSED)
-{
- char *name = input_line_pointer, ch;
-
- /* Make sure data up to this location is handled according to the
- previous ISA. */
- sh64_update_contents_mark (TRUE);
-
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
- input_line_pointer++;
- ch = *input_line_pointer;
- *input_line_pointer = '\0';
-
- /* If the mode was not set before, explicitly or implicitly, then we're
- not emitting SH64 code, so this pseudo is invalid. */
- if (sh64_isa_mode == sh64_isa_unspecified)
- as_bad (_("The `.mode %s' directive is not valid with this architecture"),
- name);
-
- if (strcasecmp (name, "shcompact") == 0)
- sh64_isa_mode = sh64_isa_shcompact;
- else if (strcasecmp (name, "shmedia") == 0)
- sh64_isa_mode = sh64_isa_shmedia;
- else
- as_bad (_("Invalid argument to .mode: %s"), name);
-
- /* Make a new frag, marking it with the supposedly-changed ISA. */
- frag_wane (frag_now);
- frag_new (0);
-
- /* Contents type up to this new point is the same as before; don't add a
- data region just because the new frag we created. */
- sh64_update_contents_mark (FALSE);
-
- *input_line_pointer = ch;
- demand_empty_rest_of_line ();
-}
-
-/* Check that the right ABI is used. Only valid if one of the --isa or
- --abi options was specified. */
-
-static void
-s_sh64_abi (int ignore ATTRIBUTE_UNUSED)
-{
- char *name = input_line_pointer, ch;
-
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
- input_line_pointer++;
- ch = *input_line_pointer;
- *input_line_pointer = '\0';
-
- /* If the mode was not set before, explicitly or implicitly, then we're
- not emitting SH64 code, so this pseudo is invalid. */
- if (sh64_abi == sh64_abi_unspecified)
- as_bad (_("The `.abi %s' directive is not valid with this architecture"),
- name);
-
- if (strcmp (name, "64") == 0)
- {
- if (sh64_abi != sh64_abi_64)
- as_bad (_("`.abi 64' but command-line options do not specify 64-bit ABI"));
- }
- else if (strcmp (name, "32") == 0)
- {
- if (sh64_abi != sh64_abi_32)
- as_bad (_("`.abi 32' but command-line options do not specify 32-bit ABI"));
- }
- else
- as_bad (_("Invalid argument to .abi: %s"), name);
-
- *input_line_pointer = ch;
- demand_empty_rest_of_line ();
-}
-
-/* This function is the first target-specific function called after
- parsing command-line options. Therefore we set default values from
- command-line options here and do some sanity checking we couldn't do
- when options were being parsed. */
-
-const char *
-sh64_target_format (void)
-{
-#ifdef TE_NetBSD
- /* For NetBSD, if the ISA is unspecified, always use SHmedia. */
- if (preset_target_arch == 0 && sh64_isa_mode == sh64_isa_unspecified)
- sh64_isa_mode = sh64_isa_shmedia;
-
- /* If the ABI is unspecified, select a default: based on how
- we were configured: sh64 == sh64_abi_64, else sh64_abi_32. */
- if (sh64_abi == sh64_abi_unspecified)
- {
- if (preset_target_arch != 0 || sh64_isa_mode == sh64_isa_shcompact)
- sh64_abi = sh64_abi_32;
- else if (strncmp (TARGET_CPU, "sh64", 4) == 0)
- sh64_abi = sh64_abi_64;
- else
- sh64_abi = sh64_abi_32;
- }
-#endif
-
-#ifdef TE_LINUX
- if (preset_target_arch == 0 && sh64_isa_mode == sh64_isa_unspecified)
- sh64_isa_mode = sh64_isa_shmedia;
-
- if (sh64_abi == sh64_abi_unspecified)
- sh64_abi = sh64_abi_32;
-#endif
-
- if (sh64_abi == sh64_abi_64 && sh64_isa_mode == sh64_isa_unspecified)
- sh64_isa_mode = sh64_isa_shmedia;
-
- if (sh64_abi == sh64_abi_32 && sh64_isa_mode == sh64_isa_unspecified)
- sh64_isa_mode = sh64_isa_shcompact;
-
- if (sh64_isa_mode == sh64_isa_shcompact
- && sh64_abi == sh64_abi_unspecified)
- sh64_abi = sh64_abi_32;
-
- if (sh64_isa_mode == sh64_isa_shmedia
- && sh64_abi == sh64_abi_unspecified)
- sh64_abi = sh64_abi_64;
-
- if (sh64_isa_mode == sh64_isa_unspecified && ! sh64_mix)
- as_bad (_("-no-mix is invalid without specifying SHcompact or SHmedia"));
-
- if ((sh64_isa_mode == sh64_isa_unspecified
- || sh64_isa_mode == sh64_isa_shmedia)
- && sh64_shcompact_const_crange)
- as_bad (_("-shcompact-const-crange is invalid without SHcompact"));
-
- if (sh64_pt32 && sh64_abi != sh64_abi_64)
- as_bad (_("-expand-pt32 only valid with -abi=64"));
-
- if (! sh64_expand && sh64_isa_mode == sh64_isa_unspecified)
- as_bad (_("-no-expand only valid with SHcompact or SHmedia"));
-
- if (sh64_pt32 && ! sh64_expand)
- as_bad (_("-expand-pt32 invalid together with -no-expand"));
-
-#ifdef TE_NetBSD
- if (sh64_abi == sh64_abi_64)
- return (target_big_endian ? "elf64-sh64-nbsd" : "elf64-sh64l-nbsd");
- else
- return (target_big_endian ? "elf32-sh64-nbsd" : "elf32-sh64l-nbsd");
-#elif defined (TE_LINUX)
- if (sh64_abi == sh64_abi_64)
- return (target_big_endian ? "elf64-sh64big-linux" : "elf64-sh64-linux");
- else
- return (target_big_endian ? "elf32-sh64big-linux" : "elf32-sh64-linux");
-#else
- /* When the ISA is not one of SHmedia or SHcompact, use the old SH
- object format. */
- if (sh64_isa_mode == sh64_isa_unspecified)
- return (target_big_endian ? "elf32-sh" : "elf32-shl");
- else if (sh64_abi == sh64_abi_64)
- return (target_big_endian ? "elf64-sh64" : "elf64-sh64l");
- else
- return (target_big_endian ? "elf32-sh64" : "elf32-sh64l");
-#endif
-}
-
-/* The worker function of TARGET_MACH. */
-
-int
-sh64_target_mach (void)
-{
- /* We need to explicitly set bfd_mach_sh5 instead of the default 0. But
- we only do this for the 64-bit ABI: if we do it for the 32-bit ABI,
- the SH5 info in the bfd_arch_info structure will be selected.
- However correct, as the machine has 64-bit addresses, functions
- expected to emit 32-bit data for addresses will start failing. For
- example, the dwarf2dbg.c functions will emit 64-bit debugging format,
- and we don't want that in the 32-bit ABI.
-
- We could have two bfd_arch_info structures for SH64; one for the
- 32-bit ABI and one for the rest (64-bit ABI). But that would be a
- bigger kludge: it's a flaw in the BFD design, and we need to just
- work around it by having the default machine set here in the
- assembler. For everything else but the assembler, the various bfd
- functions will set the machine type right to bfd_mach_sh5 from object
- file header flags regardless of the 0 here. */
-
- return (sh64_abi == sh64_abi_64) ? bfd_mach_sh5 : 0;
-}
-
-/* This is MD_PCREL_FROM_SECTION, we define so it is called instead of
- md_pcrel_from (in tc-sh.c). */
-
-valueT
-shmedia_md_pcrel_from_section (struct fix *fixP, segT sec ATTRIBUTE_UNUSED)
-{
- /* Use the ISA for the instruction to decide which offset to use. We
- can glean it from the fixup type. */
- switch (fixP->fx_r_type)
- {
- case BFD_RELOC_SH_IMM_LOW16:
- case BFD_RELOC_SH_IMM_MEDLOW16:
- case BFD_RELOC_SH_IMM_MEDHI16:
- case BFD_RELOC_SH_IMM_HI16:
- case BFD_RELOC_SH_IMM_LOW16_PCREL:
- case BFD_RELOC_SH_IMM_MEDLOW16_PCREL:
- case BFD_RELOC_SH_IMM_MEDHI16_PCREL:
- case BFD_RELOC_SH_IMM_HI16_PCREL:
- case BFD_RELOC_SH_IMMU5:
- case BFD_RELOC_SH_IMMU6:
- case BFD_RELOC_SH_IMMS6:
- case BFD_RELOC_SH_IMMS10:
- case BFD_RELOC_SH_IMMS10BY2:
- case BFD_RELOC_SH_IMMS10BY4:
- case BFD_RELOC_SH_IMMS10BY8:
- case BFD_RELOC_SH_IMMS16:
- case BFD_RELOC_SH_IMMU16:
- case BFD_RELOC_SH_PT_16:
- case SHMEDIA_BFD_RELOC_PT:
- /* PC-relative relocs are relative to the address of the last generated
- instruction, i.e. fx_size - 4. */
- return SHMEDIA_MD_PCREL_FROM_FIX (fixP);
-
- case BFD_RELOC_64:
- case BFD_RELOC_64_PCREL:
- /* Fall through. */
-
- default:
- /* If section was SHcompact, use its function. */
- return (valueT) md_pcrel_from_section (fixP, sec);
- }
-
- know (0 /* Shouldn't get here. */);
- return 0;
-}
-
-/* Create one .cranges descriptor from two symbols, STARTSYM marking begin
- and ENDSYM marking end, and CR_TYPE specifying the type. */
-
-static void
-sh64_emit_crange (symbolS *startsym, symbolS *endsym,
- enum sh64_elf_cr_type cr_type)
-{
- expressionS exp;
- segT current_seg = now_seg;
- subsegT current_subseg = now_subseg;
-
- asection *cranges
- = bfd_make_section_old_way (stdoutput,
- SH64_CRANGES_SECTION_NAME);
-
- /* Temporarily change to the .cranges section. */
- subseg_set (cranges, 0);
-
- /* Emit the cr_addr part. */
- exp.X_op = O_symbol;
- exp.X_add_number = 0;
- exp.X_op_symbol = NULL;
- exp.X_add_symbol = startsym;
- emit_expr (&exp, 4);
-
- /* Emit the cr_size part. */
- exp.X_op = O_subtract;
- exp.X_add_number = 0;
- exp.X_add_symbol = endsym;
- exp.X_op_symbol = startsym;
- emit_expr (&exp, 4);
-
- /* Emit the cr_size part. */
- exp.X_op = O_constant;
- exp.X_add_number = cr_type;
- exp.X_add_symbol = NULL;
- exp.X_op_symbol = NULL;
- emit_expr (&exp, 2);
-
- /* Now back to our regular program. */
- subseg_set (current_seg, current_subseg);
-}
-
-/* Called when the assembler is about to emit contents of some type into
- SEG, so it is *known* that the type of that new contents is in
- NEW_CONTENTS_TYPE. If just switching back and forth between different
- contents types (for example, with consecutive .mode pseudos), then this
- function isn't called. */
-
-static void
-sh64_set_contents_type (enum sh64_elf_cr_type new_contents_type)
-{
- segment_info_type *seginfo;
-
- /* We will not be called when emitting .cranges output, since callers
- stop that. Validize that assumption. */
- know (!emitting_crange);
-
- seginfo = seg_info (now_seg);
-
- if (seginfo)
- {
- symbolS *symp = seginfo->tc_segment_info_data.last_contents_mark;
-
- enum sh64_elf_cr_type contents_type
- = seginfo->tc_segment_info_data.contents_type;
-
- /* If it was just SHcompact switching between code and constant
- pool, don't change contents type. Just make sure we don't set
- the contents type to data, as that would join with a data-region
- in SHmedia mode. */
- if (sh64_isa_mode == sh64_isa_shcompact
- && ! sh64_shcompact_const_crange)
- new_contents_type = CRT_SH5_ISA16;
-
- /* If nothing changed, stop here. */
- if (contents_type == new_contents_type)
- return;
-
- /* If we're in 64-bit ABI mode, we do not emit .cranges, as it is
- only specified for 32-bit addresses. It could presumably be
- extended, but in 64-bit ABI mode we don't have SHcompact code, so
- we would only use it to mark code and data. */
- if (sh64_abi == sh64_abi_64)
- {
- /* Make the code type "sticky". We don't want to set the
- sections contents type to data if there's any code in it as
- we don't have .cranges in 64-bit mode to notice the
- difference. */
- seginfo->tc_segment_info_data.contents_type
- = (new_contents_type == CRT_SH5_ISA32
- || contents_type == CRT_SH5_ISA32)
- ? CRT_SH5_ISA32 : new_contents_type;
- return;
- }
-
- /* If none was marked, create a start symbol for this range and
- perhaps as a closing symbol for the old one. */
- if (symp == NULL)
- symp = symbol_new (FAKE_LABEL_NAME, now_seg, (valueT) frag_now_fix (),
- frag_now);
-
- /* We will use this symbol, so don't leave a pointer behind. */
- seginfo->tc_segment_info_data.last_contents_mark = NULL;
-
- /* We'll be making only datalabel references to it, if we emit a
- .cranges descriptor, so remove any code flag. */
- S_SET_OTHER (symp, S_GET_OTHER (symp) & ~STO_SH5_ISA32);
-
- /* If we have already marked the start of a range, we need to close
- and emit it before marking a new one, so emit a new .cranges
- descriptor into the .cranges section. */
- if (seginfo->tc_segment_info_data.mode_start_symbol)
- {
- /* If we're not supposed to emit mixed-mode sections, make it an
- error, but continue processing. */
- if (! sh64_mix
- && (new_contents_type == CRT_SH5_ISA32
- || contents_type == CRT_SH5_ISA32))
- as_bad (
-_("SHmedia code not allowed in same section as constants and SHcompact code"));
-
- emitting_crange = TRUE;
- sh64_emit_crange (seginfo->tc_segment_info_data.mode_start_symbol,
- symp, contents_type);
- emitting_crange = FALSE;
- seginfo->tc_segment_info_data.emitted_ranges++;
- }
-
- seginfo->tc_segment_info_data.mode_start_symbol = symp;
- seginfo->tc_segment_info_data.mode_start_subseg = now_subseg;
- seginfo->tc_segment_info_data.contents_type = new_contents_type;
-
- /* Always reset this, so the SHcompact code will emit a reloc when
- it prepares to relax. */
- seginfo->tc_segment_info_data.in_code = 0;
- }
- else
- as_bad (_("No segment info for current section"));
-}
-
-/* Hook when defining symbols and labels. We set the ST_OTHER field if
- the symbol is "shmedia" (with "bitor 1" automatically applied). Simple
- semantics for a label being "shmedia" : It was defined when .mode
- SHmedia was in effect, and it was defined in a code section. It
- doesn't matter whether or not an assembled opcode is nearby. */
-
-void
-sh64_frob_label (symbolS *symp)
-{
- segT seg = S_GET_SEGMENT (symp);
- static const symbolS *null = NULL;
-
- /* Reset the tc marker for all newly created symbols. */
- symbol_set_tc (symp, (symbolS **) &null);
-
- if (seg != NULL && sh64_isa_mode == sh64_isa_shmedia && subseg_text_p (seg))
- S_SET_OTHER (symp, S_GET_OTHER (symp) | STO_SH5_ISA32);
-}
-
-/* Handle the "datalabel" qualifier. We need to call "operand", but it's
- static, so a function pointer is passed here instead. FIXME: A target
- hook for qualifiers is needed; we currently use the md_parse_name
- symbol hook. */
-
-int
-sh64_consume_datalabel (const char *name, expressionS *exp,
- enum expr_mode mode, char *cp,
- segT (*operandf) (expressionS *, enum expr_mode))
-{
- static int parsing_datalabel = 0;
-
- if (strcasecmp (name, "datalabel") == 0)
- {
- int save_parsing_datalabel = parsing_datalabel;
-
- if (parsing_datalabel)
- as_bad (_("duplicate datalabel operator ignored"));
-
- *input_line_pointer = *cp;
- parsing_datalabel = 1;
- (*operandf) (exp, expr_normal);
- parsing_datalabel = save_parsing_datalabel;
-
- if (exp->X_op == O_symbol || exp->X_op == O_PIC_reloc)
- {
- symbolS *symp = exp->X_add_symbol;
- segT symseg = S_GET_SEGMENT (symp);
-
- /* If the symbol is defined to something that is already a
- datalabel, we don't need to bother with any special handling. */
- if (symseg != undefined_section
- && S_GET_OTHER (symp) != STO_SH5_ISA32)
- /* Do nothing. */
- ;
- else
- {
- symbolS *dl_symp;
- const char * sname = S_GET_NAME (symp);
- char *dl_name = concat (sname, DATALABEL_SUFFIX, (char *) NULL);
-
- /* Now we copy the datalabel-qualified symbol into a symbol
- with the same name, but with " DL" appended. We mark the
- symbol using the TC_SYMFIELD_TYPE field with a pointer to
- the main symbol, so we don't have to inspect all symbol
- names. Note that use of "datalabel" is not expected to
- be a common case. */
-
- /* A FAKE_LABEL_NAME marks "$" or ".". There can be any
- number of them and all have the same (faked) name; we
- must make a new one each time. */
- if (strcmp (sname, FAKE_LABEL_NAME) == 0)
- dl_symp = symbol_make (dl_name);
- else
- dl_symp = symbol_find_or_make (dl_name);
-
- free (dl_name);
- symbol_set_value_expression (dl_symp,
- symbol_get_value_expression (symp));
- S_SET_SEGMENT (dl_symp, symseg);
- symbol_set_frag (dl_symp, symbol_get_frag (symp));
- symbol_set_tc (dl_symp, &symp);
- copy_symbol_attributes (dl_symp, symp);
- exp->X_add_symbol = dl_symp;
-
- /* Unset the BranchTarget mark that can be set at symbol
- creation or attributes copying. */
- S_SET_OTHER (dl_symp, S_GET_OTHER (dl_symp) & ~STO_SH5_ISA32);
-
- /* The GLOBAL and WEAK attributes are not copied over by
- copy_symbol_attributes. Do it here. */
- if (S_IS_WEAK (symp))
- S_SET_WEAK (dl_symp);
- else if (S_IS_EXTERNAL (symp))
- S_SET_EXTERNAL (dl_symp);
- }
- }
- /* Complain about other types of operands than symbol, unless they
- have already been complained about. A constant is always a
- datalabel. Removing the low bit would therefore be wrong.
- Complaining about it would also be wrong. */
- else if (exp->X_op != O_illegal
- && exp->X_op != O_absent
- && exp->X_op != O_constant)
- as_bad (_("Invalid DataLabel expression"));
-
- *cp = *input_line_pointer;
-
- return 1;
- }
-
- return sh_parse_name (name, exp, mode, cp);
-}
-
-/* This function is called just before symbols are being output. It
- returns zero when a symbol must be output, non-zero otherwise.
- Datalabel references that were fully resolved to local symbols are not
- necessary to output. We also do not want to output undefined symbols
- that are not used in relocs. For symbols that are used in a reloc, it
- does not matter what we set here. If it is *not* used in a reloc, then
- it was probably the datalabel counterpart that was used in a reloc;
- then we need not output the main symbol. */
-
-int
-sh64_exclude_symbol (symbolS *symp)
-{
- symbolS *main_symbol = *symbol_get_tc (symp);
-
- return main_symbol != NULL || ! S_IS_DEFINED (symp);
-}
-
-/* If we haven't seen an insn since the last update, and location
- indicators have moved (a new frag, new location within frag) we have
- emitted data, so change contents type to data. Forget that we have
- seen a sequence of insns and store the current location so we can mark
- a new region if needed. */
-
-static void
-sh64_update_contents_mark (bfd_boolean update_type)
-{
- segment_info_type *seginfo;
- seginfo = seg_info (now_seg);
-
- if (seginfo != NULL)
- {
- symbolS *symp = seginfo->tc_segment_info_data.last_contents_mark;
-
- if (symp == NULL)
- {
- symp = symbol_new (FAKE_LABEL_NAME, now_seg,
- (valueT) frag_now_fix (), frag_now);
- seginfo->tc_segment_info_data.last_contents_mark = symp;
- }
- else
- {
- /* If we have moved location since last flush, we need to emit a
- data range. The previous contents type ended at the location
- of the last update. */
- if ((S_GET_VALUE (symp) != frag_now_fix ()
- || symbol_get_frag (symp) != frag_now))
- {
- enum sh64_elf_cr_type contents_type
- = seginfo->tc_segment_info_data.contents_type;
-
- if (update_type
- && contents_type != CRT_DATA
- && contents_type != CRT_NONE
- && ! seen_insn)
- {
- sh64_set_contents_type (CRT_DATA);
- symp = seginfo->tc_segment_info_data.last_contents_mark;
- }
-
- /* If the symbol wasn't used up to make up a new range
- descriptor, update it to this new location. */
- if (symp)
- {
- S_SET_VALUE (symp, (valueT) frag_now_fix ());
- symbol_set_frag (symp, frag_now);
- }
- }
- }
- }
-
- seen_insn = FALSE;
-}
-
-/* Called when the assembler is about to output some data, or maybe it's
- just switching segments. */
-
-void
-sh64_flush_pending_output (void)
-{
- sh64_update_contents_mark (TRUE);
- sh_flush_pending_output ();
-}
-
-/* Flush out the last crange descriptor after all insns have been emitted. */
-
-static void
-sh64_flush_last_crange (bfd *abfd ATTRIBUTE_UNUSED, asection *seg,
- void *countparg ATTRIBUTE_UNUSED)
-{
- segment_info_type *seginfo;
-
- seginfo = seg_info (seg);
-
- if (seginfo
- /* Only emit .cranges descriptors if we would make it more than one. */
- && seginfo->tc_segment_info_data.emitted_ranges != 0)
- {
- symbolS *symp;
-
- /* We need a closing symbol, so switch to the indicated section and
- emit it. */
-
- /* Change to the section we're about to handle. */
- subseg_set (seg, seginfo->tc_segment_info_data.mode_start_subseg);
-
- symp = symbol_new (FAKE_LABEL_NAME, now_seg, (valueT) frag_now_fix (),
- frag_now);
-
- /* We'll be making a datalabel reference to it, so remove any code
- flag. */
- S_SET_OTHER (symp, S_GET_OTHER (symp) & ~STO_SH5_ISA32);
-
- sh64_emit_crange (seginfo->tc_segment_info_data.mode_start_symbol,
- symp,
- seginfo->tc_segment_info_data.contents_type);
- }
-}
-
-/* If and only if we see a call to md_number_to_chars without flagging the
- start of an insn, we set the contents type to CRT_DATA, and only when
- in SHmedia mode. Note that by default we don't bother changing when
- going from SHcompact to data, as the constant pools in GCC-generated
- SHcompact code would create an inordinate amount of .cranges
- descriptors. */
-
-static void
-sh64_flag_output (void)
-{
- if (sh64_isa_mode != sh64_isa_unspecified
- && !seen_insn
- && !sh64_end_of_assembly
- && !emitting_crange)
- {
- md_flush_pending_output ();
- sh64_set_contents_type (CRT_DATA);
- }
-}
-
-/* Vtables don't need "datalabel" but we allow it by simply deleting
- any we find. */
-
-static char *
-strip_datalabels (void)
-{
- char *src, *dest, *start=input_line_pointer;
-
- for (src=input_line_pointer, dest=input_line_pointer; *src != '\n'; )
- {
- if (strncasecmp (src, "datalabel", 9) == 0
- && ISSPACE (src[9])
- && (src == start || !(ISALNUM (src[-1])) || src[-1] == '_'))
- src += 10;
- else
- *dest++ = *src++;
- }
-
- if (dest < src)
- *dest = '\n';
- return src + 1;
-}
-
-static void
-sh64_vtable_entry (int ignore ATTRIBUTE_UNUSED)
-{
- char *eol = strip_datalabels ();
-
- obj_elf_vtable_entry (0);
- input_line_pointer = eol;
-}
-
-static void
-sh64_vtable_inherit (int ignore ATTRIBUTE_UNUSED)
-{
- char *eol = strip_datalabels ();
-
- obj_elf_vtable_inherit (0);
- input_line_pointer = eol;
-}
-
-int
-sh64_fake_label (const char *name)
-{
- size_t len;
-
- if (strcmp (name, FAKE_LABEL_NAME) == 0)
- return 1;
-
- len = strlen (name);
- if (len >= (sizeof (DATALABEL_SUFFIX) - 1))
- return strcmp (&name [len - sizeof (DATALABEL_SUFFIX) + 1],
- DATALABEL_SUFFIX) == 0;
-
- return 0;
-}
diff --git a/gas/config/tc-sh64.h b/gas/config/tc-sh64.h
deleted file mode 100644
index 66b86f1..0000000
--- a/gas/config/tc-sh64.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/* This file is tc-sh64.h
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
-
- This file is part of GAS, the GNU Assembler.
-
- GAS 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 3, or (at your option)
- any later version.
-
- GAS 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 GAS; see the file COPYING. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#define TC_SH64
-#include "config/tc-sh.h"
-#include "elf/sh.h"
-#include "elf32-sh64.h"
-
-/* We need to override the tc-sh.h settings of HANDLE_ALIGN and
- MAX_MEM_FOR_RS_ALIGN_CODE; we might need to put in SHmedia NOP:s, not
- SHcompact NOP:s. */
-#undef HANDLE_ALIGN
-#define HANDLE_ALIGN(frag) sh64_handle_align (frag)
-extern void sh64_handle_align (fragS *);
-
-#undef MAX_MEM_FOR_RS_ALIGN_CODE
-#define MAX_MEM_FOR_RS_ALIGN_CODE sh64_max_mem_for_rs_align_code ()
-extern int sh64_max_mem_for_rs_align_code (void);
-
-#undef LISTING_HEADER
-#define LISTING_HEADER \
- (target_big_endian ? \
- "SuperH SHcompact/SHmedia Big Endian GAS" \
- : "SuperH SHcompact/SHmedia Little Endian GAS")
-
-/* We need to record the new frag position after an .align. */
-extern void sh64_do_align (int, const char *, int, int);
-#define md_do_align(n, fill, len, max, l) \
- do { sh64_do_align (n, fill, len, max); goto l; } while (0)
-
-struct sh64_segment_info_type
-{
- /* The type of the section is initialized when the range_start_symbol
- member is non-NULL. */
- symbolS *mode_start_symbol;
- subsegT mode_start_subseg;
-
- /* A stored symbol indicating location of last call of
- "md_flush_pending_output". It is NULLed when we actually use it;
- otherwise the contents is just filled in with segment, frag and
- offset within frag. */
- symbolS *last_contents_mark;
-
- unsigned int emitted_ranges;
- enum sh64_elf_cr_type contents_type;
-
- /* This is used by the SH1-4 parts; we set it to 0 for SHmedia code and
- data. */
- unsigned int in_code : 1;
-};
-
-#undef TC_SEGMENT_INFO_TYPE
-#define TC_SEGMENT_INFO_TYPE struct sh64_segment_info_type
-
-#undef TARGET_FORMAT
-#define TARGET_FORMAT sh64_target_format ()
-extern const char *sh64_target_format (void);
-
-#define TARGET_MACH sh64_target_mach ()
-extern int sh64_target_mach (void);
-
-#undef TC_FORCE_RELOCATION_LOCAL
-#define TC_FORCE_RELOCATION_LOCAL(FIX) \
- (GENERIC_FORCE_RELOCATION_LOCAL (FIX) \
- || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \
- || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_LOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_MEDLOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_MEDHI16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_HI16 \
- || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_LOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_MEDLOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_MEDHI16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_HI16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOT10BY4 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOT10BY8 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT32 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_LOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_MEDLOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_MEDHI16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_HI16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT10BY4 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT10BY8 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_LOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_MEDLOW16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_MEDHI16 \
- || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_HI16)
-
-#undef TC_FORCE_RELOCATION_SUB_SAME
-#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEC) \
- (GENERIC_FORCE_RELOCATION_SUB_SAME (FIX, SEC) \
- || TC_FORCE_RELOCATION (FIX) \
- || (sh_relax && SWITCH_TABLE (FIX)) \
- || *symbol_get_tc ((FIX)->fx_addsy) != NULL)
-
-/* Don't complain when we leave fx_subsy around. */
-#undef TC_VALIDATE_FIX_SUB
-#define TC_VALIDATE_FIX_SUB(FIX, SEG) \
- ((md_register_arithmetic || (SEG) != reg_section) \
- && ((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \
- || (sh_relax && SWITCH_TABLE (FIX)) \
- || *symbol_get_tc ((FIX)->fx_addsy) != NULL))
-
-/* Note the kludge: we want to put back C, and we also want to consume the
- expression, since we have handled it ourselves. FIXME: What we really
- need is a new GAS infrastructure feature: md_qualifier. */
-#undef md_parse_name
-#define md_parse_name(NAME, EXP, MODE, CP) \
- sh64_consume_datalabel (NAME, EXP, MODE, CP, operand)
-extern int sh64_consume_datalabel (const char *, expressionS *,
- enum expr_mode, char *,
- segT (*) (expressionS *, enum expr_mode));
-
-/* Saying "$" is the same as saying ".". */
-#define DOLLAR_DOT
-
-#undef MD_PCREL_FROM_SECTION
-#define MD_PCREL_FROM_SECTION(FIX, SEC) \
- shmedia_md_pcrel_from_section (FIX, SEC)
-
-extern valueT shmedia_md_pcrel_from_section (struct fix *, segT);
-
-/* We need to mark this symbol as a BranchTarget; setting st_other for it
- and adding 1 to its value (temporarily). */
-extern void sh64_frob_label (symbolS *);
-
-#undef tc_frob_label
-#define tc_frob_label(sym) \
- do { sh_frob_label (sym); sh64_frob_label (sym); } while (0)
-
-#define tc_symbol_new_hook(s) sh64_frob_label (s)
-
-/* We use this to mark our "datalabel" symbol copies. The "mark" is NULL
- for an ordinary symbol, and the pointer to the "ordinary" symbol for a
- datalabel symbol. */
-#define TC_SYMFIELD_TYPE symbolS *
-
-#define tc_frob_symbol(symp, punt) \
- do \
- { \
- punt = sh64_exclude_symbol (symp); \
- } \
- while (0)
-
-extern int sh64_exclude_symbol (symbolS *);
-
-extern void sh64_adjust_symtab (void);
-#define tc_adjust_symtab sh64_adjust_symtab
-
-#undef md_flush_pending_output
-#define md_flush_pending_output() sh64_flush_pending_output ()
-extern void sh64_flush_pending_output (void);
-
-/* Note that tc-sh.c has a sh_frob_section, but it's called from
- tc_frob_file_before_adjust. */
-#define tc_frob_section(sec) shmedia_frob_section_type (sec)
-extern void shmedia_frob_section_type (asection *);
-
-/* We need to emit fixups relative to the frag in which the instruction
- resides. Safest way without calculating max fragment growth or making
- it a fixed number is to provide a pointer to the opcode frag.
-
- We also need to emit the right NOP pattern in .align frags. This is
- done after the text-to-bits assembly pass, so we need to mark it with
- the ISA setting at the time the .align was assembled. */
-#define TC_FRAG_TYPE struct sh64_tc_frag_data
-
-enum sh64_isa_values
- {
- sh64_isa_unspecified,
- sh64_isa_shcompact,
- sh64_isa_shmedia,
-
- /* Special guard value used in contexts when we don't know which ISA it
- is, just that it's specified (not sh64_isa_unspecified). */
- sh64_isa_sh5_guard
- };
-
-struct sh64_tc_frag_data
-{
- fragS *opc_frag;
- enum sh64_isa_values isa;
-};
-
-extern enum sh64_isa_values sh64_isa_mode;
-
-#define TC_FRAG_INIT(FRAGP) \
- do \
- { \
- (FRAGP)->tc_frag_data.opc_frag = sh64_last_insn_frag; \
- (FRAGP)->tc_frag_data.isa = sh64_isa_mode; \
- } \
- while (0)
-
-/* This variable is set whenever we generate (or grow) a new opcode frag
- in shmedia_build_Mytes. */
-extern fragS *sh64_last_insn_frag;
-
-#define md_end() shmedia_md_end ()
-void shmedia_md_end (void);
-
-/* Because we make .debug_line hold the SHmedia instruction address | 1,
- we have to say we only have minimum byte-size insns. */
-#undef DWARF2_LINE_MIN_INSN_LENGTH
-#define DWARF2_LINE_MIN_INSN_LENGTH 1
-
-#define TC_FAKE_LABEL(NAME) sh64_fake_label(NAME)
-extern int sh64_fake_label (const char *);
diff --git a/gas/configure.tgt b/gas/configure.tgt
index c93f7b9..2992825 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -97,10 +97,6 @@ case ${cpu} in
s390*) cpu_type=s390 arch=s390 ;;
score*l) cpu_type=score endian=little ;;
score*) cpu_type=score endian=big ;;
- sh5le*) cpu_type=sh64 endian=little ;;
- sh5*) cpu_type=sh64 endian=big ;;
- sh64le*) cpu_type=sh64 endian=little ;;
- sh64*) cpu_type=sh64 endian=big ;;
sh*le) cpu_type=sh endian=little ;;
sh*) cpu_type=sh endian=big ;;
sparc64* | sparcv9*) cpu_type=sparc arch=v9-64 ;;
@@ -407,8 +403,6 @@ case ${generic_target} in
sh*eb) endian=big ;;
*) endian=little ;;
esac ;;
- sh5*-*-netbsd*) fmt=elf em=nbsd ;;
- sh64*-*-netbsd*) fmt=elf em=nbsd ;;
sh*-*-netbsdelf*) fmt=elf em=nbsd
case ${cpu} in
sh*l*) endian=little ;;
@@ -421,7 +415,6 @@ case ${generic_target} in
sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
sh-*-kaos*) fmt=elf ;;
shle*-*-kaos*) fmt=elf ;;
- sh64-*-elf*) fmt=elf ;;
sparc-*-sunos4*) fmt=aout em=sun3 ;;
sparc-*-aout) fmt=aout em=sparcaout ;;
diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am
index 79d646d..8089358 100644
--- a/gas/doc/Makefile.am
+++ b/gas/doc/Makefile.am
@@ -84,7 +84,6 @@ CPU_DOCS = \
c-s390.texi \
c-score.texi \
c-sh.texi \
- c-sh64.texi \
c-sparc.texi \
c-tic54x.texi \
c-tic6x.texi \
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index d4b0cf8..643df61 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -359,7 +359,6 @@ CPU_DOCS = \
c-s390.texi \
c-score.texi \
c-sh.texi \
- c-sh64.texi \
c-sparc.texi \
c-tic54x.texi \
c-tic6x.texi \
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 76ee990..e1ff851 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -7609,7 +7609,6 @@ subject, see the hardware manufacturer's manual.
@end ifset
@ifset SH
* SH-Dependent:: Renesas / SuperH SH Dependent Features
-* SH64-Dependent:: SuperH SH64 Dependent Features
@end ifset
@ifset SPARC
* Sparc-Dependent:: SPARC Dependent Features
@@ -7838,7 +7837,6 @@ family.
@ifset SH
@include c-sh.texi
-@include c-sh64.texi
@end ifset
@ifset SPARC
diff --git a/gas/doc/c-sh64.texi b/gas/doc/c-sh64.texi
deleted file mode 100644
index 30737a6..0000000
--- a/gas/doc/c-sh64.texi
+++ /dev/null
@@ -1,219 +0,0 @@
-@c Copyright (C) 2002-2018 Free Software Foundation, Inc.
-@c This is part of the GAS manual.
-@c For copying conditions, see the file as.texinfo.
-@page
-@node SH64-Dependent
-@chapter SuperH SH64 Dependent Features
-
-@cindex SH64 support
-@menu
-* SH64 Options:: Options
-* SH64 Syntax:: Syntax
-* SH64 Directives:: SH64 Machine Directives
-* SH64 Opcodes:: Opcodes
-@end menu
-
-@node SH64 Options
-@section Options
-
-@cindex SH64 options
-@cindex options, SH64
-@table @code
-
-@cindex SH64 ISA options
-@cindex ISA options, SH64
-@item -isa=sh4 | sh4a
-Specify the sh4 or sh4a instruction set.
-@item -isa=dsp
-Enable sh-dsp insns, and disable sh3e / sh4 insns.
-@item -isa=fp
-Enable sh2e, sh3e, sh4, and sh4a insn sets.
-@item -isa=all
-Enable sh1, sh2, sh2e, sh3, sh3e, sh4, sh4a, and sh-dsp insn sets.
-@item -isa=shmedia | -isa=shcompact
-Specify the default instruction set. @code{SHmedia} specifies the
-32-bit opcodes, and @code{SHcompact} specifies the 16-bit opcodes
-compatible with previous SH families. The default depends on the ABI
-selected; the default for the 64-bit ABI is SHmedia, and the default for
-the 32-bit ABI is SHcompact. If neither the ABI nor the ISA is
-specified, the default is 32-bit SHcompact.
-
-Note that the @code{.mode} pseudo-op is not permitted if the ISA is not
-specified on the command line.
-
-@cindex SH64 ABI options
-@cindex ABI options, SH64
-@item -abi=32 | -abi=64
-Specify the default ABI. If the ISA is specified and the ABI is not,
-the default ABI depends on the ISA, with SHmedia defaulting to 64-bit
-and SHcompact defaulting to 32-bit.
-
-Note that the @code{.abi} pseudo-op is not permitted if the ABI is not
-specified on the command line. When the ABI is specified on the command
-line, any @code{.abi} pseudo-ops in the source must match it.
-
-@item -shcompact-const-crange
-Emit code-range descriptors for constants in SHcompact code sections.
-
-@item -no-mix
-Disallow SHmedia code in the same section as constants and SHcompact
-code.
-
-@item -no-expand
-Do not expand MOVI, PT, PTA or PTB instructions.
-
-@item -expand-pt32
-With -abi=64, expand PT, PTA and PTB instructions to 32 bits only.
-
-@item -h-tick-hex
-Support H'00 style hex constants in addition to 0x00 style.
-
-@end table
-
-@node SH64 Syntax
-@section Syntax
-
-@menu
-* SH64-Chars:: Special Characters
-* SH64-Regs:: Register Names
-* SH64-Addressing:: Addressing Modes
-@end menu
-
-@node SH64-Chars
-@subsection Special Characters
-
-@cindex line comment character, SH64
-@cindex SH64 line comment character
-@samp{!} is the line comment character.
-
-If a @samp{#} appears as the first character of a line then the whole
-line is treated as a comment, but in this case the line could also be
-a logical line number directive (@pxref{Comments}) or a preprocessor
-control command (@pxref{Preprocessing}).
-
-@cindex line separator, SH64
-@cindex statement separator, SH64
-@cindex SH64 line separator
-You can use @samp{;} instead of a newline to separate statements.
-
-@cindex symbol names, @samp{$} in
-@cindex @code{$} in symbol names
-Since @samp{$} has no special meaning, you may use it in symbol names.
-
-@node SH64-Regs
-@subsection Register Names
-
-@cindex SH64 registers
-@cindex registers, SH64
-You can use the predefined symbols @samp{r0} through @samp{r63} to refer
-to the SH64 general registers, @samp{cr0} through @code{cr63} for
-control registers, @samp{tr0} through @samp{tr7} for target address
-registers, @samp{fr0} through @samp{fr63} for single-precision floating
-point registers, @samp{dr0} through @samp{dr62} (even numbered registers
-only) for double-precision floating point registers, @samp{fv0} through
-@samp{fv60} (multiples of four only) for single-precision floating point
-vectors, @samp{fp0} through @samp{fp62} (even numbered registers only)
-for single-precision floating point pairs, @samp{mtrx0} through
-@samp{mtrx48} (multiples of 16 only) for 4x4 matrices of
-single-precision floating point registers, @samp{pc} for the program
-counter, and @samp{fpscr} for the floating point status and control
-register.
-
-You can also refer to the control registers by the mnemonics @samp{sr},
-@samp{ssr}, @samp{pssr}, @samp{intevt}, @samp{expevt}, @samp{pexpevt},
-@samp{tra}, @samp{spc}, @samp{pspc}, @samp{resvec}, @samp{vbr},
-@samp{tea}, @samp{dcr}, @samp{kcr0}, @samp{kcr1}, @samp{ctc}, and
-@samp{usr}.
-
-@node SH64-Addressing
-@subsection Addressing Modes
-
-@cindex addressing modes, SH64
-@cindex SH64 addressing modes
-
-SH64 operands consist of either a register or immediate value. The
-immediate value can be a constant or label reference (or portion of a
-label reference), as in this example:
-
-@example
- movi 4,r2
- pt function, tr4
- movi (function >> 16) & 65535,r0
- shori function & 65535, r0
- ld.l r0,4,r0
-@end example
-
-@cindex datalabel, SH64
-Instruction label references can reference labels in either SHmedia or
-SHcompact. To differentiate between the two, labels in SHmedia sections
-will always have the least significant bit set (i.e. they will be odd),
-which SHcompact labels will have the least significant bit reset
-(i.e. they will be even). If you need to reference the actual address
-of a label, you can use the @code{datalabel} modifier, as in this
-example:
-
-@example
- .long function
- .long datalabel function
-@end example
-
-In that example, the first longword may or may not have the least
-significant bit set depending on whether the label is an SHmedia label
-or an SHcompact label. The second longword will be the actual address
-of the label, regardless of what type of label it is.
-
-@node SH64 Directives
-@section SH64 Machine Directives
-
-In addition to the SH directives, the SH64 provides the following
-directives:
-
-@cindex SH64 machine directives
-@cindex machine directives, SH64
-
-@table @code
-
-@item .mode [shmedia|shcompact]
-@itemx .isa [shmedia|shcompact]
-Specify the ISA for the following instructions (the two directives are
-equivalent). Note that programs such as @code{objdump} rely on symbolic
-labels to determine when such mode switches occur (by checking the least
-significant bit of the label's address), so such mode/isa changes should
-always be followed by a label (in practice, this is true anyway). Note
-that you cannot use these directives if you didn't specify an ISA on the
-command line.
-
-@item .abi [32|64]
-Specify the ABI for the following instructions. Note that you cannot use
-this directive unless you specified an ABI on the command line, and the
-ABIs specified must match.
-
-@end table
-
-@node SH64 Opcodes
-@section Opcodes
-
-@cindex SH64 opcode summary
-@cindex opcode summary, SH64
-@cindex mnemonics, SH64
-@cindex instruction summary, SH64
-For detailed information on the SH64 machine instruction set, see
-@cite{SuperH 64 bit RISC Series Architecture Manual} (SuperH, Inc.).
-
-@code{@value{AS}} implements all the standard SH64 opcodes. In
-addition, the following pseudo-opcodes may be expanded into one or more
-alternate opcodes:
-
-@table @code
-
-@item movi
-If the value doesn't fit into a standard @code{movi} opcode,
-@code{@value{AS}} will replace the @code{movi} with a sequence of
-@code{movi} and @code{shori} opcodes.
-
-@item pt
-This expands to a sequence of @code{movi} and @code{shori} opcode,
-followed by a @code{ptrel} opcode, or to a @code{pta} or @code{ptb}
-opcode, depending on the label referenced.
-
-@end table
diff --git a/gas/po/POTFILES.in b/gas/po/POTFILES.in
index a99a276..2290383 100644
--- a/gas/po/POTFILES.in
+++ b/gas/po/POTFILES.in
@@ -139,8 +139,6 @@ config/tc-score.c
config/tc-score.h
config/tc-sh.c
config/tc-sh.h
-config/tc-sh64.c
-config/tc-sh64.h
config/tc-sparc.c
config/tc-sparc.h
config/tc-spu.c
diff --git a/gas/testsuite/gas/cfi/cfi.exp b/gas/testsuite/gas/cfi/cfi.exp
index 588c5d5..b7f8c13 100644
--- a/gas/testsuite/gas/cfi/cfi.exp
+++ b/gas/testsuite/gas/cfi/cfi.exp
@@ -96,11 +96,7 @@ if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } then {
if { [istarget "*-pe" ] || [istarget "*-rtemscoff*"] } then {
return
}
-
- if { [istarget sh64*-*-*] || [istarget sh5*-*-*] } then {
- } else {
- run_dump_test "cfi-sh-1"
- }
+ run_dump_test "cfi-sh-1"
} elseif { [istarget sparc*-*-*] } then {
global NM
diff --git a/gas/testsuite/gas/sh/basic.exp b/gas/testsuite/gas/sh/basic.exp
index 9d3719d..7921cf5 100644
--- a/gas/testsuite/gas/sh/basic.exp
+++ b/gas/testsuite/gas/sh/basic.exp
@@ -23,12 +23,6 @@ if {[istarget "sh*-*-linux-*"] || [istarget "sh*l*-*-netbsdelf*"]} then {
global ASFLAGS
set ASFLAGS "$ASFLAGS -big"
}
-if {[istarget "sh64*-*-*"] || [istarget "sh5*-*-*"]} then {
- global ASFLAGS
-
- set old_ASFLAGS $ASFLAGS
- set ASFLAGS "$ASFLAGS --abi=32 --isa=SHcompact"
-}
proc do_fp {} {
set testname "fp.s: floating point tests (sh3e)"
@@ -132,7 +126,6 @@ if [istarget sh*-*-*] then {
run_dump_test "pcrel-coff"
} elseif {[istarget sh*-hms] } {
run_dump_test "pcrel-hms"
- } elseif {![istarget sh64*-*-*] && ![istarget sh5*-*-*] } {
# Test DSP instructions
run_dump_test "dsp"
@@ -142,16 +135,14 @@ if [istarget sh*-*-*] then {
}
if {[istarget sh*-*elf] || [istarget sh*-*linux*]} then {
- if {![istarget "sh64*-*-*"] && ![istarget "sh5*-*-*"]} then {
- run_dump_test "sh4a"
- run_dump_test "sh4a-fp"
+ run_dump_test "sh4a"
+ run_dump_test "sh4a-fp"
- run_dump_test "sh4a-dsp"
- run_dump_test "sh4al-dsp"
+ run_dump_test "sh4a-dsp"
+ run_dump_test "sh4al-dsp"
- run_dump_test "sh2a"
- run_dump_test "sh2a-pic"
- }
+ run_dump_test "sh2a"
+ run_dump_test "sh2a-pic"
run_dump_test "pic"
run_dump_test "fdpic"
diff --git a/gas/testsuite/gas/sh/sh64/abi-32.d b/gas/testsuite/gas/sh/sh64/abi-32.d
deleted file mode 100644
index b1cf4d9..0000000
--- a/gas/testsuite/gas/sh/sh64/abi-32.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#as: --abi=32
-#objdump: -dr
-#name: Assertion .abi 32.
-
-.*: file format .*-sh64.*
-
-Disassembly of section \.text:
-[0]+ <start>:
-[ ]+0:[ ]+6ff0fff0[ ]+nop
-
diff --git a/gas/testsuite/gas/sh/sh64/abi-32.s b/gas/testsuite/gas/sh/sh64/abi-32.s
deleted file mode 100644
index 85d9807..0000000
--- a/gas/testsuite/gas/sh/sh64/abi-32.s
+++ /dev/null
@@ -1,7 +0,0 @@
-! Check successful .abi assertion for 32-bit ABI.
-
- .text
- .abi 32
- .mode SHmedia
-start:
- nop
diff --git a/gas/testsuite/gas/sh/sh64/abi-64.d b/gas/testsuite/gas/sh/sh64/abi-64.d
deleted file mode 100644
index 210e261..0000000
--- a/gas/testsuite/gas/sh/sh64/abi-64.d
+++ /dev/null
@@ -1,9 +0,0 @@
-#as: --abi=64
-#objdump: -dr
-#name: Assertion .abi 64.
-
-.*: file format .*-sh64.*
-
-Disassembly of section \.text:
-[0]+ <start>:
-[ ]+0:[ ]+6ff0fff0[ ]+nop
diff --git a/gas/testsuite/gas/sh/sh64/abi-64.s b/gas/testsuite/gas/sh/sh64/abi-64.s
deleted file mode 100644
index 8daa31b..0000000
--- a/gas/testsuite/gas/sh/sh64/abi-64.s
+++ /dev/null
@@ -1,7 +0,0 @@
-! Check successful .abi assertion for 64-bit ABI.
-
- .text
- .abi 64
-
-start:
- nop
diff --git a/gas/testsuite/gas/sh/sh64/basic-1.d b/gas/testsuite/gas/sh/sh64/basic-1.d
deleted file mode 100644
index f534c99c..0000000
--- a/gas/testsuite/gas/sh/sh64/basic-1.d
+++ /dev/null
@@ -1,234 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/basic-1.s b/gas/testsuite/gas/sh/sh64/basic-1.s
deleted file mode 100644
index 057667e..0000000
--- a/gas/testsuite/gas/sh/sh64/basic-1.s
+++ /dev/null
@@ -1,233 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/case-1.d b/gas/testsuite/gas/sh/sh64/case-1.d
deleted file mode 100644
index 8d1d009..0000000
--- a/gas/testsuite/gas/sh/sh64/case-1.d
+++ /dev/null
@@ -1,23 +0,0 @@
-#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-0x8
-[ ]+c:[ ]+c8000190[ ]+shori 0,r25
-[ ]+c:[ ]+R_SH_IMM_LOW16_PCREL foo-0x4
-[ ]+10:[ ]+6bf56440[ ]+ptrel/u r25,tr4
-[ ]+14:[ ]+cc000190[ ]+movi 0,r25
-[ ]+14:[ ]+R_SH_IMM_MEDLOW16_PCREL bar-0x8
-[ ]+18:[ ]+c8000190[ ]+shori 0,r25
-[ ]+18:[ ]+R_SH_IMM_LOW16_PCREL bar-0x4
-[ ]+1c:[ ]+6bf56630[ ]+ptrel/l r25,tr3
-[ ]+20:[ ]+cc00a820[ ]+movi 42,r2
-[ ]+24:[ ]+ebffde20[ ]+pta/l 0 <start>,tr2
diff --git a/gas/testsuite/gas/sh/sh64/case-1.s b/gas/testsuite/gas/sh/sh64/case-1.s
deleted file mode 100644
index b9757bc..0000000
--- a/gas/testsuite/gas/sh/sh64/case-1.s
+++ /dev/null
@@ -1,12 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/case-noexp-1.d b/gas/testsuite/gas/sh/sh64/case-noexp-1.d
deleted file mode 100644
index 589dd9d..0000000
--- a/gas/testsuite/gas/sh/sh64/case-noexp-1.d
+++ /dev/null
@@ -1,18 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/crange1-1.d b/gas/testsuite/gas/sh/sh64/crange1-1.d
deleted file mode 100644
index 3e97b9a..0000000
--- a/gas/testsuite/gas/sh/sh64/crange1-1.d
+++ /dev/null
@@ -1,104 +0,0 @@
-#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 \.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 0000001c 00010000 00080000 .*
- 0060 000c0001 00000018 0000000e 00020000 .*
- 0070 003c0000 00800002 0000017c 00000154 .*
- 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 000000b3 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 0000007e .*
-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 cc0112e0 .*
- 0160 6ff0fff0 00000000 00000000 00000000 .*
- 0170 00000000 00000000 00000044 0009e00e .*
- 0180 00090009 890a0009 00090009 00090009 .*
- 0190 00090009 00090009 00090009 00090000 .*
- 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 00000152 .*
diff --git a/gas/testsuite/gas/sh/sh64/crange1-2.d b/gas/testsuite/gas/sh/sh64/crange1-2.d
deleted file mode 100644
index 1bd8321..0000000
--- a/gas/testsuite/gas/sh/sh64/crange1-2.d
+++ /dev/null
@@ -1,108 +0,0 @@
-#as: --abi=32 --isa=SHcompact -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 \.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 0000001c 00010000 .*
- 0070 017c0000 00220002 00000008 0000000c .*
- 0080 00010000 00180000 000e0002 0000004e .*
- 0090 0000006e 00010000 019e0000 01320001 .*
-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 000000b3 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 0000007e .*
-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 cc0112e0 .*
- 0160 6ff0fff0 00000000 00000000 00000000 .*
- 0170 00000000 00000000 00000044 0009e00e .*
- 0180 00090009 890a0009 00090009 00090009 .*
- 0190 00090009 00090009 00090009 00090000 .*
- 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 00000152 .*
diff --git a/gas/testsuite/gas/sh/sh64/crange1.s b/gas/testsuite/gas/sh/sh64/crange1.s
deleted file mode 100644
index bbd4012..0000000
--- a/gas/testsuite/gas/sh/sh64/crange1.s
+++ /dev/null
@@ -1,210 +0,0 @@
-! 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 102,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 20,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 298,0
- .long 0
-mediapoollabel4:
- .long mediapoolend4-compact4
-mediapoolend4:
diff --git a/gas/testsuite/gas/sh/sh64/crange2-1.d b/gas/testsuite/gas/sh/sh64/crange2-1.d
deleted file mode 100644
index c60d7e0..0000000
--- a/gas/testsuite/gas/sh/sh64/crange2-1.d
+++ /dev/null
@@ -1,43 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/crange2-2.d b/gas/testsuite/gas/sh/sh64/crange2-2.d
deleted file mode 100644
index 89fc49c..0000000
--- a/gas/testsuite/gas/sh/sh64/crange2-2.d
+++ /dev/null
@@ -1,22 +0,0 @@
-#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 .cranges:
- 0000 00000000 00000010 00030000 00100000 .*
- 0010 00140002 00000024 0000000c 0003 .*
diff --git a/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d b/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d
deleted file mode 100644
index cad9f38..0000000
--- a/gas/testsuite/gas/sh/sh64/crange2-noexp-1.d
+++ /dev/null
@@ -1,43 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/crange2.s b/gas/testsuite/gas/sh/sh64/crange2.s
deleted file mode 100644
index 6fbebc3..0000000
--- a/gas/testsuite/gas/sh/sh64/crange2.s
+++ /dev/null
@@ -1,34 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/crange3-1.d b/gas/testsuite/gas/sh/sh64/crange3-1.d
deleted file mode 100644
index d7ddb0b..0000000
--- a/gas/testsuite/gas/sh/sh64/crange3-1.d
+++ /dev/null
@@ -1,24 +0,0 @@
-#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 \.rodata:
- 0000 abcdef01 12345678 .*
-Contents of section \.cranges:
- 0000 00000000 00000010 00030000 00100000 .*
- 0010 00100001 00000020 00000014 0003 .*
diff --git a/gas/testsuite/gas/sh/sh64/crange3.s b/gas/testsuite/gas/sh/sh64/crange3.s
deleted file mode 100644
index 23ef76e..0000000
--- a/gas/testsuite/gas/sh/sh64/crange3.s
+++ /dev/null
@@ -1,34 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/crange4-1.d b/gas/testsuite/gas/sh/sh64/crange4-1.d
deleted file mode 100644
index e31d530..0000000
--- a/gas/testsuite/gas/sh/sh64/crange4-1.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#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 \.cranges:
- 0000 00000000 00000004 00030000 00040000 .*
- 0010 00140001 .*
diff --git a/gas/testsuite/gas/sh/sh64/crange4.s b/gas/testsuite/gas/sh/sh64/crange4.s
deleted file mode 100644
index 5eaeb79..0000000
--- a/gas/testsuite/gas/sh/sh64/crange4.s
+++ /dev/null
@@ -1,8 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/crange5-1.d b/gas/testsuite/gas/sh/sh64/crange5-1.d
deleted file mode 100644
index 1c58522..0000000
--- a/gas/testsuite/gas/sh/sh64/crange5-1.d
+++ /dev/null
@@ -1,12 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/crange5.s b/gas/testsuite/gas/sh/sh64/crange5.s
deleted file mode 100644
index 7644f1c..0000000
--- a/gas/testsuite/gas/sh/sh64/crange5.s
+++ /dev/null
@@ -1,26 +0,0 @@
-! 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
-
diff --git a/gas/testsuite/gas/sh/sh64/creg-1.d b/gas/testsuite/gas/sh/sh64/creg-1.d
deleted file mode 100644
index 52fce6f..0000000
--- a/gas/testsuite/gas/sh/sh64/creg-1.d
+++ /dev/null
@@ -1,77 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/creg-1.s b/gas/testsuite/gas/sh/sh64/creg-1.s
deleted file mode 100644
index 775f211..0000000
--- a/gas/testsuite/gas/sh/sh64/creg-1.s
+++ /dev/null
@@ -1,79 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/creg-2.d b/gas/testsuite/gas/sh/sh64/creg-2.d
deleted file mode 100644
index 2de2735..0000000
--- a/gas/testsuite/gas/sh/sh64/creg-2.d
+++ /dev/null
@@ -1,17 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/creg-2.s b/gas/testsuite/gas/sh/sh64/creg-2.s
deleted file mode 100644
index fdfe46e..0000000
--- a/gas/testsuite/gas/sh/sh64/creg-2.s
+++ /dev/null
@@ -1,14 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/datal-1.s b/gas/testsuite/gas/sh/sh64/datal-1.s
deleted file mode 100644
index 074cf7a..0000000
--- a/gas/testsuite/gas/sh/sh64/datal-1.s
+++ /dev/null
@@ -1,41 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/datal-2.d b/gas/testsuite/gas/sh/sh64/datal-2.d
deleted file mode 100644
index ec9794d..0000000
--- a/gas/testsuite/gas/sh/sh64/datal-2.d
+++ /dev/null
@@ -1,44 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/datal-2.s b/gas/testsuite/gas/sh/sh64/datal-2.s
deleted file mode 100644
index 4aeb25b..0000000
--- a/gas/testsuite/gas/sh/sh64/datal-2.s
+++ /dev/null
@@ -1,46 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/datal-3.s b/gas/testsuite/gas/sh/sh64/datal-3.s
deleted file mode 100644
index 2583a22..0000000
--- a/gas/testsuite/gas/sh/sh64/datal-3.s
+++ /dev/null
@@ -1,48 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/datal32-1.d b/gas/testsuite/gas/sh/sh64/datal32-1.d
deleted file mode 100644
index 2a546c3..0000000
--- a/gas/testsuite/gas/sh/sh64/datal32-1.d
+++ /dev/null
@@ -1,45 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/datal32-3.d b/gas/testsuite/gas/sh/sh64/datal32-3.d
deleted file mode 100644
index a1e3a3c..0000000
--- a/gas/testsuite/gas/sh/sh64/datal32-3.d
+++ /dev/null
@@ -1,94 +0,0 @@
-#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\*\*2
- CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
-SYMBOL TABLE:
-0+ l d \.text 0+ (|\.text)
-0+ l d \.data 0+ (|\.data)
-0+ l d \.bss 0+ (|\.bss)
-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+ (|\.rodata)
-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 \.rodata:
- 0000 00000048 00000088 00000008 00000020 .*
diff --git a/gas/testsuite/gas/sh/sh64/datal64-1.d b/gas/testsuite/gas/sh/sh64/datal64-1.d
deleted file mode 100644
index 247ba80..0000000
--- a/gas/testsuite/gas/sh/sh64/datal64-1.d
+++ /dev/null
@@ -1,50 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/datal64-3.d b/gas/testsuite/gas/sh/sh64/datal64-3.d
deleted file mode 100644
index a6e8129..0000000
--- a/gas/testsuite/gas/sh/sh64/datal64-3.d
+++ /dev/null
@@ -1,123 +0,0 @@
-#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\*\*2
- CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
-SYMBOL TABLE:
-0+ l d \.text 0+ (|\.text)
-0+ l d \.data 0+ (|\.data)
-0+ l d \.bss 0+ (|\.bss)
-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+ (|\.rodata)
-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 \.rodata:
- 0000 00000088 000000d0 00000008 00000020 .*
diff --git a/gas/testsuite/gas/sh/sh64/eh-1.d b/gas/testsuite/gas/sh/sh64/eh-1.d
deleted file mode 100644
index da267e3..0000000
--- a/gas/testsuite/gas/sh/sh64/eh-1.d
+++ /dev/null
@@ -1,14 +0,0 @@
-#as: --abi=32 --isa=shmedia
-#objdump: -sr
-#source: eh-1.s
-#name: PR gas/6043
-
-.*: file format .*-sh64.*
-
-RELOCATION RECORDS FOR \[\.eh_frame\]:
-OFFSET *TYPE *VALUE
-00000000 R_SH_64_PCREL \.text\+0x00000005
-
-
-Contents of section .eh_frame:
- 0000 00000000 00000000 .*
diff --git a/gas/testsuite/gas/sh/sh64/eh-1.s b/gas/testsuite/gas/sh/sh64/eh-1.s
deleted file mode 100644
index c1cc672..0000000
--- a/gas/testsuite/gas/sh/sh64/eh-1.s
+++ /dev/null
@@ -1,7 +0,0 @@
-! PR gas/6043
-
- .text
-.LFB1:
- .section .eh_frame,"a",@progbits
-.LASFDE1:
- .uaquad .LFB1-.
diff --git a/gas/testsuite/gas/sh/sh64/endian-1.d b/gas/testsuite/gas/sh/sh64/endian-1.d
deleted file mode 100644
index 3d2ca8e..0000000
--- a/gas/testsuite/gas/sh/sh64/endian-1.d
+++ /dev/null
@@ -1,9 +0,0 @@
-#as: --isa=shmedia --abi=64 --no-exp -little
-#objdump: -s
-#name: SH64 Little Endian
-
-.*: file format elf64-sh64.*
-
-Contents of section .text:
- 0000 00d048cc 78563412 34120000.*
-
diff --git a/gas/testsuite/gas/sh/sh64/endian-1.s b/gas/testsuite/gas/sh/sh64/endian-1.s
deleted file mode 100644
index 79bc9e4..0000000
--- a/gas/testsuite/gas/sh/sh64/endian-1.s
+++ /dev/null
@@ -1,7 +0,0 @@
- .text
- .mode shmedia
-start:
-
- movi 0x1234,r0
- .long 0x12345678
- .word 0x1234, 0
diff --git a/gas/testsuite/gas/sh/sh64/endian-2.d b/gas/testsuite/gas/sh/sh64/endian-2.d
deleted file mode 100644
index 7f6d265..0000000
--- a/gas/testsuite/gas/sh/sh64/endian-2.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#as: --isa=shmedia --abi=64 --no-exp -big
-#objdump: -s
-#name: SH64 Big Endian
-
-.*: file format elf64-sh64.*
-
-Contents of section .text:
- 0000 cc48d000 12345678 12340000.*
-
-
diff --git a/gas/testsuite/gas/sh/sh64/endian-2.s b/gas/testsuite/gas/sh/sh64/endian-2.s
deleted file mode 100644
index 79bc9e4..0000000
--- a/gas/testsuite/gas/sh/sh64/endian-2.s
+++ /dev/null
@@ -1,7 +0,0 @@
- .text
- .mode shmedia
-start:
-
- movi 0x1234,r0
- .long 0x12345678
- .word 0x1234, 0
diff --git a/gas/testsuite/gas/sh/sh64/err-1.s b/gas/testsuite/gas/sh/sh64/err-1.s
deleted file mode 100644
index 4e23c4f..0000000
--- a/gas/testsuite/gas/sh/sh64/err-1.s
+++ /dev/null
@@ -1,47 +0,0 @@
-! { 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" }
diff --git a/gas/testsuite/gas/sh/sh64/err-2.s b/gas/testsuite/gas/sh/sh64/err-2.s
deleted file mode 100644
index 8078a3b..0000000
--- a/gas/testsuite/gas/sh/sh64/err-2.s
+++ /dev/null
@@ -1,16 +0,0 @@
-! { 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" }
-
diff --git a/gas/testsuite/gas/sh/sh64/err-3.s b/gas/testsuite/gas/sh/sh64/err-3.s
deleted file mode 100644
index dd1a88c..0000000
--- a/gas/testsuite/gas/sh/sh64/err-3.s
+++ /dev/null
@@ -1,36 +0,0 @@
-! { 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
diff --git a/gas/testsuite/gas/sh/sh64/err-4.s b/gas/testsuite/gas/sh/sh64/err-4.s
deleted file mode 100644
index 2bd72f1..0000000
--- a/gas/testsuite/gas/sh/sh64/err-4.s
+++ /dev/null
@@ -1,27 +0,0 @@
-! { 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
diff --git a/gas/testsuite/gas/sh/sh64/err-abi-32.s b/gas/testsuite/gas/sh/sh64/err-abi-32.s
deleted file mode 100644
index 400a262..0000000
--- a/gas/testsuite/gas/sh/sh64/err-abi-32.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-abi-64.s b/gas/testsuite/gas/sh/sh64/err-abi-64.s
deleted file mode 100644
index 3e136d2..0000000
--- a/gas/testsuite/gas/sh/sh64/err-abi-64.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-dsp.s b/gas/testsuite/gas/sh/sh64/err-dsp.s
deleted file mode 100644
index 3cee009..0000000
--- a/gas/testsuite/gas/sh/sh64/err-dsp.s
+++ /dev/null
@@ -1,15 +0,0 @@
-! 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 "opcode not valid for this cpu variant" }
- lds r4,a0 ! { dg-error "invalid operands" }
diff --git a/gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s b/gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s
deleted file mode 100644
index 50374f9..0000000
--- a/gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s
+++ /dev/null
@@ -1,24 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s b/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s
deleted file mode 100644
index 20190c2..0000000
--- a/gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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-*-elf* } 0 }
-
- .text
-start:
- nop
diff --git a/gas/testsuite/gas/sh/sh64/err-pt-1.s b/gas/testsuite/gas/sh/sh64/err-pt-1.s
deleted file mode 100644
index c8a50a8..0000000
--- a/gas/testsuite/gas/sh/sh64/err-pt-1.s
+++ /dev/null
@@ -1,18 +0,0 @@
-! 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" }
diff --git a/gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s b/gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s
deleted file mode 100644
index d92f62f..0000000
--- a/gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s b/gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s
deleted file mode 100644
index f75f3c8..0000000
--- a/gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s b/gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s
deleted file mode 100644
index d64cc44..0000000
--- a/gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-ptb-1.s b/gas/testsuite/gas/sh/sh64/err-ptb-1.s
deleted file mode 100644
index 7c881bd..0000000
--- a/gas/testsuite/gas/sh/sh64/err-ptb-1.s
+++ /dev/null
@@ -1,34 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err-ptb-2.s b/gas/testsuite/gas/sh/sh64/err-ptb-2.s
deleted file mode 100644
index 216e434..0000000
--- a/gas/testsuite/gas/sh/sh64/err-ptb-2.s
+++ /dev/null
@@ -1,34 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/err.exp b/gas/testsuite/gas/sh/sh64/err.exp
deleted file mode 100644
index 22a5251..0000000
--- a/gas/testsuite/gas/sh/sh64/err.exp
+++ /dev/null
@@ -1,9 +0,0 @@
-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
diff --git a/gas/testsuite/gas/sh/sh64/immexpr1.s b/gas/testsuite/gas/sh/sh64/immexpr1.s
deleted file mode 100644
index 31060a12d..0000000
--- a/gas/testsuite/gas/sh/sh64/immexpr1.s
+++ /dev/null
@@ -1,85 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/immexpr2.s b/gas/testsuite/gas/sh/sh64/immexpr2.s
deleted file mode 100644
index 2eeda98..0000000
--- a/gas/testsuite/gas/sh/sh64/immexpr2.s
+++ /dev/null
@@ -1,16 +0,0 @@
-! 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:
-
diff --git a/gas/testsuite/gas/sh/sh64/immexpr32-1.d b/gas/testsuite/gas/sh/sh64/immexpr32-1.d
deleted file mode 100644
index f27b602..0000000
--- a/gas/testsuite/gas/sh/sh64/immexpr32-1.d
+++ /dev/null
@@ -1,67 +0,0 @@
-#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
-[ ]\.\.\.
diff --git a/gas/testsuite/gas/sh/sh64/immexpr32-2.d b/gas/testsuite/gas/sh/sh64/immexpr32-2.d
deleted file mode 100644
index 3073ae9..0000000
--- a/gas/testsuite/gas/sh/sh64/immexpr32-2.d
+++ /dev/null
@@ -1,11 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/immexpr64-1.d b/gas/testsuite/gas/sh/sh64/immexpr64-1.d
deleted file mode 100644
index 118bf02..0000000
--- a/gas/testsuite/gas/sh/sh64/immexpr64-1.d
+++ /dev/null
@@ -1,68 +0,0 @@
-#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
-[ ]\.\.\.
-
diff --git a/gas/testsuite/gas/sh/sh64/immexpr64-2.d b/gas/testsuite/gas/sh/sh64/immexpr64-2.d
deleted file mode 100644
index eff3faa..0000000
--- a/gas/testsuite/gas/sh/sh64/immexpr64-2.d
+++ /dev/null
@@ -1,11 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/lineno.d b/gas/testsuite/gas/sh/sh64/lineno.d
deleted file mode 100644
index f2bb155..0000000
--- a/gas/testsuite/gas/sh/sh64/lineno.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#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[ ]*
diff --git a/gas/testsuite/gas/sh/sh64/lineno.s b/gas/testsuite/gas/sh/sh64/lineno.s
deleted file mode 100644
index 3804976..0000000
--- a/gas/testsuite/gas/sh/sh64/lineno.s
+++ /dev/null
@@ -1,7 +0,0 @@
- .text
-
-start:
- movi 1,r1
- movi 100000,r1
- nop
- nop
diff --git a/gas/testsuite/gas/sh/sh64/localcom-1.d b/gas/testsuite/gas/sh/sh64/localcom-1.d
deleted file mode 100644
index 83a91b0..0000000
--- a/gas/testsuite/gas/sh/sh64/localcom-1.d
+++ /dev/null
@@ -1,30 +0,0 @@
-#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+ (|\.text)
-0+0 l d \.data 0+ (|\.data)
-0+0 l d \.bss 0+ (|\.bss)
-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 12340009 .*
-
diff --git a/gas/testsuite/gas/sh/sh64/localcom-1.s b/gas/testsuite/gas/sh/sh64/localcom-1.s
deleted file mode 100644
index 53295d6..0000000
--- a/gas/testsuite/gas/sh/sh64/localcom-1.s
+++ /dev/null
@@ -1,26 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/mix-1.d b/gas/testsuite/gas/sh/sh64/mix-1.d
deleted file mode 100644
index 45fbefb..0000000
--- a/gas/testsuite/gas/sh/sh64/mix-1.d
+++ /dev/null
@@ -1,42 +0,0 @@
-#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-0x2
-[ ]+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-0x4
-[ ]+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
diff --git a/gas/testsuite/gas/sh/sh64/mix-1.s b/gas/testsuite/gas/sh/sh64/mix-1.s
deleted file mode 100644
index 03b96eb..0000000
--- a/gas/testsuite/gas/sh/sh64/mix-1.s
+++ /dev/null
@@ -1,21 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/mix-noexp-1.d b/gas/testsuite/gas/sh/sh64/mix-noexp-1.d
deleted file mode 100644
index 9759f66..0000000
--- a/gas/testsuite/gas/sh/sh64/mix-noexp-1.d
+++ /dev/null
@@ -1,33 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi-1.s b/gas/testsuite/gas/sh/sh64/movi-1.s
deleted file mode 100644
index 7268548..0000000
--- a/gas/testsuite/gas/sh/sh64/movi-1.s
+++ /dev/null
@@ -1,20 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/movi-2.s b/gas/testsuite/gas/sh/sh64/movi-2.s
deleted file mode 100644
index 222cec6..0000000
--- a/gas/testsuite/gas/sh/sh64/movi-2.s
+++ /dev/null
@@ -1,28 +0,0 @@
-! 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
-
diff --git a/gas/testsuite/gas/sh/sh64/movi-3.d b/gas/testsuite/gas/sh/sh64/movi-3.d
deleted file mode 100644
index 2cd4a71..0000000
--- a/gas/testsuite/gas/sh/sh64/movi-3.d
+++ /dev/null
@@ -1,18 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi-3.s b/gas/testsuite/gas/sh/sh64/movi-3.s
deleted file mode 100644
index b301001..0000000
--- a/gas/testsuite/gas/sh/sh64/movi-3.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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:
diff --git a/gas/testsuite/gas/sh/sh64/movi32-1.d b/gas/testsuite/gas/sh/sh64/movi32-1.d
deleted file mode 100644
index df515c5..0000000
--- a/gas/testsuite/gas/sh/sh64/movi32-1.d
+++ /dev/null
@@ -1,35 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi32-2.d b/gas/testsuite/gas/sh/sh64/movi32-2.d
deleted file mode 100644
index a539c23..0000000
--- a/gas/testsuite/gas/sh/sh64/movi32-2.d
+++ /dev/null
@@ -1,36 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d b/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d
deleted file mode 100644
index 1771bca..0000000
--- a/gas/testsuite/gas/sh/sh64/movi32-noexp-2.d
+++ /dev/null
@@ -1,28 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi64-1.d b/gas/testsuite/gas/sh/sh64/movi64-1.d
deleted file mode 100644
index 680b803..0000000
--- a/gas/testsuite/gas/sh/sh64/movi64-1.d
+++ /dev/null
@@ -1,44 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi64-2.d b/gas/testsuite/gas/sh/sh64/movi64-2.d
deleted file mode 100644
index 980abfa..0000000
--- a/gas/testsuite/gas/sh/sh64/movi64-2.d
+++ /dev/null
@@ -1,30 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi64-2.s b/gas/testsuite/gas/sh/sh64/movi64-2.s
deleted file mode 100644
index 607e17f..0000000
--- a/gas/testsuite/gas/sh/sh64/movi64-2.s
+++ /dev/null
@@ -1,10 +0,0 @@
-! 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?
-
diff --git a/gas/testsuite/gas/sh/sh64/movi64-3.d b/gas/testsuite/gas/sh/sh64/movi64-3.d
deleted file mode 100644
index 94236ec..0000000
--- a/gas/testsuite/gas/sh/sh64/movi64-3.d
+++ /dev/null
@@ -1,52 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d b/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d
deleted file mode 100644
index 62fc24e..0000000
--- a/gas/testsuite/gas/sh/sh64/movi64-noexp-2.d
+++ /dev/null
@@ -1,28 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/pt-1.d b/gas/testsuite/gas/sh/sh64/pt-1.d
deleted file mode 100644
index 1040f8b..0000000
--- a/gas/testsuite/gas/sh/sh64/pt-1.d
+++ /dev/null
@@ -1,26 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/pt-1.s b/gas/testsuite/gas/sh/sh64/pt-1.s
deleted file mode 100644
index cf5cd70..0000000
--- a/gas/testsuite/gas/sh/sh64/pt-1.s
+++ /dev/null
@@ -1,17 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/pt-2.s b/gas/testsuite/gas/sh/sh64/pt-2.s
deleted file mode 100644
index b9b6597..0000000
--- a/gas/testsuite/gas/sh/sh64/pt-2.s
+++ /dev/null
@@ -1,22 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/pt-noexp-1.d b/gas/testsuite/gas/sh/sh64/pt-noexp-1.d
deleted file mode 100644
index 5050763..0000000
--- a/gas/testsuite/gas/sh/sh64/pt-noexp-1.d
+++ /dev/null
@@ -1,27 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/pt32-1.d b/gas/testsuite/gas/sh/sh64/pt32-1.d
deleted file mode 100644
index 0b738a7..0000000
--- a/gas/testsuite/gas/sh/sh64/pt32-1.d
+++ /dev/null
@@ -1,39 +0,0 @@
-#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-0x3
-[ ]+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
diff --git a/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d b/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d
deleted file mode 100644
index 54bf4c9..0000000
--- a/gas/testsuite/gas/sh/sh64/pt32-noexp-2.d
+++ /dev/null
@@ -1,34 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/pt64-1.d b/gas/testsuite/gas/sh/sh64/pt64-1.d
deleted file mode 100644
index b0b61ca..0000000
--- a/gas/testsuite/gas/sh/sh64/pt64-1.d
+++ /dev/null
@@ -1,47 +0,0 @@
-#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-0xb
-[ ]+14:[ ]+c8000190[ ]+shori 0,r25
-[ ]+14:[ ]+R_SH_IMM_MEDHI16_PCREL \.text\.other-0x7
-[ ]+18:[ ]+c8000190[ ]+shori 0,r25
-[ ]+18:[ ]+R_SH_IMM_MEDLOW16_PCREL \.text\.other-0x3
-[ ]+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-0x7
-[ ]+10:[ ]+c8000190[ ]+shori 0,r25
-[ ]+10:[ ]+R_SH_IMM_MEDHI16_PCREL \.text-0x3
-[ ]+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
diff --git a/gas/testsuite/gas/sh/sh64/pt64-32-1.d b/gas/testsuite/gas/sh/sh64/pt64-32-1.d
deleted file mode 100644
index 1094516..0000000
--- a/gas/testsuite/gas/sh/sh64/pt64-32-1.d
+++ /dev/null
@@ -1,27 +0,0 @@
-#as: --isa=shmedia --abi=64 -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
diff --git a/gas/testsuite/gas/sh/sh64/pt64-32-2.d b/gas/testsuite/gas/sh/sh64/pt64-32-2.d
deleted file mode 100644
index 096f4eb..0000000
--- a/gas/testsuite/gas/sh/sh64/pt64-32-2.d
+++ /dev/null
@@ -1,39 +0,0 @@
-#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-0x3
-[ ]+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
diff --git a/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d b/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d
deleted file mode 100644
index 7a8d1d5..0000000
--- a/gas/testsuite/gas/sh/sh64/pt64-noexp-2.d
+++ /dev/null
@@ -1,34 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptc-1.s b/gas/testsuite/gas/sh/sh64/ptc-1.s
deleted file mode 100644
index d6199fd..0000000
--- a/gas/testsuite/gas/sh/sh64/ptc-1.s
+++ /dev/null
@@ -1,5 +0,0 @@
-! Check that simple constants get expected results.
- .mode SHmedia
- .text
-start:
- pta 0x100, tr1
diff --git a/gas/testsuite/gas/sh/sh64/ptc32-1.d b/gas/testsuite/gas/sh/sh64/ptc32-1.d
deleted file mode 100644
index 579fadb..0000000
--- a/gas/testsuite/gas/sh/sh64/ptc32-1.d
+++ /dev/null
@@ -1,15 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d b/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d
deleted file mode 100644
index 977277d..0000000
--- a/gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d
+++ /dev/null
@@ -1,12 +0,0 @@
-#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 <start\+0x4>,tr1
-[ ]+0:[ ]+R_SH_PT_16 \*ABS\*\+0x100
diff --git a/gas/testsuite/gas/sh/sh64/ptc64-1.d b/gas/testsuite/gas/sh/sh64/ptc64-1.d
deleted file mode 100644
index 0ba58cc..0000000
--- a/gas/testsuite/gas/sh/sh64/ptc64-1.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptc64-32-1.d b/gas/testsuite/gas/sh/sh64/ptc64-32-1.d
deleted file mode 100644
index 1337cd4..0000000
--- a/gas/testsuite/gas/sh/sh64/ptc64-32-1.d
+++ /dev/null
@@ -1,15 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d b/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d
deleted file mode 100644
index 325e57c..0000000
--- a/gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d
+++ /dev/null
@@ -1,13 +0,0 @@
-#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 <start\+0x4>,tr1
-[ ]+0:[ ]+R_SH_PT_16 \*ABS\*\+0x100
-
diff --git a/gas/testsuite/gas/sh/sh64/ptext-1.s b/gas/testsuite/gas/sh/sh64/ptext-1.s
deleted file mode 100644
index 794d0f5..0000000
--- a/gas/testsuite/gas/sh/sh64/ptext-1.s
+++ /dev/null
@@ -1,8 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/ptext32-1.d b/gas/testsuite/gas/sh/sh64/ptext32-1.d
deleted file mode 100644
index 834e9cd..0000000
--- a/gas/testsuite/gas/sh/sh64/ptext32-1.d
+++ /dev/null
@@ -1,40 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d b/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d
deleted file mode 100644
index a5dbdf4..0000000
--- a/gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d
+++ /dev/null
@@ -1,22 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptext64-1.d b/gas/testsuite/gas/sh/sh64/ptext64-1.d
deleted file mode 100644
index 8b99d5d..0000000
--- a/gas/testsuite/gas/sh/sh64/ptext64-1.d
+++ /dev/null
@@ -1,64 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptext64-32-1.d b/gas/testsuite/gas/sh/sh64/ptext64-32-1.d
deleted file mode 100644
index d4d17e2..0000000
--- a/gas/testsuite/gas/sh/sh64/ptext64-32-1.d
+++ /dev/null
@@ -1,40 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d b/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d
deleted file mode 100644
index 8a8daab..0000000
--- a/gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d
+++ /dev/null
@@ -1,22 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/rel-1.s b/gas/testsuite/gas/sh/sh64/rel-1.s
deleted file mode 100644
index c402ecd..0000000
--- a/gas/testsuite/gas/sh/sh64/rel-1.s
+++ /dev/null
@@ -1,137 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/rel-2.s b/gas/testsuite/gas/sh/sh64/rel-2.s
deleted file mode 100644
index 798cf41..0000000
--- a/gas/testsuite/gas/sh/sh64/rel-2.s
+++ /dev/null
@@ -1,138 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/rel-3.s b/gas/testsuite/gas/sh/sh64/rel-3.s
deleted file mode 100644
index de60beb..0000000
--- a/gas/testsuite/gas/sh/sh64/rel-3.s
+++ /dev/null
@@ -1,137 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/rel-4.s b/gas/testsuite/gas/sh/sh64/rel-4.s
deleted file mode 100644
index 411cb0a..0000000
--- a/gas/testsuite/gas/sh/sh64/rel-4.s
+++ /dev/null
@@ -1,138 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/rel-5.s b/gas/testsuite/gas/sh/sh64/rel-5.s
deleted file mode 100644
index 053c237..0000000
--- a/gas/testsuite/gas/sh/sh64/rel-5.s
+++ /dev/null
@@ -1,48 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/rel32-1.d b/gas/testsuite/gas/sh/sh64/rel32-1.d
deleted file mode 100644
index 68ecc22..0000000
--- a/gas/testsuite/gas/sh/sh64/rel32-1.d
+++ /dev/null
@@ -1,86 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel32-2.d b/gas/testsuite/gas/sh/sh64/rel32-2.d
deleted file mode 100644
index 314f2ca..0000000
--- a/gas/testsuite/gas/sh/sh64/rel32-2.d
+++ /dev/null
@@ -1,86 +0,0 @@
-#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-0x0+1
-0+5c R_SH_IMM_LOW16_PCREL extern3-0x0+1
-0+60 R_SH_IMM_MEDLOW16_PCREL extern4-0x0+1
-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-0x0+1
-0+84 R_SH_IMM_LOW16_PCREL gdata3-0x0+1
-0+88 R_SH_IMM_MEDLOW16_PCREL gdata4-0x0+1
-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-0x0+1
-0+ac R_SH_IMM_LOW16_PCREL gothertext3-0x0+1
-0+b0 R_SH_IMM_MEDLOW16_PCREL gothertext4-0x0+1
-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-0x0+1
-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-0x0+1
-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-0x0+1
-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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel32-3.d b/gas/testsuite/gas/sh/sh64/rel32-3.d
deleted file mode 100644
index aba5683..0000000
--- a/gas/testsuite/gas/sh/sh64/rel32-3.d
+++ /dev/null
@@ -1,86 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel32-4.d b/gas/testsuite/gas/sh/sh64/rel32-4.d
deleted file mode 100644
index 29d716a..0000000
--- a/gas/testsuite/gas/sh/sh64/rel32-4.d
+++ /dev/null
@@ -1,86 +0,0 @@
-#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-0x0+1
-0+5c R_SH_IMM_LOW16_PCREL extern3-0x0+1
-0+60 R_SH_IMM_MEDLOW16_PCREL extern4-0x0+1
-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-0x0+1
-0+84 R_SH_IMM_LOW16_PCREL gdata3-0x0+1
-0+88 R_SH_IMM_MEDLOW16_PCREL gdata4-0x0+1
-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-0x0+1
-0+ac R_SH_IMM_LOW16_PCREL gothertext3-0x0+1
-0+b0 R_SH_IMM_MEDLOW16_PCREL gothertext4-0x0+1
-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-0x0+1
-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-0x0+1
-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-0x0+1
-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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel32-5.d b/gas/testsuite/gas/sh/sh64/rel32-5.d
deleted file mode 100644
index 7472013..0000000
--- a/gas/testsuite/gas/sh/sh64/rel32-5.d
+++ /dev/null
@@ -1,30 +0,0 @@
-#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 .*
-
diff --git a/gas/testsuite/gas/sh/sh64/rel64-1.d b/gas/testsuite/gas/sh/sh64/rel64-1.d
deleted file mode 100644
index 7e9b638..0000000
--- a/gas/testsuite/gas/sh/sh64/rel64-1.d
+++ /dev/null
@@ -1,111 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel64-2.d b/gas/testsuite/gas/sh/sh64/rel64-2.d
deleted file mode 100644
index 7d5ca54..0000000
--- a/gas/testsuite/gas/sh/sh64/rel64-2.d
+++ /dev/null
@@ -1,111 +0,0 @@
-#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-0x0+1
-0+84 R_SH_IMM_LOW16_PCREL extern3-0x0+1
-0+88 R_SH_IMM_MEDLOW16_PCREL extern4-0x0+1
-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-0x0+1
-0+bc R_SH_IMM_LOW16_PCREL gdata3-0x0+1
-0+c0 R_SH_IMM_MEDLOW16_PCREL gdata4-0x0+1
-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-0x0+1
-0+f4 R_SH_IMM_LOW16_PCREL gothertext3-0x0+1
-0+f8 R_SH_IMM_MEDLOW16_PCREL gothertext4-0x0+1
-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-0x0+1
-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-0x0+1
-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-0x0+1
-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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel64-3.d b/gas/testsuite/gas/sh/sh64/rel64-3.d
deleted file mode 100644
index 986054d..0000000
--- a/gas/testsuite/gas/sh/sh64/rel64-3.d
+++ /dev/null
@@ -1,111 +0,0 @@
-#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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel64-4.d b/gas/testsuite/gas/sh/sh64/rel64-4.d
deleted file mode 100644
index 0a3e48e..0000000
--- a/gas/testsuite/gas/sh/sh64/rel64-4.d
+++ /dev/null
@@ -1,111 +0,0 @@
-#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-0x0+1
-0+84 R_SH_IMM_LOW16_PCREL extern3-0x0+1
-0+88 R_SH_IMM_MEDLOW16_PCREL extern4-0x0+1
-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-0x0+1
-0+bc R_SH_IMM_LOW16_PCREL gdata3-0x0+1
-0+c0 R_SH_IMM_MEDLOW16_PCREL gdata4-0x0+1
-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-0x0+1
-0+f4 R_SH_IMM_LOW16_PCREL gothertext3-0x0+1
-0+f8 R_SH_IMM_MEDLOW16_PCREL gothertext4-0x0+1
-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-0x0+1
-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-0x0+1
-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-0x0+1
-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 .*
diff --git a/gas/testsuite/gas/sh/sh64/rel64-5.d b/gas/testsuite/gas/sh/sh64/rel64-5.d
deleted file mode 100644
index cd7b927..0000000
--- a/gas/testsuite/gas/sh/sh64/rel64-5.d
+++ /dev/null
@@ -1,40 +0,0 @@
-#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 .*
-
diff --git a/gas/testsuite/gas/sh/sh64/relax-1.d b/gas/testsuite/gas/sh/sh64/relax-1.d
deleted file mode 100644
index 82fb4c6..0000000
--- a/gas/testsuite/gas/sh/sh64/relax-1.d
+++ /dev/null
@@ -1,30 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/relax-1.s b/gas/testsuite/gas/sh/sh64/relax-1.s
deleted file mode 100644
index 807b236..0000000
--- a/gas/testsuite/gas/sh/sh64/relax-1.s
+++ /dev/null
@@ -1,18 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/relax-2.d b/gas/testsuite/gas/sh/sh64/relax-2.d
deleted file mode 100644
index c954dd4..0000000
--- a/gas/testsuite/gas/sh/sh64/relax-2.d
+++ /dev/null
@@ -1,30 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/relax-2.s b/gas/testsuite/gas/sh/sh64/relax-2.s
deleted file mode 100644
index 9d3a323..0000000
--- a/gas/testsuite/gas/sh/sh64/relax-2.s
+++ /dev/null
@@ -1,23 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/relax-3.d b/gas/testsuite/gas/sh/sh64/relax-3.d
deleted file mode 100644
index 80dd1ae..0000000
--- a/gas/testsuite/gas/sh/sh64/relax-3.d
+++ /dev/null
@@ -1,43 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/relax-3.s b/gas/testsuite/gas/sh/sh64/relax-3.s
deleted file mode 100644
index b2ec30a..0000000
--- a/gas/testsuite/gas/sh/sh64/relax-3.s
+++ /dev/null
@@ -1,32 +0,0 @@
-! 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:
diff --git a/gas/testsuite/gas/sh/sh64/sh64.exp b/gas/testsuite/gas/sh/sh64/sh64.exp
deleted file mode 100644
index 4f19eb1..0000000
--- a/gas/testsuite/gas/sh/sh64/sh64.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (C) 2000-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# dejagnu@gnu.org
-
-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]
- }
-}
diff --git a/gas/testsuite/gas/sh/sh64/shift-1.s b/gas/testsuite/gas/sh/sh64/shift-1.s
deleted file mode 100644
index b4967c7..0000000
--- a/gas/testsuite/gas/sh/sh64/shift-1.s
+++ /dev/null
@@ -1,42 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/shift-2.s b/gas/testsuite/gas/sh/sh64/shift-2.s
deleted file mode 100644
index 082ea37..0000000
--- a/gas/testsuite/gas/sh/sh64/shift-2.s
+++ /dev/null
@@ -1,34 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/shift-3.s b/gas/testsuite/gas/sh/sh64/shift-3.s
deleted file mode 100644
index 6d9bff3..0000000
--- a/gas/testsuite/gas/sh/sh64/shift-3.s
+++ /dev/null
@@ -1,7 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/shift32-1.d b/gas/testsuite/gas/sh/sh64/shift32-1.d
deleted file mode 100644
index 7e14c21..0000000
--- a/gas/testsuite/gas/sh/sh64/shift32-1.d
+++ /dev/null
@@ -1,58 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/shift32-3.d b/gas/testsuite/gas/sh/sh64/shift32-3.d
deleted file mode 100644
index 01a0c53..0000000
--- a/gas/testsuite/gas/sh/sh64/shift32-3.d
+++ /dev/null
@@ -1,14 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d b/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d
deleted file mode 100644
index 3d8c34b..0000000
--- a/gas/testsuite/gas/sh/sh64/shift32-noexp-3.d
+++ /dev/null
@@ -1,14 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/shift64-1.d b/gas/testsuite/gas/sh/sh64/shift64-1.d
deleted file mode 100644
index a19ed35..0000000
--- a/gas/testsuite/gas/sh/sh64/shift64-1.d
+++ /dev/null
@@ -1,58 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/shift64-2.d b/gas/testsuite/gas/sh/sh64/shift64-2.d
deleted file mode 100644
index 51528c2..0000000
--- a/gas/testsuite/gas/sh/sh64/shift64-2.d
+++ /dev/null
@@ -1,42 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/shift64-3.d b/gas/testsuite/gas/sh/sh64/shift64-3.d
deleted file mode 100644
index 8d3d950..0000000
--- a/gas/testsuite/gas/sh/sh64/shift64-3.d
+++ /dev/null
@@ -1,14 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d b/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d
deleted file mode 100644
index 70ec8c5..0000000
--- a/gas/testsuite/gas/sh/sh64/shift64-noexp-3.d
+++ /dev/null
@@ -1,14 +0,0 @@
-#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
diff --git a/gas/testsuite/gas/sh/sh64/syntax-1.d b/gas/testsuite/gas/sh/sh64/syntax-1.d
deleted file mode 100644
index b483293..0000000
--- a/gas/testsuite/gas/sh/sh64/syntax-1.d
+++ /dev/null
@@ -1,157 +0,0 @@
-#as: --isa=shmedia --abi=64 --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 ! 8101
- 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 ! 5001c601
- 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
diff --git a/gas/testsuite/gas/sh/sh64/syntax-1.s b/gas/testsuite/gas/sh/sh64/syntax-1.s
deleted file mode 100644
index 43b1dd6..0000000
--- a/gas/testsuite/gas/sh/sh64/syntax-1.s
+++ /dev/null
@@ -1,199 +0,0 @@
-! 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 @(2,pc),r0
- mov.l @(4,r0),r0
- mov.l @(4,gbr),r0
- mova @(8,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
diff --git a/gas/testsuite/gas/sh/sh64/syntax-2.d b/gas/testsuite/gas/sh/sh64/syntax-2.d
deleted file mode 100644
index da90e5e..0000000
--- a/gas/testsuite/gas/sh/sh64/syntax-2.d
+++ /dev/null
@@ -1,11 +0,0 @@
-#as: --isa=shmedia --abi=64
-#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
diff --git a/gas/testsuite/gas/sh/sh64/syntax-2.s b/gas/testsuite/gas/sh/sh64/syntax-2.s
deleted file mode 100644
index 3140daa..0000000
--- a/gas/testsuite/gas/sh/sh64/syntax-2.s
+++ /dev/null
@@ -1,10 +0,0 @@
- .text
-start:
-
-! pseudo-ops
-
- pt .L4,tr0
- pt .L5,tr0
-.L4:
- .mode shcompact
-.L5:
diff --git a/gas/testsuite/gas/sh/sh64/ua-1.s b/gas/testsuite/gas/sh/sh64/ua-1.s
deleted file mode 100644
index 2a2b63e..0000000
--- a/gas/testsuite/gas/sh/sh64/ua-1.s
+++ /dev/null
@@ -1,16 +0,0 @@
-! 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
diff --git a/gas/testsuite/gas/sh/sh64/ua32-1.d b/gas/testsuite/gas/sh/sh64/ua32-1.d
deleted file mode 100644
index 879209d..0000000
--- a/gas/testsuite/gas/sh/sh64/ua32-1.d
+++ /dev/null
@@ -1,23 +0,0 @@
-#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 \.rodata:
- 0000 01234567 89abcdef 2a4a2143 b1abcd00 .*
- 0010 00000301 2c456d89 ab1d0f00 00000000 .*
- 0020 00000002 01a34b67 c9ab0d4f 0000002a .*
- 0030 00000000 00000000 .*
diff --git a/gas/testsuite/gas/sh/sh64/ua64-1.d b/gas/testsuite/gas/sh/sh64/ua64-1.d
deleted file mode 100644
index cfe3dbb..0000000
--- a/gas/testsuite/gas/sh/sh64/ua64-1.d
+++ /dev/null
@@ -1,23 +0,0 @@
-#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 \.rodata:
- 0000 01234567 89abcdef 2a4a2143 b1abcd00 .*
- 0010 00000301 2c456d89 ab1d0f00 00000000 .*
- 0020 00000002 01a34b67 c9ab0d4f 0000002a .*
- 0030 00000000 00000000 .*