binutils-gdb/ld/testsuite/ld-sh/sh64/shdl-1.s

360 lines
8.5 KiB
ArmAsm
Raw Normal View History

Contribute sh64-elf. 2002-02-02 Alexandre Oliva <aoliva@redhat.com> * ld-sh/sh64/crange3-cmpct.rd: Adjust offsets. * ld-sh/sh64/crange3-media.rd: Likewise. * ld-sh/sh64/crange3.rd: Likewise. * ld-sh/sh64/crangerel1.rd: Likewise. * ld-sh/sh64/crangerel2.rd: Likewise. * ld-sh/sh64/reldl32.rd: Likewise. * ld-sh/sh64/reldl64.rd: Likewise. 2002-01-28 Alexandre Oliva <aoliva@redhat.com> * ld-sh/sh64/abi32.xd: Formatting changes to match the current output of objdump. * ld-sh/sh64/cmpct1.xd: Likewise. * ld-sh/sh64/crange1.rd: Likewise. * ld-sh/sh64/crange2.rd: Likewise. * ld-sh/sh64/crange3-cmpct.rd: Likewise. * ld-sh/sh64/crange3-media.rd: Likewise. * ld-sh/sh64/crange3.rd: Likewise. * ld-sh/sh64/crangerel1.rd: Likewise. * ld-sh/sh64/crangerel2.rd: Likewise. * ld-sh/sh64/mix1.xd: Likewise. * ld-sh/sh64/mix2.xd: Likewise. * ld-sh/sh64/rel32.xd: Likewise. * ld-sh/sh64/reldl32.rd: Likewise. * ld-sh/sh64/reldl64.rd: Likewise. * ld-sh/sh64/sh64.exp: Likewise. Reordered cranges and stack sessions, to match changes in the linker script. 2001-06-14 Alexandre Oliva <aoliva@redhat.com> * ld-sh/sh64/reldl32.rd, ld-sh/sh64/reldl64.rd: Adjust relocation info to reflect renumbering of relocation types. 2001-03-14 DJ Delorie <dj@redhat.com> * ld-sh/sh64/endian.dbd: New file, endian tests. * ld-sh/sh64/endian.dld: Ditto. * ld-sh/sh64/endian.ld: Ditto. * ld-sh/sh64/endian.s: Ditto. * ld-sh/sh64/endian.sbd: Ditto. * ld-sh/sh64/endian.sld: Ditto. * ld-sh/sh64/sh64.exp: Add above tests. Add -L option to ld. 2001-03-12 DJ Delorie <dj@redhat.com> * ld-sh/sh64/relax.exp: New file, test disabling relaxing. * ld-sh/sh64/relax1.s: Ditto. * ld-sh/sh64/relax2.s: Ditto. * ld-sh/sh64/relax3.s: Ditto. * ld-sh/sh64/relax4.s: Ditto. * ld-sh/sh64/relfail.exp: New file, test for bogus relocs. * ld-sh/sh64/relfail.s: Ditto. 2001-03-12 DJ Delorie <dj@redhat.com> * ld-sh/sh.exp: This test isn't appropriate for SH64 since it uses SH32 assembler files. 2001-03-07 DJ Delorie <dj@redhat.com> * ld-selective/selective.exp: Pass "-e _start" for sh64 to accomodate expected start symbol in test. 2001-03-06 DJ Delorie <dj@redhat.com> * ld-scripts/crossref.exp: Pass -mshelf32 to the linker for sh64, to match what gcc passes to the linker by default. * ld-selective/selective.exp: Ditto. * ld-srec/srec.exp: Ditto, plus XFAIL for sh64. * ld-undefined/undefined.exp: Add XFAIL for sh64 (it's dwarf2). 2001-03-06 DJ Delorie <dj@redhat.com> * ld-sh/sh64/abi32.xd (stack): Adjust for new default stack layout. * ld-sh/sh64/abi64.xd (stack): Ditto. * ld-sh/sh64/cmpct1.xd (stack): Ditto. * ld-sh/sh64/crange1.rd (stack): Ditto. * ld-sh/sh64/crange2.rd (stack): Ditto. * ld-sh/sh64/crange3-cmpct.rd (stack): Ditto. * ld-sh/sh64/crange3-media.rd (stack): Ditto. * ld-sh/sh64/crange3.rd (stack): Ditto. * ld-sh/sh64/mix1.xd (stack): Ditto. * ld-sh/sh64/mix2.xd (stack): Ditto. * ld-sh/sh64/shdl32.xd (stack): Ditto. * ld-sh/sh64/shdl64.xd (stack): Ditto. 2001-01-14 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/mix1.xd: Add SORT_ENTRIES for .cranges section. * ld-sh/sh64/mix2.xd: Ditto. 2001-01-08 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/abi32.xd: Adjust for bit 0 set on an entry address being SHmedia. * ld-sh/sh64/shdl64.xd: Ditto. * ld-sh/sh64/shdl32.xd: Ditto. * ld-sh/sh64/mix2.xd: Ditto. * ld-sh/sh64/crange3-media.rd: Ditto. * ld-sh/sh64/abi64.xd: Ditto. 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/crange-2a.s (diversion2): New global symbol. * ld-sh/sh64/crange1.rd: Adjust to presence of new symbol. Adjust section type for .cranges; expect sorted contents. * ld-sh/sh64/crange2.rd: Ditto. * ld-sh/sh64/crange3.dd, ld-sh/sh64/crange3.rd: Ditto. * ld-sh/sh64/crangerel1.rd: Adjust to presence of new symbol. * ld-sh/sh64/crangerel2.rd: Ditto. * ld-sh/sh64/mix1.xd: Adjust to DEBUGGING being set for .cranges. * ld-sh/sh64/mix2.xd: Ditto. * ld-sh/sh64/crange3-cmpct.rd, ld-sh/sh64/crange3-media.rd: New tests. * ld-sh/sh64/sh64.exp: Tweak test message. Run new tests. 2001-01-05 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/shmix-1.s (start2): Add a NOP to provide a valid target for (unexpanded) PTB. Add an .align 2 to SHmedia code to keep properly aligned. * ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd: Adjust accordingly. * ld-sh/sh64/mix1-noexp.sd, ld-sh/sh64/mix2-noexp.sd, ld-sh/sh64/abixx-noexp.sd: New tests for GAS -no-expand and R_SH_PT_16 relocation. * ld-sh/sh64/sh64.exp: Run new tests. 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/crange-2f.s, ld-sh/sh64/crange-2g.s, ld-sh/sh64/crange-2h.s, ld-sh/sh64/crange-2i.s, ld-sh/sh64/crange3.dd, ld-sh/sh64/crange3.rd: New tests. * ld-sh/sh64/sh64.exp: Run new tests. * ld-sh/sh64/crange1.rd: Correct section flags. * ld-sh/sh64/crange2.rd: Ditto. * ld-sh/sh64/crangerel1.rd: Ditto. 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/crange-1.s, ld-sh/sh64/crange-2a.s, ld-sh/sh64/crange-2b.s, ld-sh/sh64/crange-2c.s, ld-sh/sh64/crange-2d.s, ld-sh/sh64/crange-2e.s, ld-sh/sh64/crange1.rd, ld-sh/sh64/crange2.rd, ld-sh/sh64/crangerel1.rd, ld-sh/sh64/crangerel2.rd: New tests for handling .cranges section. * ld-sh/sh64/sh64.exp: Run new tests. * ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd, ld-sh/sh64/mix2.sd, ld-sh/sh64/mix2.xd: Adjust for .cranges section. 2000-12-15 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/abi32.sd, ld-sh/sh64/abi32.xd, ld-sh/sh64/abi64.sd, ld-sh/sh64/abi64.xd, ld-sh/sh64/cmpct1.xd, ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd, ld-sh/sh64/mix2.sd, ld-sh/sh64/mix2.xd, ld-sh/sh64/shdl32.xd, ld-sh/sh64/shdl64.xd: Adjust to .bss and .data individually 8-byte aligned. 2000-12-09 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/rel-1.s, ld-sh/sh64/rel-2.s, ld-sh/sh64/rel32.xd, ld-sh/sh64/rel64.xd, ld-sh/sh64/reldl-1.s, ld-sh/sh64/reldl-2.s, ld-sh/sh64/reldl32.rd, ld-sh/sh64/reldl64.rd: New tests. * ld-sh/sh64/sh64.exp: Make it possible to use readelf as inspection tool. Run new tests. 2000-12-07 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/abi64.sd, ld-sh/sh64/abi32.sd, ld-sh/sh64/mix1.sd, ld-sh/sh64/mix2.sd: Correct offsets in PT/PTA/PTB expansions. * ld-sh/sh64/shdl-1.s, ld-sh/sh64/shdl-2.s, ld-sh/sh64/shdl64.sd, ld-sh/sh64/shdl64.xd, ld-sh/sh64/shdl32.xd: New tests. * ld-sh/sh64/sh64.exp: Run new tests. 2000-12-01 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/cmpct1.sd, ld-sh/sh64/cmpct1.xd, ld-sh/sh64/shcmp-1.s: New test. * ld-sh/sh64/sh64.exp: Add new test to sh64tests. Reformat. 2000-11-30 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/sh64.exp: Use linker option -mshelf64 for 64-bit ABI test. * ld-sh/sh64/abi64.xd: Tweak for 64-bit ELF. 2000-11-29 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/sh64.exp (sh64tests): Use linker option -mshelf32 for tests. 2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64/abi32.sd, ld-sh/sh64/abi64.sd: Correct MOVI registers. * ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd, ld-sh/sh64/shmix-1.s: New test. * ld-sh/sh64/mix2.sd, ld-sh/sh64/mix2.xd, ld-sh/sh64/shmix-2.s, ld-sh/sh64/shmix-3.s: New test. * ld-sh/sh64/sh64.exp: Add new tests to sh64tests. 2000-11-26 Hans-Peter Nilsson <hpn@cygnus.com> * ld-sh/sh64: New testsuite.
2002-02-08 07:50:02 +01:00
! Test inter-file DataLabel support.
!
! We need to test symbols that are:
! * Global, defined in this file, with/without/both-with-without datalabel
! references.
! * The above in combinations where the reference is/is not from within
! the same section. The implementation is currently indifferent to that
! fact, but it seems likely to be something that can change.
! * Extern with/without/both-with-without datalabel-qualified references.
! * The above with reference from same *and* other file.
! * The above in combinations for where the symbol is/is not a
! STO_SH5_ISA32-marked symbol.
! There will be omissions and overlap in combinations. Add spotted
! omissions with complementary tests in other files.
.text
.mode SHmedia
! For good measure, we start with a nop to get a non-zero offset within
! the .text section.
.global start
start:
nop
! Referenced from the same file, same section, is ISA32, only referenced
! with datalabel qualifier.
.global foo
foo:
nop
movi (datalabel foo + 8) & 65535,r30
! Referenced from same file, same section, both with and without
! datalabel qualifier, is ISA32.
.global fooboth
fooboth:
nop
movi (datalabel fooboth + 16) & 65535,r40
movi (fooboth + 12) & 65535,r40
! Same as above, but in different order.
.global fooboth2
fooboth2:
nop
movi (fooboth2 + 12) & 65535,r40
movi (datalabel fooboth2 + 16) & 65535,r40
! Referenced from this file and another, same section, is ISA32.
.global foowithout
foowithout:
nop
movi (foowithout + 24) & 65535,r30
! Same as above, different section than definition.
.global foo_other
foo_other:
nop
.global foo_otherboth
foo_otherboth:
nop
.global foo_otherboth2
foo_otherboth2:
nop
.global foo_otherwithout
foo_otherwithout:
nop
.section .rodata
.long datalabel foo_other + 4
.long datalabel foo_otherboth + 40
.long foo_otherboth + 24
.long foo_otherboth2 + 24
.long datalabel foo_otherboth2 + 40
.long foo_otherwithout
.text
! Same as above, mixing references from same and other section.
.global foo_mix
foo_mix:
nop
movi (datalabel foo_mix + 8) & 65535,r30
.global foo_mix2
foo_mix2:
nop
movi (foo_mix2 + 8) & 65535,r30
.global foo_mixboth
foo_mixboth:
nop
movi (datalabel foo_mixboth + 80) & 65535,r30
movi (foo_mixboth + 80) & 65535,r30
.global foo_mixboth2
foo_mixboth2:
nop
movi (foo_mixboth2 + 64) & 65535,r30
movi (datalabel foo_mixboth2 + 64) & 65535,r30
.global foo_mixwithout
foo_mixwithout:
nop
movi (foo_mixwithout + 42) & 65535,r30
.global foo_mixwithout2
foo_mixwithout2:
nop
movi (foo_mixwithout2 + 24) & 65535,r30
.section .rodata
.long foo_mix + 4
.long datalabel foo_mix2 + 48
.long datalabel foo_mixboth + 400
.long foo_mixboth + 420
.long foo_mixboth2 + 248
.long datalabel foo_mixboth2 + 240
.long foo_mixwithout
! Same as above, referencing symbol in other file (reference only from
! this to other file).
.text
nop
movi (datalabel bar + 8) & 65535,r30
movi (datalabel barboth + 16) & 65535,r40
movi (barboth + 12) & 65535,r40
movi (barboth2 + 12) & 65535,r40
movi (datalabel barboth2 + 16) & 65535,r40
movi (barwithout + 24) & 65535,r30
.section .rodata
.long datalabel bar_other + 4
.long datalabel bar_otherboth + 40
.long bar_otherboth + 24
.long bar_otherboth2 + 24
.long datalabel bar_otherboth2 + 40
.long bar_otherwithout
.text
movi (datalabel bar_mix + 8) & 65535,r30
movi (bar_mix2 + 8) & 65535,r30
movi (datalabel bar_mixboth + 80) & 65535,r30
movi (bar_mixboth + 80) & 65535,r30
movi (bar_mixboth2 + 64) & 65535,r30
movi (datalabel bar_mixboth2 + 64) & 65535,r30
movi (bar_mixwithout + 42) & 65535,r30
movi (bar_mixwithout2 + 24) & 65535,r30
.section .rodata
.long bar_mix + 4
.long datalabel bar_mix2 + 48
.long datalabel bar_mixboth + 400
.long bar_mixboth + 420
.long bar_mixboth2 + 248
.long datalabel bar_mixboth2 + 240
.long bar_mixwithout
! Same as above, referencing symbol in other file *and* within that file.
.text
movi (datalabel baz + 8) & 65535,r30
movi (datalabel bazboth + 16) & 65535,r40
movi (bazboth + 12) & 65535,r40
movi (bazboth2 + 12) & 65535,r40
movi (datalabel bazboth2 + 16) & 65535,r40
movi (bazwithout + 24) & 65535,r30
.section .rodata
.long datalabel baz_other + 4
.long datalabel baz_otherboth + 40
.long baz_otherboth + 24
.long baz_otherboth2 + 24
.long datalabel baz_otherboth2 + 40
.long baz_otherwithout
.text
movi (datalabel baz_mix + 8) & 65535,r30
movi (baz_mix2 + 8) & 65535,r30
movi (datalabel baz_mixboth + 80) & 65535,r30
movi (baz_mixboth + 80) & 65535,r30
movi (baz_mixboth2 + 64) & 65535,r30
movi (datalabel baz_mixboth2 + 64) & 65535,r30
movi (baz_mixwithout + 42) & 65535,r30
movi (baz_mixwithout2 + 24) & 65535,r30
.section .rodata
.long baz_mix + 4
.long datalabel baz_mix2 + 48
.long datalabel baz_mixboth + 400
.long baz_mixboth + 420
.long baz_mixboth2 + 248
.long datalabel baz_mixboth2 + 240
.long baz_mixwithout
! Same as all of the above, but where the symbol is not an ISA32 one.
.data
.global dfoo
dfoo:
.long 0
.long (datalabel dfoo + 8)
.global dfooboth
dfooboth:
.long 0
.long (datalabel dfooboth + 16)
.long (dfooboth + 12)
.global dfooboth2
dfooboth2:
.long 0
.long (dfooboth2 + 12)
.long (datalabel dfooboth2 + 16)
.global dfoowithout
dfoowithout:
.long 0
.long (dfoowithout + 24)
.global dfoo_other
dfoo_other:
.long 0
.global dfoo_otherboth
dfoo_otherboth:
.long 0
.global dfoo_otherboth2
dfoo_otherboth2:
.long 0
.global dfoo_otherwithout
dfoo_otherwithout:
.long 0
.section .rodata
.long datalabel dfoo_other + 4
.long datalabel dfoo_otherboth + 40
.long dfoo_otherboth + 24
.long dfoo_otherboth2 + 24
.long datalabel dfoo_otherboth2 + 40
.long dfoo_otherwithout
.data
! Same as above, mixing references from same and other section.
.global dfoo_mix
dfoo_mix:
.long 0
.long (datalabel dfoo_mix + 8)
.global dfoo_mix2
dfoo_mix2:
.long 0
.long (dfoo_mix2 + 8)
.global dfoo_mixboth
dfoo_mixboth:
.long 0
.long (datalabel dfoo_mixboth + 80)
.long (dfoo_mixboth + 80)
.global dfoo_mixboth2
dfoo_mixboth2:
.long 0
.long (dfoo_mixboth2 + 64)
.long (datalabel dfoo_mixboth2 + 64)
.global dfoo_mixwithout
dfoo_mixwithout:
.long 0
.long (dfoo_mixwithout + 42)
.global dfoo_mixwithout2
dfoo_mixwithout2:
.long 0
.long (dfoo_mixwithout2 + 24)
.section .rodata
.long dfoo_mix + 4
.long datalabel dfoo_mix2 + 48
.long datalabel dfoo_mixboth + 400
.long dfoo_mixboth + 420
.long dfoo_mixboth2 + 248
.long datalabel dfoo_mixboth2 + 240
.long dfoo_mixwithout
! Same as above, referencing symbol in other file (reference only from
! this to other file).
.text
movi (datalabel dbarboth + 16) & 65535,r40
movi (dbarboth + 12) & 65535,r40
movi (dbarboth2 + 12) & 65535,r40
movi (datalabel dbarboth2 + 16) & 65535,r40
movi (dbarwithout + 24) & 65535,r30
.data
.long (datalabel dbar + 8)
.long datalabel dbar_other + 4
.long datalabel dbar_otherboth + 40
.long dbar_otherboth + 24
.long dbar_otherboth2 + 24
.long datalabel dbar_otherboth2 + 40
.long dbar_otherwithout
.text
movi (datalabel dbar_mix + 8) & 65535,r30
movi (dbar_mix2 + 8) & 65535,r30
movi (datalabel dbar_mixboth + 80) & 65535,r30
movi (dbar_mixboth + 80) & 65535,r30
movi (dbar_mixboth2 + 64) & 65535,r30
movi (datalabel dbar_mixboth2 + 64) & 65535,r30
movi (dbar_mixwithout + 42) & 65535,r30
movi (dbar_mixwithout2 + 24) & 65535,r30
.data
.long dbar_mix + 4
.long datalabel dbar_mix2 + 48
.long datalabel dbar_mixboth + 400
.long dbar_mixboth + 420
.long dbar_mixboth2 + 248
.long datalabel dbar_mixboth2 + 240
.long dbar_mixwithout
! Same as above, referencing symbol in other file *and* within that file.
.text
movi (datalabel dbazboth + 16) & 65535,r40
movi (dbazboth + 12) & 65535,r40
movi (dbazboth2 + 12) & 65535,r40
movi (datalabel dbazboth2 + 16) & 65535,r40
movi (dbazwithout + 24) & 65535,r30
.data
.long (datalabel dbaz + 8)
.long datalabel dbaz_other + 4
.long datalabel dbaz_otherboth + 40
.long dbaz_otherboth + 24
.long dbaz_otherboth2 + 24
.long datalabel dbaz_otherboth2 + 40
.long dbaz_otherwithout
.text
movi (datalabel dbaz_mix + 8) & 65535,r30
movi (dbaz_mix2 + 8) & 65535,r30
movi (datalabel dbaz_mixboth + 80) & 65535,r30
movi (dbaz_mixboth + 80) & 65535,r30
movi (dbaz_mixboth2 + 64) & 65535,r30
movi (datalabel dbaz_mixboth2 + 64) & 65535,r30
movi (dbaz_mixwithout + 42) & 65535,r30
movi (dbaz_mixwithout2 + 24) & 65535,r30
.data
.long dbaz_mix + 4
.long datalabel dbaz_mix2 + 48
.long datalabel dbaz_mixboth + 400
.long dbaz_mixboth + 420
.long dbaz_mixboth2 + 248
.long datalabel dbaz_mixboth2 + 240
.long dbaz_mixwithout