Add Visium support to ld
ld/ * configure.tgt: Add Visium support. * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32visium.c. (eelf32visium.c): New rule. * Makefile.in: Regenerate. * emulparams/elf32visium.sh: New file. * scripttempl/visium.sc: Likewise. ld/testsuite/ * lib/ld-lib.exp (check_shared_lib_support): Return 0 for Visium. * ld-visium/: New directory.
This commit is contained in:
parent
b6605dddac
commit
c18392d87d
@ -1,3 +1,12 @@
|
||||
2014-12-06 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* configure.tgt: Add Visium support.
|
||||
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32visium.c.
|
||||
(eelf32visium.c): New rule.
|
||||
* Makefile.in: Regenerate.
|
||||
* emulparams/elf32visium.sh: New file.
|
||||
* scripttempl/visium.sc: Likewise.
|
||||
|
||||
2014-11-25 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emulparams/elf_i386.sh (TINY_READONLY_SECTION): New.
|
||||
|
@ -264,6 +264,7 @@ ALL_EMULATION_SOURCES = \
|
||||
eelf32tilegx_be.c \
|
||||
eelf32tilepro.c \
|
||||
eelf32vax.c \
|
||||
eelf32visium.c \
|
||||
eelf32xc16x.c \
|
||||
eelf32xc16xl.c \
|
||||
eelf32xc16xs.c \
|
||||
@ -1231,6 +1232,9 @@ eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
|
||||
eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
||||
eelf32visium.c: $(srcdir)/emulparams/elf32visium.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/visium.sc ${GEN_DEPENDS}
|
||||
|
||||
eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
@ -572,6 +572,7 @@ ALL_EMULATION_SOURCES = \
|
||||
eelf32tilegx_be.c \
|
||||
eelf32tilepro.c \
|
||||
eelf32vax.c \
|
||||
eelf32visium.c \
|
||||
eelf32xc16x.c \
|
||||
eelf32xc16xl.c \
|
||||
eelf32xc16xs.c \
|
||||
@ -1190,6 +1191,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32tilegx_be.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32tilepro.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32vax.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32visium.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16x.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16xl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16xs.Po@am__quote@
|
||||
@ -2672,6 +2674,9 @@ eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
|
||||
eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
||||
eelf32visium.c: $(srcdir)/emulparams/elf32visium.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/visium.sc ${GEN_DEPENDS}
|
||||
|
||||
eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
@ -755,6 +755,8 @@ vax-*-netbsdaout* | vax-*-netbsd*)
|
||||
targ_extra_emuls=elf32vax ;;
|
||||
vax-*-linux-*) targ_emul=elf32vax
|
||||
;;
|
||||
visium-*-elf) targ_emul=elf32visium
|
||||
;;
|
||||
w65-*-*) targ_emul=w65
|
||||
;;
|
||||
xc16x-*-elf) targ_emul=elf32xc16x
|
||||
|
9
ld/emulparams/elf32visium.sh
Normal file
9
ld/emulparams/elf32visium.sh
Normal file
@ -0,0 +1,9 @@
|
||||
SCRIPT_NAME=visium
|
||||
OUTPUT_FORMAT="elf32-visium"
|
||||
TEXT_START_ADDR=0x00000000
|
||||
MAXPAGESIZE=0x10000
|
||||
NONPAGED_TEXT_START_ADDR=0x10000
|
||||
ARCH=visium
|
||||
MACHINE=
|
||||
TEMPLATE_NAME=elf32
|
||||
DYNAMIC_LINK=FALSE
|
181
ld/scripttempl/visium.sc
Normal file
181
ld/scripttempl/visium.sc
Normal file
@ -0,0 +1,181 @@
|
||||
# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification,
|
||||
# are permitted in any medium without royalty provided the copyright
|
||||
# notice and this notice are preserved.
|
||||
|
||||
# Many sections come in three flavours. There is the 'real' section,
|
||||
# like ".data". Then there are the per-procedure or per-variable
|
||||
# sections, generated by -ffunction-sections and -fdata-sections in GCC,
|
||||
# and useful for --gc-sections, which for a variable "foo" might be
|
||||
# ".data.foo". Then there are the linkonce sections, for which the linker
|
||||
# eliminates duplicates, which are named like ".gnu.linkonce.d.foo".
|
||||
# The exact correspondences are:
|
||||
#
|
||||
# Section Linkonce section
|
||||
# .text .gnu.linkonce.t.foo
|
||||
# .rodata .gnu.linkonce.r.foo
|
||||
# .data .gnu.linkonce.d.foo
|
||||
# .bss .gnu.linkonce.b.foo
|
||||
# .sdata .gnu.linkonce.s.foo
|
||||
# .sbss .gnu.linkonce.sb.foo
|
||||
# .sdata2 .gnu.linkonce.s2.foo
|
||||
# .sbss2 .gnu.linkonce.sb2.foo
|
||||
# .debug_info .gnu.linkonce.wi.foo
|
||||
# .tdata .gnu.linkonce.td.foo
|
||||
# .tbss .gnu.linkonce.tb.foo
|
||||
# .lrodata .gnu.linkonce.lr.foo
|
||||
# .ldata .gnu.linkonce.l.foo
|
||||
# .lbss .gnu.linkonce.lb.foo
|
||||
#
|
||||
# Each of these can also have corresponding .rel.* and .rela.* sections.
|
||||
|
||||
test -z "$ENTRY" && ENTRY=__start
|
||||
cat <<EOF
|
||||
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
|
||||
|
||||
ENTRY(${ENTRY})
|
||||
|
||||
/* Start and end of main stack. Assumes 256K of RAM. */
|
||||
${RELOCATING+ _estack = 0xe0040000 - 4;}
|
||||
${RELOCATING+ _sstack = 0xe0040000 - 64K;}
|
||||
|
||||
/* End of heap. */
|
||||
${RELOCATING+ _eheap = _sstack - 4;}
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
init : ORIGIN = 0x00000000, LENGTH = 0x0003fffc
|
||||
scr : ORIGIN = 0x0003fffc, LENGTH = 0x00000004
|
||||
rom : ORIGIN = 0x00044000, LENGTH = 0x1ffbc000
|
||||
ram : ORIGIN = 0xe0000000, LENGTH = 0x10000000
|
||||
saferam : ORIGIN = 0xf0000000, LENGTH = 0x10000000
|
||||
}
|
||||
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.init ${RELOCATING-0} : {
|
||||
KEEP (*(.init))
|
||||
KEEP (*(.fini))
|
||||
${RELOCATING+ _einit = .;}
|
||||
} ${RELOCATING+ > init}
|
||||
|
||||
.text ${RELOCATING-0} : {
|
||||
${RELOCATING+ _ftext = .;}
|
||||
*(.text)
|
||||
${RELOCATING+*(.text.*)}
|
||||
${RELOCATING+*(.gnu.linkonce.t.*)}
|
||||
${RELOCATING+ _etext = .;}
|
||||
} ${RELOCATING+ > rom}
|
||||
|
||||
.ctors ${RELOCATING-0} : {
|
||||
${CONSTRUCTING+ . = ALIGN(4);}
|
||||
${CONSTRUCTING+ __CTOR_LIST__ = .;}
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
|
||||
KEEP (*crtbegin*.o(.ctors))
|
||||
|
||||
/* We don't want to include the .ctor section from
|
||||
from the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last. */
|
||||
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
${CONSTRUCTING+ __CTOR_END__ = .;}
|
||||
} ${RELOCATING+ > rom}
|
||||
|
||||
.dtors ${RELOCATING-0} : {
|
||||
${CONSTRUCTING+ __DTOR_LIST__ = .;}
|
||||
KEEP (*crtbegin*.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
${CONSTRUCTING+ __DTOR_END__ = .;}
|
||||
} ${RELOCATING+ > rom}
|
||||
.rodata ${RELOCATING-0} : {
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ _srdata = .;}
|
||||
*(.rdata)
|
||||
*(.rodata)
|
||||
${RELOCATING+*(.rodata.*)}
|
||||
${RELOCATING+*(.gnu.linkonce.r.*)}
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ _erdata = .;}
|
||||
} ${RELOCATING+ > rom}
|
||||
|
||||
.eh_frame ${RELOCATING-0} :
|
||||
{
|
||||
${RELOCATING+PROVIDE (__eh_frame_begin = .);}
|
||||
*(.eh_frame)
|
||||
${RELOCATING+ LONG (0);}
|
||||
${RELOCATING+PROVIDE (__eh_frame_end = .);}
|
||||
} ${RELOCATING+ > rom}
|
||||
.gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) } ${RELOCATING+ > rom}
|
||||
.jcr ${RELOCATING-0} : { *(.jcr) } ${RELOCATING+ > rom}
|
||||
|
||||
.data ${RELOCATING-0} : {
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ _sdata = .;}
|
||||
*(.data)
|
||||
${RELOCATING+*(.data.*)}
|
||||
${RELOCATING+*(.gnu.linkonce.d.*)}
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ _edata = .;}
|
||||
} ${RELOCATING+ > ram}
|
||||
.bss ${RELOCATING-0} : {
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ __bss_start = .;}
|
||||
*(.bss)
|
||||
${RELOCATING+*(.bss.*)}
|
||||
${RELOCATING+*(.gnu.linkonce.b.*)}
|
||||
*(COMMON)
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ __bss_end = .;}
|
||||
${RELOCATING+ _sheap = .;}
|
||||
} ${RELOCATING+ > ram}
|
||||
|
||||
saferam ${RELOCATING-0} : {
|
||||
*(saferam)
|
||||
${RELOCATING+ . = ALIGN(4);}
|
||||
${RELOCATING+ unitidentry = .;}
|
||||
} ${RELOCATING+ > saferam}
|
||||
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
|
||||
.comment 0 : { *(.comment) }
|
||||
|
||||
EOF
|
||||
|
||||
. $srcdir/scripttempl/DWARF.sc
|
||||
|
||||
cat <<EOF
|
||||
}
|
||||
|
||||
/* Provide a default address for the simulated file-I/O device. */
|
||||
PROVIDE (_sim_fileio_register = 0x2fff0000);
|
||||
|
||||
/* Provide a default address for the simulated command line device. */
|
||||
PROVIDE (_sim_cmdline_header = 0x2ffe0000);
|
||||
|
||||
/* Provide a default address for the simulated 1 MHz clock. */
|
||||
PROVIDE (_sim_clock = 0x20002100);
|
||||
|
||||
EOF
|
@ -1,3 +1,8 @@
|
||||
2014-12-06 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* lib/ld-lib.exp (check_shared_lib_support): Return 0 for Visium.
|
||||
* ld-visium/: New directory.
|
||||
|
||||
2014-12-04 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ld-powerpc/vxworks-relax.rd: Update for reloc sorting.
|
||||
|
@ -2,7 +2,7 @@
|
||||
#ld: -e _start --eh-frame-hdr
|
||||
#objdump: -hw
|
||||
#target: cfi
|
||||
#xfail: avr*-*-* or1k-*-*
|
||||
#xfail: avr*-*-* or1k-*-* visium-*-*
|
||||
# avr doesn't support shared libraries.
|
||||
#...
|
||||
[0-9] .eh_frame_hdr 0*[12][048c] .*
|
||||
|
@ -4,7 +4,7 @@
|
||||
#ld:
|
||||
#readelf: -wf
|
||||
#target: cfi
|
||||
#notarget: alpha* hppa64* tile*
|
||||
#notarget: alpha* hppa64* tile* visium*
|
||||
|
||||
Contents of the .eh_frame section:
|
||||
|
||||
|
@ -3,9 +3,9 @@
|
||||
#objcopy_linked_file: --set-section-flags .post_text_reserve=contents,alloc,load,readonly,code
|
||||
#readelf: -l --wide
|
||||
#xfail: "avr-*-*" "dlx-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*"
|
||||
#xfail: "moxie-*-*" "mt-*-*" "*-*-nacl*"
|
||||
#xfail: "moxie-*-*" "mt-*-*" "visium-*-*" "*-*-nacl*"
|
||||
#xfail: "*-*-hpux*" "hppa*64*-*-*"
|
||||
# Fails on the AVR, DLX, H8300, I960, IP2K, M32R, MOXIE, MT,
|
||||
# Fails on the AVR, DLX, H8300, I960, IP2K, M32R, MOXIE, MT, VISIUM
|
||||
# and all NaCl targets,
|
||||
# because the two sections are not merged into one segment.
|
||||
# (There is no good reason why they have to be).
|
||||
|
@ -1,6 +1,6 @@
|
||||
#ld: -Ttext=0x60
|
||||
#readelf: -S --wide
|
||||
#notarget: d10v-*-* msp*-*-* xstormy*-*-*
|
||||
#notarget: d10v-*-* msp*-*-* visium-*-* xstormy*-*-*
|
||||
# the above targets use memory regions that don't allow 0x60 for .text
|
||||
|
||||
#...
|
||||
|
@ -86,6 +86,7 @@ if { [istarget avr-*-*]
|
||||
|| [istarget moxie-*-*]
|
||||
|| [istarget msp430-*-*]
|
||||
|| [istarget mt-*-*]
|
||||
|| [istarget visium-*-*]
|
||||
} {
|
||||
set B_test_same_seg 0
|
||||
} else {
|
||||
|
4
ld/testsuite/ld-visium/brr_x_backward.d
Normal file
4
ld/testsuite/ld-visium/brr_x_backward.d
Normal file
@ -0,0 +1,4 @@
|
||||
#source: brr_x_backward1.s
|
||||
#source: brr_x_backward2.s
|
||||
#ld:
|
||||
#error: relocation truncated to fit: R_VISIUM_PC16
|
6
ld/testsuite/ld-visium/brr_x_backward1.s
Normal file
6
ld/testsuite/ld-visium/brr_x_backward1.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
.global start
|
||||
start:
|
||||
.global L1,L2
|
||||
L1: nop
|
||||
L2:
|
7
ld/testsuite/ld-visium/brr_x_backward2.s
Normal file
7
ld/testsuite/ld-visium/brr_x_backward2.s
Normal file
@ -0,0 +1,7 @@
|
||||
.text
|
||||
.rept 32767
|
||||
nop
|
||||
.endr
|
||||
brr tr,L1
|
||||
nop
|
||||
brr tr,L2
|
4
ld/testsuite/ld-visium/brr_x_forward.d
Normal file
4
ld/testsuite/ld-visium/brr_x_forward.d
Normal file
@ -0,0 +1,4 @@
|
||||
#source: brr_x_forward1.s
|
||||
#source: brr_x_forward2.s
|
||||
#ld:
|
||||
#error: relocation truncated to fit: R_VISIUM_PC16
|
7
ld/testsuite/ld-visium/brr_x_forward1.s
Normal file
7
ld/testsuite/ld-visium/brr_x_forward1.s
Normal file
@ -0,0 +1,7 @@
|
||||
.text
|
||||
brr tr,L1
|
||||
nop
|
||||
brr tr,L2
|
||||
.rept 32765
|
||||
nop
|
||||
.endr
|
6
ld/testsuite/ld-visium/brr_x_forward2.s
Normal file
6
ld/testsuite/ld-visium/brr_x_forward2.s
Normal file
@ -0,0 +1,6 @@
|
||||
.global start
|
||||
.global L1,L2
|
||||
.text
|
||||
start:
|
||||
L1: nop
|
||||
L2:
|
9
ld/testsuite/ld-visium/brr_x_seg.s
Normal file
9
ld/testsuite/ld-visium/brr_x_seg.s
Normal file
@ -0,0 +1,9 @@
|
||||
.text
|
||||
nop
|
||||
brr tr,L1
|
||||
nop
|
||||
.data
|
||||
.global start
|
||||
start:
|
||||
.long 0
|
||||
L1:
|
3
ld/testsuite/ld-visium/brr_x_seg1.d
Normal file
3
ld/testsuite/ld-visium/brr_x_seg1.d
Normal file
@ -0,0 +1,3 @@
|
||||
#source: brr_x_seg.s
|
||||
#ld: -T ld1.ld
|
||||
#error: relocation truncated to fit: R_VISIUM_PC16
|
3
ld/testsuite/ld-visium/brr_x_seg2.d
Normal file
3
ld/testsuite/ld-visium/brr_x_seg2.d
Normal file
@ -0,0 +1,3 @@
|
||||
#source: brr_x_seg.s
|
||||
#ld: -T ld2.ld
|
||||
#error: relocation truncated to fit: R_VISIUM_PC16
|
3
ld/testsuite/ld-visium/imm_x_seg.d
Normal file
3
ld/testsuite/ld-visium/imm_x_seg.d
Normal file
@ -0,0 +1,3 @@
|
||||
#source: imm_x_seg.s
|
||||
#ld: -T ld3.ld
|
||||
#error: relocation truncated to fit: R_VISIUM_IM16_PCREL
|
8
ld/testsuite/ld-visium/imm_x_seg.s
Normal file
8
ld/testsuite/ld-visium/imm_x_seg.s
Normal file
@ -0,0 +1,8 @@
|
||||
.section seg1
|
||||
foo:
|
||||
nop
|
||||
moviq r6,bar-foo
|
||||
|
||||
.section seg2
|
||||
bar:
|
||||
.end
|
9
ld/testsuite/ld-visium/ld1.ld
Normal file
9
ld/testsuite/ld-visium/ld1.ld
Normal file
@ -0,0 +1,9 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x10000 : {
|
||||
*(.text)
|
||||
}
|
||||
.data 0x30000 : {
|
||||
*(.data)
|
||||
}
|
||||
}
|
9
ld/testsuite/ld-visium/ld2.ld
Normal file
9
ld/testsuite/ld-visium/ld2.ld
Normal file
@ -0,0 +1,9 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x30004 : {
|
||||
*(.text)
|
||||
}
|
||||
.data 0x10000 : {
|
||||
*(.data)
|
||||
}
|
||||
}
|
9
ld/testsuite/ld-visium/ld3.ld
Normal file
9
ld/testsuite/ld-visium/ld3.ld
Normal file
@ -0,0 +1,9 @@
|
||||
SECTIONS
|
||||
{
|
||||
seg1 0x10000 : {
|
||||
*(seg1)
|
||||
}
|
||||
seg2 0x20000 : {
|
||||
*(seg2)
|
||||
}
|
||||
}
|
14
ld/testsuite/ld-visium/reloc.d
Normal file
14
ld/testsuite/ld-visium/reloc.d
Normal file
@ -0,0 +1,14 @@
|
||||
#source: reloc1.s
|
||||
#source: reloc2.s
|
||||
#ld: -T ld1.ld
|
||||
#objdump: -s
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
Contents of section .text:
|
||||
10000 00000000 7800000a 84c20034 8482003c ....x......4...<
|
||||
10010 84a20001 84c20002 0442002c 84020002 .........B.,....
|
||||
10020 0482002c 84a20002 84c21000 ...,........
|
||||
Contents of section .data:
|
||||
30000 00140014 00000014 0001002c 0002002c ...........,...,
|
||||
30010 10001010 ....
|
24
ld/testsuite/ld-visium/reloc1.s
Normal file
24
ld/testsuite/ld-visium/reloc1.s
Normal file
@ -0,0 +1,24 @@
|
||||
.data
|
||||
foo:
|
||||
.byte 0
|
||||
.byte data1-foo
|
||||
.word data1-foo
|
||||
.long data1-foo
|
||||
.long text1
|
||||
.long text2
|
||||
.word abs1
|
||||
.word abs1+0x10
|
||||
.text
|
||||
bar:
|
||||
nop
|
||||
brr tr,text1
|
||||
moviq r2,text1-bar+8
|
||||
movil r2,%l text2-bar+16
|
||||
moviu r2,%u text2-bar+16
|
||||
moviq r2,%u text2
|
||||
subi r2,%l text2
|
||||
addi r2,%u text2
|
||||
movil r2, text2 ; with movil, the %l may be omitted
|
||||
moviu r2,%u text2
|
||||
moviq r2,abs1
|
||||
.end
|
12
ld/testsuite/ld-visium/reloc2.s
Normal file
12
ld/testsuite/ld-visium/reloc2.s
Normal file
@ -0,0 +1,12 @@
|
||||
.global abs1
|
||||
abs1 = 0x1000
|
||||
|
||||
.data
|
||||
.global data1
|
||||
data1:
|
||||
.text
|
||||
.global text1
|
||||
text1:
|
||||
.global text2
|
||||
text2 = . + 65536
|
||||
.end
|
30
ld/testsuite/ld-visium/visium.exp
Normal file
30
ld/testsuite/ld-visium/visium.exp
Normal file
@ -0,0 +1,30 @@
|
||||
# Expect script for Visium tests.
|
||||
# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Visium linker testsuite.
|
||||
|
||||
if [istarget visium-*-*] {
|
||||
run_dump_test "brr_x_backward"
|
||||
run_dump_test "brr_x_forward"
|
||||
run_dump_test "brr_x_seg1"
|
||||
run_dump_test "brr_x_seg2"
|
||||
run_dump_test "imm_x_seg"
|
||||
run_dump_test "reloc"
|
||||
}
|
@ -1652,6 +1652,7 @@ proc check_shared_lib_support { } {
|
||||
&& ![istarget rx-*-*]
|
||||
&& ![istarget spu-*-*]
|
||||
&& ![istarget v850*-*-*]
|
||||
&& ![istarget visium-*-*]
|
||||
&& ![istarget xstormy16-*-*]
|
||||
&& ![istarget *-*-irix*]
|
||||
&& ![istarget *-*-rtems] } {
|
||||
|
Loading…
Reference in New Issue
Block a user