Add Visium support to gas

gas/
	* configure.tgt: Add Visium support.
	* Makefile.am (TARGET_CPU_CFILES): Move config/tc-vax.c around
	and add config/tc-visium.c.
	(TARGET_CPU_HFILES): Move config/tc-vax.h around and add
	config/tc-visium.h.
	* Makefile.in: Regenerate.
	* config/tc-visium.c: New file.
	* config/tc-visium.h: Likewise.
	* po/POTFILES.in: Regenerate.
gas/testsuite/
	* gas/elf/elf.exp: Skip ifunc-1 for Visium.
	* gas/visium/: New directory.
This commit is contained in:
Eric Botcazou 2014-12-06 16:42:26 +01:00
parent 619ed72008
commit b6605dddac
36 changed files with 3824 additions and 31 deletions

View File

@ -1,3 +1,15 @@
2014-12-06 Eric Botcazou <ebotcazou@adacore.com>
* configure.tgt: Add Visium support.
* Makefile.am (TARGET_CPU_CFILES): Move config/tc-vax.c around
and add config/tc-visium.c.
(TARGET_CPU_HFILES): Move config/tc-vax.h around and add
config/tc-visium.h.
* Makefile.in: Regenerate.
* config/tc-visium.c: New file.
* config/tc-visium.h: Likewise.
* po/POTFILES.in: Regenerate.
2014-11-28 Sandra Loosemore <sandra@codesourcery.com>
* config/tc-nios2.c (can_evaluate_expr, get_expr_value): Delete.

View File

@ -185,8 +185,9 @@ TARGET_CPU_CFILES = \
config/tc-tic6x.c \
config/tc-tilegx.c \
config/tc-tilepro.c \
config/tc-vax.c \
config/tc-v850.c \
config/tc-vax.c \
config/tc-visium.c \
config/tc-xstormy16.c \
config/tc-xc16x.c \
config/tc-xgate.c \
@ -256,8 +257,9 @@ TARGET_CPU_HFILES = \
config/tc-tic6x.h \
config/tc-tilegx.h \
config/tc-tilepro.h \
config/tc-vax.h \
config/tc-v850.h \
config/tc-vax.h \
config/tc-visium.h \
config/tc-xstormy16.h \
config/tc-xc16x.h \
config/tc-xgate.h \

View File

@ -454,8 +454,9 @@ TARGET_CPU_CFILES = \
config/tc-tic6x.c \
config/tc-tilegx.c \
config/tc-tilepro.c \
config/tc-vax.c \
config/tc-v850.c \
config/tc-vax.c \
config/tc-visium.c \
config/tc-xstormy16.c \
config/tc-xc16x.c \
config/tc-xgate.c \
@ -525,8 +526,9 @@ TARGET_CPU_HFILES = \
config/tc-tic6x.h \
config/tc-tilegx.h \
config/tc-tilepro.h \
config/tc-vax.h \
config/tc-v850.h \
config/tc-vax.h \
config/tc-visium.h \
config/tc-xstormy16.h \
config/tc-xc16x.h \
config/tc-xgate.h \
@ -882,6 +884,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-tilepro.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-v850.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-vax.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-visium.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xc16x.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xgate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xstormy16.Po@am__quote@
@ -1767,6 +1770,20 @@ tc-tilepro.obj: config/tc-tilepro.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-tilepro.obj `if test -f 'config/tc-tilepro.c'; then $(CYGPATH_W) 'config/tc-tilepro.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-tilepro.c'; fi`
tc-v850.o: config/tc-v850.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-v850.o -MD -MP -MF $(DEPDIR)/tc-v850.Tpo -c -o tc-v850.o `test -f 'config/tc-v850.c' || echo '$(srcdir)/'`config/tc-v850.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-v850.Tpo $(DEPDIR)/tc-v850.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-v850.c' object='tc-v850.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-v850.o `test -f 'config/tc-v850.c' || echo '$(srcdir)/'`config/tc-v850.c
tc-v850.obj: config/tc-v850.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-v850.obj -MD -MP -MF $(DEPDIR)/tc-v850.Tpo -c -o tc-v850.obj `if test -f 'config/tc-v850.c'; then $(CYGPATH_W) 'config/tc-v850.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-v850.c'; fi`
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-v850.Tpo $(DEPDIR)/tc-v850.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-v850.c' object='tc-v850.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-v850.obj `if test -f 'config/tc-v850.c'; then $(CYGPATH_W) 'config/tc-v850.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-v850.c'; fi`
tc-vax.o: config/tc-vax.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-vax.o -MD -MP -MF $(DEPDIR)/tc-vax.Tpo -c -o tc-vax.o `test -f 'config/tc-vax.c' || echo '$(srcdir)/'`config/tc-vax.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-vax.Tpo $(DEPDIR)/tc-vax.Po
@ -1781,19 +1798,19 @@ tc-vax.obj: config/tc-vax.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-vax.obj `if test -f 'config/tc-vax.c'; then $(CYGPATH_W) 'config/tc-vax.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-vax.c'; fi`
tc-v850.o: config/tc-v850.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-v850.o -MD -MP -MF $(DEPDIR)/tc-v850.Tpo -c -o tc-v850.o `test -f 'config/tc-v850.c' || echo '$(srcdir)/'`config/tc-v850.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-v850.Tpo $(DEPDIR)/tc-v850.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-v850.c' object='tc-v850.o' libtool=no @AMDEPBACKSLASH@
tc-visium.o: config/tc-visium.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-visium.o -MD -MP -MF $(DEPDIR)/tc-visium.Tpo -c -o tc-visium.o `test -f 'config/tc-visium.c' || echo '$(srcdir)/'`config/tc-visium.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-visium.Tpo $(DEPDIR)/tc-visium.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-visium.c' object='tc-visium.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-v850.o `test -f 'config/tc-v850.c' || echo '$(srcdir)/'`config/tc-v850.c
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-visium.o `test -f 'config/tc-visium.c' || echo '$(srcdir)/'`config/tc-visium.c
tc-v850.obj: config/tc-v850.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-v850.obj -MD -MP -MF $(DEPDIR)/tc-v850.Tpo -c -o tc-v850.obj `if test -f 'config/tc-v850.c'; then $(CYGPATH_W) 'config/tc-v850.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-v850.c'; fi`
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-v850.Tpo $(DEPDIR)/tc-v850.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-v850.c' object='tc-v850.obj' libtool=no @AMDEPBACKSLASH@
tc-visium.obj: config/tc-visium.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-visium.obj -MD -MP -MF $(DEPDIR)/tc-visium.Tpo -c -o tc-visium.obj `if test -f 'config/tc-visium.c'; then $(CYGPATH_W) 'config/tc-visium.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-visium.c'; fi`
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-visium.Tpo $(DEPDIR)/tc-visium.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-visium.c' object='tc-visium.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-v850.obj `if test -f 'config/tc-v850.c'; then $(CYGPATH_W) 'config/tc-v850.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-v850.c'; fi`
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-visium.obj `if test -f 'config/tc-visium.c'; then $(CYGPATH_W) 'config/tc-visium.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-visium.c'; fi`
tc-xstormy16.o: config/tc-xstormy16.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-xstormy16.o -MD -MP -MF $(DEPDIR)/tc-xstormy16.Tpo -c -o tc-xstormy16.o `test -f 'config/tc-xstormy16.c' || echo '$(srcdir)/'`config/tc-xstormy16.c

2308
gas/config/tc-visium.c Normal file

File diff suppressed because it is too large Load Diff

79
gas/config/tc-visium.h Normal file
View File

@ -0,0 +1,79 @@
/* tc-visium.h -- Header file for tc-visium.c.
Copyright (C) 2005-2014 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 2, 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, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#define TC_VISIUM
#define LISTING_HEADER "VISIUM GAS "
/* The target BFD architecture. */
#define TARGET_ARCH bfd_arch_visium
#define TARGET_BYTES_BIG_ENDIAN 1
#define TARGET_FORMAT "elf32-visium"
/* Permit temporary numeric labels. */
#define LOCAL_LABELS_FB 1
/* .-foo gets turned into PC relative relocs. */
#define DIFF_EXPR_OK
/* We don't support external symbols overriding. */
#define EXTERN_FORCE_RELOC 0
/* We don't need to handle .word strangely. */
#define WORKING_DOT_WORD
#define tc_fix_adjustable(FIXP) visium_fix_adjustable (FIXP)
extern bfd_boolean visium_fix_adjustable (struct fix *);
#define HANDLE_ALIGN(FRAGP) \
if ((FRAGP)->fr_type == rs_align_code) \
visium_handle_align (FRAGP);
extern void visium_handle_align (struct frag *);
#define md_relax_frag(segment, fragp, stretch) \
visium_relax_frag (segment, fragp, stretch)
extern int visium_relax_frag (asection *, struct frag *, long);
/* Call md_pcrel_from_section, not md_pcrel_from. */
#define MD_PCREL_FROM_SECTION(FIXP, SEC) visium_pcrel_from_section (FIXP, SEC)
extern long visium_pcrel_from_section (struct fix *, segT);
/* Values passed to md_apply_fix3 don't include the symbol value. */
#define MD_APPLY_SYM_VALUE(FIX) 0
#define md_operand(x)
#define tc_comment_chars visium_comment_chars
extern const char *visium_comment_chars;
#define TARGET_USE_CFIPOP 1
#define tc_cfi_frame_initial_instructions visium_cfi_frame_initial_instructions
extern void visium_cfi_frame_initial_instructions (void);
#define tc_regname_to_dw2regnum visium_regname_to_dw2regnum
extern int visium_regname_to_dw2regnum (char *regname);
#define DWARF2_LINE_MIN_INSN_LENGTH 4
#define DWARF2_DEFAULT_RETURN_COLUMN 21
#define DWARF2_CIE_DATA_ALIGNMENT (-4)

View File

@ -107,6 +107,7 @@ case ${cpu} in
tilegx*be) cpu_type=tilegx endian=big ;;
tilegx*) cpu_type=tilegx endian=little ;;
v850*) cpu_type=v850 ;;
visium) cpu_type=visium endian=big ;;
x86_64*) cpu_type=i386 arch=x86_64;;
xgate) cpu_type=xgate ;;
xtensa*) cpu_type=xtensa arch=xtensa ;;
@ -453,6 +454,8 @@ case ${generic_target} in
vax-*-netbsdelf*) fmt=elf em=nbsd ;;
vax-*-linux-*) fmt=elf em=linux ;;
visium-*-elf) fmt=elf ;;
xstormy16-*-*) fmt=elf ;;
xgate-*-*) fmt=elf ;;

View File

@ -91,8 +91,9 @@ CPU_DOCS = \
c-tic6x.texi \
c-tilegx.texi \
c-tilepro.texi \
c-vax.texi \
c-v850.texi \
c-vax.texi \
c-visium.texi \
c-xgate.texi \
c-xstormy16.texi \
c-xtensa.texi \

View File

@ -333,8 +333,9 @@ CPU_DOCS = \
c-tic6x.texi \
c-tilegx.texi \
c-tilepro.texi \
c-vax.texi \
c-v850.texi \
c-vax.texi \
c-visium.texi \
c-xgate.texi \
c-xstormy16.texi \
c-xtensa.texi \

View File

@ -74,6 +74,7 @@
@set TILEPRO
@set V850
@set VAX
@set VISIUM
@set XGATE
@set XSTORMY16
@set XTENSA

View File

@ -529,7 +529,6 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{-mcpu=54[123589]}|@b{-mcpu=54[56]lp}] [@b{-mfar-mode}|@b{-mf}]
[@b{-merrors-to-file} @var{<filename>}|@b{-me} @var{<filename>}]
@end ifset
@ifset TIC6X
@emph{Target TIC6X options:}
@ -545,7 +544,11 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
@ifset TILEPRO
@c TILEPro has no machine-dependent assembler options
@end ifset
@ifset VISIUM
@emph{Target Visium options:}
[@b{-mtune=@var{arch}}]
@end ifset
@ifset XTENSA
@emph{Target Xtensa options:}
@ -555,7 +558,6 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{--rename-section} @var{oldname}=@var{newname}]
[@b{--[no-]trampolines}]
@end ifset
@ifset Z80
@emph{Target Z80 options:}
@ -567,8 +569,8 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{ -forbid-undocumented-instructions}] [@b{-Fud}]
[@b{ -forbid-unportable-instructions}] [@b{-Fup}]
@end ifset
@ifset Z8000
@c Z8000 has no machine-dependent assembler options
@end ifset
@ -1638,6 +1640,25 @@ processor.
@end ifset
@ifset VISIUM
@ifclear man
@xref{Visium Options}, for the options available when @value{AS} is configured
for a Visium processor.
@end ifclear
@ifset man
@c man begin OPTIONS
The following option is available when @value{AS} is configured for a Visium
processor.
@c man end
@c man begin INCLUDE
@include c-visium.texi
@c ended inside the included file
@end ifset
@end ifset
@ifset XTENSA
@ifclear man
@ -7268,6 +7289,12 @@ subject, see the hardware manufacturer's manual.
@ifset V850
* V850-Dependent:: V850 Dependent Features
@end ifset
@ifset VAX
* Vax-Dependent:: VAX Dependent Features
@end ifset
@ifset VISIUM
* Visium-Dependent:: Visium Dependent Features
@end ifset
@ifset XGATE
* XGATE-Dependent:: XGATE Features
@end ifset
@ -7283,9 +7310,6 @@ subject, see the hardware manufacturer's manual.
@ifset Z8000
* Z8000-Dependent:: Z8000 Dependent Features
@end ifset
@ifset VAX
* Vax-Dependent:: VAX Dependent Features
@end ifset
@end menu
@lowersections
@ -7498,20 +7522,16 @@ family.
@include c-tilepro.texi
@end ifset
@ifset Z80
@include c-z80.texi
@end ifset
@ifset Z8000
@include c-z8k.texi
@ifset V850
@include c-v850.texi
@end ifset
@ifset VAX
@include c-vax.texi
@end ifset
@ifset V850
@include c-v850.texi
@ifset VISIUM
@include c-visium.texi
@end ifset
@ifset XGATE
@ -7526,6 +7546,14 @@ family.
@include c-xtensa.texi
@end ifset
@ifset Z80
@include c-z80.texi
@end ifset
@ifset Z8000
@include c-z8k.texi
@end ifset
@ifset GENERIC
@c reverse effect of @down at top of generic Machine-Dep chapter
@raisesections

90
gas/doc/c-visium.texi Normal file
View File

@ -0,0 +1,90 @@
@c Copyright (C) 2014 Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@c man end
@ifset GENERIC
@page
@node Visium-Dependent
@chapter Visium Dependent Features
@end ifset
@ifclear GENERIC
@node Machine Dependencies
@chapter Visium Dependent Features
@end ifclear
@cindex Visium support
@menu
* Visium Options:: Options
* Visium Syntax:: Syntax
* Visium Opcodes:: Opcodes
@end menu
@node Visium Options
@section Options
@cindex Visium options
@cindex options for Visium
The Visium assembler implements one machine-specific option:
@c man begin OPTIONS
@table @gcctabopt
@cindex @code{-mtune=@var{arch}} command line option, Visium
@item -mtune=@var{arch}
This option specifies the target architecture. If an attempt is made to
assemble an instruction that will not execute on the target architecture,
the assembler will issue an error message.
The following names are recognized:
@code{mcm24}
@code{mcm}
@code{gr5}
@code{gr6}
@end table
@c man end
@node Visium Syntax
@section Syntax
@menu
* Visium Characters:: Special Characters
* Visium Registers:: Register Names
@end menu
@node Visium Characters
@subsection Special Characters
@cindex line comment character, Visium
@cindex Visium line comment character
Line comments are introduced either by the @samp{!} character or by the
@samp{;} character appearing anywhere on a line.
A hash character (@samp{#}) as the first character on a line also
marks the start of a line comment, but in this case it could also be a
logical line number directive (@pxref{Comments}) or a preprocessor
control command (@pxref{Preprocessing}).
@cindex line separator, Visium
@cindex statement separator, Visium
@cindex Visium line separator
The Visium assembler does not currently support a line separator character.
@node Visium Registers
@subsection Register Names
@cindex Visium registers
@cindex register names, Visium
Registers can be specified either by using their canonical mnemonic names
or by using their alias if they have one, for example @samp{sp}.
@node Visium Opcodes
@section Opcodes
All the standard opcodes of the architecture are implemented, along with the
following three pseudo-instructions: @code{cmp}, @code{cmpc}, @code{move}.
In addition, the following two illegal opcodes are implemented and used by the simulation:
@example
stop 5-bit immediate, SourceA
trace 5-bit immediate, SourceA
@end example

View File

@ -161,6 +161,8 @@ config/tc-v850.c
config/tc-v850.h
config/tc-vax.c
config/tc-vax.h
config/tc-visium.c
config/tc-visium.h
config/tc-xc16x.c
config/tc-xc16x.h
config/tc-xgate.c

View File

@ -1,3 +1,8 @@
2014-12-06 Eric Botcazou <ebotcazou@adacore.com>
* gas/elf/elf.exp: Skip ifunc-1 for Visium.
* gas/visium/: New directory.
2014-11-30 Alan Modra <amodra@gmail.com>
* gas/ppc/a2.d: Update for mftb change.

View File

@ -172,11 +172,12 @@ if { [is_elf_format] } then {
run_dump_test "symver"
# No indirect functions on non-GNU targets.
# The MSP port sets the ELF header's OSABI field to ELFOSABI_STANDALONE.
# The Visium and MSP set the ELF header's OSABI field to ELFOSABI_STANDALONE.
# The non-eabi ARM ports sets it to ELFOSABI_ARM.
# So for these targets we cannot include an IFUNC symbol type
# in the symbol type test.
if { [istarget "*-*-hpux*"]
|| [istarget "visium-*-*"]
|| [istarget "msp*-*-*"]
|| [istarget "arm*-*-*"]} then {
# hppa64 has a non-standard common directive

View File

@ -0,0 +1,134 @@
#as:
#objdump: -dzr
#name: allinsn_def
.*: +file format .*
Disassembly of section .text:
0+0000000 <begin>:
0: 03 e2 00 14 write.l 0\(r2\),r1
4: 03 e2 00 14 write.l 0\(r2\),r1
8: 83 e1 04 22 write.w 1\(r1\),r2
c: 03 e3 7c 71 write.b 31\(r3\),r7
10: 03 e4 00 71 write.b 0\(r4\),r7
14: 03 e4 80 54 mults r4,r5
18: 83 e7 fc a4 eamwrite 31,r7,r10
1c: 83 ee 90 f4 writemd r14,r15
20: 83 e9 94 04 writemdc r9
24: 03 e5 88 04 divs r5
28: 83 e6 8c 04 divu r6
2c: 83 ea 98 04 divds r10
30: 83 eb 9c 04 divdu r11
34: 83 ec a4 04 asrd r12
38: 03 ed a8 04 lsrd r13
3c: 83 ee ac 04 asld r14
40: 82 80 00 04 dsi
44: 83 e7 80 84 mults r7,r8
48: 03 e9 84 a4 multu r9,r10
4c: 02 a0 00 04 eni
50: 82 80 00 04 dsi
54: 82 fe 01 d4 rfi
0+0000058 <nsrel>:
58: 00 00 00 00 nop
5c: 07 a0 00 04 rflag r0
60: 08 00 ff fe brr eq,-2
64: 07 a0 00 04 rflag r0
68: 90 00 ff fc brr cs,-4
6c: 07 a0 00 04 rflag r0
70: 18 00 ff fa brr os,-6
74: 07 a0 00 04 rflag r0
78: 20 00 00 1c brr ns,\+28
7c: 07 a0 00 04 rflag r0
80: a8 00 00 1a brr ne,\+26
84: 07 a0 00 04 rflag r0
88: 30 00 00 18 brr cc,\+24
8c: 07 a0 00 04 rflag r0
90: 38 00 00 16 brr oc,\+22
94: 07 a0 00 04 rflag r0
98: c0 00 00 14 brr nc,\+20
9c: 07 a0 00 04 rflag r0
a0: 48 00 00 12 brr ge,\+18
a4: 07 a0 00 04 rflag r0
a8: d0 00 00 10 brr gt,\+16
ac: 07 a0 00 04 rflag r0
b0: 58 00 00 0e brr hi,\+14
b4: 07 a0 00 04 rflag r0
b8: 60 00 00 0c brr le,\+12
bc: 07 a0 00 04 rflag r0
c0: e8 00 00 0a brr ls,\+10
c4: 07 a0 00 04 rflag r0
c8: 70 00 00 08 brr lt,\+8
cc: 07 a0 00 04 rflag r0
d0: 78 00 00 06 brr tr,\+6
d4: 07 a0 00 04 rflag r0
d8: 08 00 ff e0 brr eq,-32
dc: 00 00 00 00 nop
e0: 00 00 00 00 nop
e4: 00 00 00 00 nop
0+00000e8 <sreg>:
e8: 86 20 00 14 adc.l r0,r0,r1
ec: 86 20 08 32 adc.w r2,r0,r3
f0: 86 20 10 51 adc.b r4,r0,r5
f4: 86 00 08 14 add.l r2,r0,r1
f8: 06 04 14 32 add.w r5,r4,r3
fc: 86 07 1c 61 add.b r7,r7,r6
100: 87 40 08 14 and.l r2,r0,r1
104: 07 44 14 32 and.w r5,r4,r3
108: 87 47 1c 61 and.b r7,r7,r6
10c: 06 e3 10 44 asl.l r4,r3,r4
110: 86 e5 1a 02 asl.w r6,r5,0
114: 06 e5 1a 12 asl.w r6,r5,1
118: 06 e7 23 f1 asl.b r8,r7,31
11c: 86 a3 10 44 asr.l r4,r3,r4
120: 06 a5 1a 02 asr.w r6,r5,0
124: 86 a5 1a 12 asr.w r6,r5,1
128: 86 a7 23 f1 asr.b r8,r7,31
12c: 0f 89 28 04 bra eq,r9,r10
130: 07 a0 00 04 rflag r0
134: af 87 04 04 bra ne,r7,r1
138: 07 e0 ae 04 readmda r11
13c: 07 e0 b3 f4 eamread r12,31
140: 87 cd 30 04 extb.l r12,r13
144: 87 cf 38 02 extb.w r14,r15
148: 87 c1 00 01 extb.b r0,r1
14c: 86 83 08 04 extw.l r2,r3
150: 86 85 10 02 extw.w r4,r5
154: 86 c7 18 84 lsr.l r6,r7,r8
158: 06 ca 26 02 lsr.w r9,r10,0
15c: 86 ca 26 12 lsr.w r9,r10,1
160: 86 ca 27 f1 lsr.b r9,r10,31
164: 87 6c 2c 04 not.l r11,r12
168: 07 6e 34 02 not.w r13,r14
16c: 07 6a 3c 01 not.b r15,r10
170: 07 26 14 74 or.l r5,r6,r7
174: 07 29 20 a2 or.w r8,r9,r10
178: 87 22 04 31 or.b r1,r2,r3
17c: 87 e5 12 04 read.l r4,0\(r5\)
180: 87 e5 12 04 read.l r4,0\(r5\)
184: 07 e7 1a 12 read.w r6,1\(r7\)
188: 07 e9 23 f1 read.b r8,31\(r9\)
18c: 87 e9 1a 11 read.b r6,1\(r9\)
190: 87 e0 aa 04 readmda r10
194: 87 e0 ae 14 readmdb r11
198: 07 e0 c6 24 readmdc r17
19c: 87 a0 10 04 rflag r4
1a0: 87 a0 1c 04 rflag r7
1a4: 86 45 10 64 sub.l r4,r5,r6
1a8: 06 48 1c 92 sub.w r7,r8,r9
1ac: 06 41 00 21 cmp.b r1,r2
1b0: 06 65 10 64 subc.l r4,r5,r6
1b4: 86 68 1c 92 subc.w r7,r8,r9
1b8: 86 61 00 21 cmpc.b r1,r2
1bc: 07 03 10 24 xor.l r4,r3,r2
1c0: 87 06 14 72 xor.w r5,r6,r7
1c4: 07 09 04 81 xor.b r1,r9,r8
1c8: 04 07 ff ff addi r7,65535
1cc: 04 87 80 00 movil r7,0x8000
1d0: 84 a7 7f ff moviu r7,0x7FFF
1d4: 04 c6 00 01 moviq r6,1
1d8: 84 47 ff ff subi r7,65535
1dc: ff 86 00 04 bra tr,r6,r0
1e0: 86 00 00 04 add.l r0,r0,r0

View File

@ -0,0 +1,157 @@
begin:
write.l (r2),r1
write.l 0(r2),r1
write.w 1(r1),r2
write.b 31(r3),r7
write.b (r4),r7
eamwrite 0,r4,r5
eamwrite 31,r7,r10
writemd r14,r15
writemdc r9
divs r5
divu r6
divds r10
divdu r11
asrd r12
lsrd r13
asld r14
dsi
mults r7,r8
multu r9,r10
eni
dsi
rfi
nsrel:
brr fa,nsrel
rflag r0
brr eq,nsrel
rflag r0
brr cs,nsrel
rflag r0
brr os,nsrel
rflag r0
brr ns,sreg
rflag r0
brr ne,sreg
rflag r0
brr cc,sreg
rflag r0
brr oc,sreg
rflag r0
brr nc,sreg
rflag r0
brr ge,sreg
rflag r0
brr gt,sreg
rflag r0
brr hi,sreg
rflag r0
brr le,sreg
rflag r0
brr ls,sreg
rflag r0
brr lt,sreg
rflag r0
brr tr,sreg
rflag r0
brr eq,nsrel
nop
brr fa,.
nop
sreg:
adc.l r0,r0,r1
adc.w r2,r0,r3
adc.b r4,r0,r5
add.l r2,r0,r1
add.w r5,r4,r3
add.b r7,r7,r6
and.l r2,r0,r1
and.w r5,r4,r3
and.b r7,r7,r6
asl.l r4,r3,r4
asl.w r6,r5,0
asl.w r6,r5,1
asl.b r8,r7,31
asr.l r4,r3,r4
asr.w r6,r5,0
asr.w r6,r5,1
asr.b r8,r7,31
bra eq,r9,r10
rflag r0
bra ne,r7,r1
eamread r11,0
eamread r12,31
extb.l r12,r13
extb.w r14,r15
extb.b r0,r1
extw.l r2,r3
extw.w r4,r5
lsr.l r6,r7,r8
lsr.w r9,r10,0
lsr.w r9,r10,1
lsr.b r9,r10,31
not.l r11,r12
not.w r13,r14
not.b r15,r10
or.l r5,r6,r7
or.w r8,r9,r10
or.b r1,r2,r3
read.l r4,(r5)
read.l r4,0(r5)
read.w r6,1(r7)
read.b r8,31(r9)
read.b r6,1(r9)
readmda r10
readmdb r11
readmdc r17
rflag r4
rflag r7
sub.l r4,r5,r6
sub.w r7,r8,r9
sub.b r0,r1,r2
subc.l r4,r5,r6
subc.w r7,r8,r9
subc.b r0,r1,r2
xor.l r4,r3,r2
xor.w r5,r6,r7
xor.b r1,r9,r8
addi r7,65535
movil r7,32768
moviu r7,32767
moviq r6,1
subi r7,65535
bra tr,r6,r0
add.l r0,r0,r0
.end

View File

@ -0,0 +1,153 @@
#as: -mtune=gr5
#objdump: -dzr
#name: allinsn_gr5
.*: +file format .*
Disassembly of section .text:
0+0000000 <begin>:
0: 03 e2 00 14 write.l 0\(r2\),r1
4: 03 e2 00 14 write.l 0\(r2\),r1
8: 83 e1 04 22 write.w 1\(r1\),r2
c: 03 e3 7c 71 write.b 31\(r3\),r7
10: 03 e4 00 71 write.b 0\(r4\),r7
14: 03 e4 80 54 mults r4,r5
18: 83 e7 fc a4 eamwrite 31,r7,r10
1c: 83 ee 90 f4 writemd r14,r15
20: 83 e9 94 04 writemdc r9
24: 03 e5 88 04 divs r5
28: 83 e6 8c 04 divu r6
2c: 83 ea 98 04 divds r10
30: 83 eb 9c 04 divdu r11
34: 83 ec a4 04 asrd r12
38: 03 ed a8 04 lsrd r13
3c: 83 ee ac 04 asld r14
40: 82 80 00 04 dsi
44: 83 e7 80 84 mults r7,r8
48: 03 e9 84 a4 multu r9,r10
4c: 02 a0 00 04 eni
50: 82 80 00 04 dsi
54: 82 fe 01 d4 rfi
0+0000058 <nsrel>:
58: 00 00 00 00 nop
5c: 07 a0 00 04 rflag r0
60: 08 00 ff fe brr eq,-2
64: 07 a0 00 04 rflag r0
68: 90 00 ff fc brr cs,-4
6c: 07 a0 00 04 rflag r0
70: 18 00 ff fa brr os,-6
74: 07 a0 00 04 rflag r0
78: 20 00 00 1c brr ns,\+28
7c: 07 a0 00 04 rflag r0
80: a8 00 00 1a brr ne,\+26
84: 07 a0 00 04 rflag r0
88: 30 00 00 18 brr cc,\+24
8c: 07 a0 00 04 rflag r0
90: 38 00 00 16 brr oc,\+22
94: 07 a0 00 04 rflag r0
98: c0 00 00 14 brr nc,\+20
9c: 07 a0 00 04 rflag r0
a0: 48 00 00 12 brr ge,\+18
a4: 07 a0 00 04 rflag r0
a8: d0 00 00 10 brr gt,\+16
ac: 07 a0 00 04 rflag r0
b0: 58 00 00 0e brr hi,\+14
b4: 07 a0 00 04 rflag r0
b8: 60 00 00 0c brr le,\+12
bc: 07 a0 00 04 rflag r0
c0: e8 00 00 0a brr ls,\+10
c4: 07 a0 00 04 rflag r0
c8: 70 00 00 08 brr lt,\+8
cc: 07 a0 00 04 rflag r0
d0: 78 00 00 06 brr tr,\+6
d4: 07 a0 00 04 rflag r0
d8: 08 00 ff e0 brr eq,-32
dc: 00 00 00 00 nop
e0: 00 00 00 00 nop
e4: 00 00 00 00 nop
0+00000e8 <sreg>:
e8: 86 20 00 14 adc.l r0,r0,r1
ec: 86 20 08 32 adc.w r2,r0,r3
f0: 86 20 10 51 adc.b r4,r0,r5
f4: 86 00 08 14 add.l r2,r0,r1
f8: 06 04 14 32 add.w r5,r4,r3
fc: 86 07 1c 61 add.b r7,r7,r6
100: 87 40 08 14 and.l r2,r0,r1
104: 07 44 14 32 and.w r5,r4,r3
108: 87 47 1c 61 and.b r7,r7,r6
10c: 06 e3 10 44 asl.l r4,r3,r4
110: 86 e5 1a 02 asl.w r6,r5,0
114: 06 e5 1a 12 asl.w r6,r5,1
118: 06 e7 23 f1 asl.b r8,r7,31
11c: 86 a3 10 44 asr.l r4,r3,r4
120: 06 a5 1a 02 asr.w r6,r5,0
124: 86 a5 1a 12 asr.w r6,r5,1
128: 86 a7 23 f1 asr.b r8,r7,31
12c: 0f 89 28 04 bra eq,r9,r10
130: 07 a0 00 04 rflag r0
134: af 87 04 04 bra ne,r7,r1
138: 07 e0 ae 04 readmda r11
13c: 07 e0 b3 f4 eamread r12,31
140: 87 cd 30 04 extb.l r12,r13
144: 87 cf 38 02 extb.w r14,r15
148: 87 c1 00 01 extb.b r0,r1
14c: 86 83 08 04 extw.l r2,r3
150: 86 85 10 02 extw.w r4,r5
154: 86 c7 18 84 lsr.l r6,r7,r8
158: 06 ca 26 02 lsr.w r9,r10,0
15c: 86 ca 26 12 lsr.w r9,r10,1
160: 86 ca 27 f1 lsr.b r9,r10,31
164: 87 6c 2c 04 not.l r11,r12
168: 07 6e 34 02 not.w r13,r14
16c: 07 6a 3c 01 not.b r15,r10
170: 07 26 14 74 or.l r5,r6,r7
174: 07 29 20 a2 or.w r8,r9,r10
178: 87 22 04 31 or.b r1,r2,r3
17c: 87 e5 12 04 read.l r4,0\(r5\)
180: 87 e5 12 04 read.l r4,0\(r5\)
184: 07 e7 1a 12 read.w r6,1\(r7\)
188: 07 e9 23 f1 read.b r8,31\(r9\)
18c: 87 e9 1a 11 read.b r6,1\(r9\)
190: 87 e0 aa 04 readmda r10
194: 87 e0 ae 14 readmdb r11
198: 07 e0 c6 24 readmdc r17
19c: 87 a0 10 04 rflag r4
1a0: 87 a0 1c 04 rflag r7
1a4: 86 45 10 64 sub.l r4,r5,r6
1a8: 06 48 1c 92 sub.w r7,r8,r9
1ac: 06 41 00 21 cmp.b r1,r2
1b0: 06 65 10 64 subc.l r4,r5,r6
1b4: 86 68 1c 92 subc.w r7,r8,r9
1b8: 86 61 00 21 cmpc.b r1,r2
1bc: 07 03 10 24 xor.l r4,r3,r2
1c0: 87 06 14 72 xor.w r5,r6,r7
1c4: 07 09 04 81 xor.b r1,r9,r8
1c8: 04 07 ff ff addi r7,65535
1cc: 04 87 80 00 movil r7,0x8000
1d0: 84 a7 7f ff moviu r7,0x7FFF
1d4: 04 c6 00 01 moviq r6,1
1d8: 84 47 ff ff subi r7,65535
1dc: ff 86 00 04 bra tr,r6,r0
1e0: 86 00 00 04 add.l r0,r0,r0
1e4: d3 e3 84 5c fpinst 10,f1,f3,f5
1e8: db e4 88 6c fpinst 11,f2,f4,f6
1ec: 7b ed ac fc fpinst 15,f11,f13,f15
1f0: 8f ef e6 ec fpuread 1,r25,f15,f14
1f4: 3b e3 9c 0c fabs f7,f3
1f8: 0b e6 b0 ec fadd f12,f6,f14
1fc: 8b e6 b0 0c fadd f12,f6,f0
200: 63 e6 b0 0c fmove f12,f6
204: b3 e3 9c 0c fneg f7,f3
208: 93 e0 8c 9c fsub f3,f0,f9
20c: 1b e2 84 3c fmult f1,f2,f3
210: 23 eb a8 cc fdiv f10,f11,f12
214: 2b e9 8c 0c fsqrt f3,f9
218: 43 e4 94 0c ftoi f5,f4
21c: 4b e8 9c 0c itof f7,f8
220: 03 ff b4 0c fload f13,r31
224: 07 e7 e6 0c fstore r25,f7
228: d7 ef 8a 0c fcmp r2,f15,f0
22c: df ef 86 1c fcmpe r1,f15,f1

View File

@ -0,0 +1,179 @@
begin:
write.l (r2),r1
write.l 0(r2),r1
write.w 1(r1),r2
write.b 31(r3),r7
write.b (r4),r7
eamwrite 0,r4,r5
eamwrite 31,r7,r10
writemd r14,r15
writemdc r9
divs r5
divu r6
divds r10
divdu r11
asrd r12
lsrd r13
asld r14
dsi
mults r7,r8
multu r9,r10
eni
dsi
rfi
nsrel:
brr fa,nsrel
rflag r0
brr eq,nsrel
rflag r0
brr cs,nsrel
rflag r0
brr os,nsrel
rflag r0
brr ns,sreg
rflag r0
brr ne,sreg
rflag r0
brr cc,sreg
rflag r0
brr oc,sreg
rflag r0
brr nc,sreg
rflag r0
brr ge,sreg
rflag r0
brr gt,sreg
rflag r0
brr hi,sreg
rflag r0
brr le,sreg
rflag r0
brr ls,sreg
rflag r0
brr lt,sreg
rflag r0
brr tr,sreg
rflag r0
brr eq,nsrel
nop
brr fa,.
nop
sreg:
adc.l r0,r0,r1
adc.w r2,r0,r3
adc.b r4,r0,r5
add.l r2,r0,r1
add.w r5,r4,r3
add.b r7,r7,r6
and.l r2,r0,r1
and.w r5,r4,r3
and.b r7,r7,r6
asl.l r4,r3,r4
asl.w r6,r5,0
asl.w r6,r5,1
asl.b r8,r7,31
asr.l r4,r3,r4
asr.w r6,r5,0
asr.w r6,r5,1
asr.b r8,r7,31
bra eq,r9,r10
rflag r0
bra ne,r7,r1
eamread r11,0
eamread r12,31
extb.l r12,r13
extb.w r14,r15
extb.b r0,r1
extw.l r2,r3
extw.w r4,r5
lsr.l r6,r7,r8
lsr.w r9,r10,0
lsr.w r9,r10,1
lsr.b r9,r10,31
not.l r11,r12
not.w r13,r14
not.b r15,r10
or.l r5,r6,r7
or.w r8,r9,r10
or.b r1,r2,r3
read.l r4,(r5)
read.l r4,0(r5)
read.w r6,1(r7)
read.b r8,31(r9)
read.b r6,1(r9)
readmda r10
readmdb r11
readmdc r17
rflag r4
rflag r7
sub.l r4,r5,r6
sub.w r7,r8,r9
sub.b r0,r1,r2
subc.l r4,r5,r6
subc.w r7,r8,r9
subc.b r0,r1,r2
xor.l r4,r3,r2
xor.w r5,r6,r7
xor.b r1,r9,r8
addi r7,65535
movil r7,32768
moviu r7,32767
moviq r6,1
subi r7,65535
bra tr,r6,r0
add.l r0,r0,r0
fpinst 10,f1,f3,f5
fpinst 11,f2,f4,f6
fpinst 15,f11,f13,f15
fpuread 1,r25,f15,f14
fabs f7,f3
fadd f12,f6,f14
fadd f12,f6,f0
fmove f12,f6
fneg f7,f3
fsub f3,f0,f9
fmult f1,f2,f3
fdiv f10,f11,f12
fsqrt f3,f9
ftoi f5,f4
itof f7,f8
fload f13,r31
fstore r25,f7
fcmp r2,f15,f0
fcmpe r1,f15,f1
.end

View File

@ -0,0 +1,159 @@
#as: -mtune=gr6
#objdump: -dzr
#name: allinsn_gr6
.*: +file format .*
Disassembly of section .text:
0+0000000 <begin>:
0: 03 e2 00 14 write.l 0\(r2\),r1
4: 03 e2 00 14 write.l 0\(r2\),r1
8: 83 e1 04 22 write.w 1\(r1\),r2
c: 03 e3 7c 71 write.b 31\(r3\),r7
10: 03 e4 00 71 write.b 0\(r4\),r7
14: 03 e4 80 54 mults r4,r5
18: 83 e7 fc a4 eamwrite 31,r7,r10
1c: 83 ee 90 f4 writemd r14,r15
20: 83 e9 94 04 writemdc r9
24: 03 e5 88 04 divs r5
28: 83 e6 8c 04 divu r6
2c: 83 ea 98 04 divds r10
30: 83 eb 9c 04 divdu r11
34: 83 ec a4 04 asrd r12
38: 03 ed a8 04 lsrd r13
3c: 83 ee ac 04 asld r14
40: 82 80 00 04 dsi
44: 83 e7 80 84 mults r7,r8
48: 03 e9 84 a4 multu r9,r10
4c: 02 a0 00 04 eni
50: 82 80 00 04 dsi
54: 82 fe 01 d4 rfi
0+0000058 <nsrel>:
58: 00 00 00 00 nop
5c: 07 a0 00 04 rflag r0
60: 08 00 ff fe brr eq,-2
64: 07 a0 00 04 rflag r0
68: 90 00 ff fc brr cs,-4
6c: 07 a0 00 04 rflag r0
70: 18 00 ff fa brr os,-6
74: 07 a0 00 04 rflag r0
78: 20 00 00 1c brr ns,\+28
7c: 07 a0 00 04 rflag r0
80: a8 00 00 1a brr ne,\+26
84: 07 a0 00 04 rflag r0
88: 30 00 00 18 brr cc,\+24
8c: 07 a0 00 04 rflag r0
90: 38 00 00 16 brr oc,\+22
94: 07 a0 00 04 rflag r0
98: c0 00 00 14 brr nc,\+20
9c: 07 a0 00 04 rflag r0
a0: 48 00 00 12 brr ge,\+18
a4: 07 a0 00 04 rflag r0
a8: d0 00 00 10 brr gt,\+16
ac: 07 a0 00 04 rflag r0
b0: 58 00 00 0e brr hi,\+14
b4: 07 a0 00 04 rflag r0
b8: 60 00 00 0c brr le,\+12
bc: 07 a0 00 04 rflag r0
c0: e8 00 00 0a brr ls,\+10
c4: 07 a0 00 04 rflag r0
c8: 70 00 00 08 brr lt,\+8
cc: 07 a0 00 04 rflag r0
d0: 78 00 00 06 brr tr,\+6
d4: 07 a0 00 04 rflag r0
d8: 08 00 ff e0 brr eq,-32
dc: 00 00 00 00 nop
e0: 00 00 00 00 nop
e4: 00 00 00 00 nop
0+00000e8 <sreg>:
e8: 86 20 00 14 adc.l r0,r0,r1
ec: 86 20 08 32 adc.w r2,r0,r3
f0: 86 20 10 51 adc.b r4,r0,r5
f4: 86 00 08 14 add.l r2,r0,r1
f8: 06 04 14 32 add.w r5,r4,r3
fc: 86 07 1c 61 add.b r7,r7,r6
100: 87 40 08 14 and.l r2,r0,r1
104: 07 44 14 32 and.w r5,r4,r3
108: 87 47 1c 61 and.b r7,r7,r6
10c: 06 e3 10 44 asl.l r4,r3,r4
110: 86 e5 1a 02 asl.w r6,r5,0
114: 06 e5 1a 12 asl.w r6,r5,1
118: 06 e7 23 f1 asl.b r8,r7,31
11c: 86 a3 10 44 asr.l r4,r3,r4
120: 06 a5 1a 02 asr.w r6,r5,0
124: 86 a5 1a 12 asr.w r6,r5,1
128: 86 a7 23 f1 asr.b r8,r7,31
12c: 0f 89 28 04 bra eq,r9,r10
130: 07 a0 00 04 rflag r0
134: af 87 04 04 bra ne,r7,r1
138: 07 e0 ae 04 readmda r11
13c: 07 e0 b3 f4 eamread r12,31
140: 87 cd 30 04 extb.l r12,r13
144: 87 cf 38 02 extb.w r14,r15
148: 87 c1 00 01 extb.b r0,r1
14c: 86 83 08 04 extw.l r2,r3
150: 86 85 10 02 extw.w r4,r5
154: 86 c7 18 84 lsr.l r6,r7,r8
158: 06 ca 26 02 lsr.w r9,r10,0
15c: 86 ca 26 12 lsr.w r9,r10,1
160: 86 ca 27 f1 lsr.b r9,r10,31
164: 87 6c 2c 04 not.l r11,r12
168: 07 6e 34 02 not.w r13,r14
16c: 07 6a 3c 01 not.b r15,r10
170: 07 26 14 74 or.l r5,r6,r7
174: 07 29 20 a2 or.w r8,r9,r10
178: 87 22 04 31 or.b r1,r2,r3
17c: 87 e5 12 04 read.l r4,0\(r5\)
180: 87 e5 12 04 read.l r4,0\(r5\)
184: 07 e7 1a 12 read.w r6,1\(r7\)
188: 07 e9 23 f1 read.b r8,31\(r9\)
18c: 87 e9 1a 11 read.b r6,1\(r9\)
190: 87 e0 aa 04 readmda r10
194: 87 e0 ae 14 readmdb r11
198: 07 e0 c6 24 readmdc r17
19c: 87 a0 10 04 rflag r4
1a0: 87 a0 1c 04 rflag r7
1a4: 86 45 10 64 sub.l r4,r5,r6
1a8: 06 48 1c 92 sub.w r7,r8,r9
1ac: 06 41 00 21 cmp.b r1,r2
1b0: 06 65 10 64 subc.l r4,r5,r6
1b4: 86 68 1c 92 subc.w r7,r8,r9
1b8: 86 61 00 21 cmpc.b r1,r2
1bc: 07 03 10 24 xor.l r4,r3,r2
1c0: 87 06 14 72 xor.w r5,r6,r7
1c4: 07 09 04 81 xor.b r1,r9,r8
1c8: 04 07 ff ff addi r7,65535
1cc: 04 87 80 00 movil r7,0x8000
1d0: 84 a7 7f ff moviu r7,0x7FFF
1d4: 04 c6 00 01 moviq r6,1
1d8: 84 47 ff ff subi r7,65535
1dc: ff 86 00 04 bra tr,r6,r0
1e0: 86 00 00 04 add.l r0,r0,r0
1e4: d3 e3 84 5c fpinst 10,f1,f3,f5
1e8: db e4 88 6c fpinst 11,f2,f4,f6
1ec: 7b ed ac fc fpinst 15,f11,f13,f15
1f0: 8f ef e6 ec fpuread 1,r25,f15,f14
1f4: 3b e3 9c 0c fabs f7,f3
1f8: 0b e6 b0 ec fadd f12,f6,f14
1fc: 8b e6 b0 0c fadd f12,f6,f0
200: 63 e6 b0 0c fmove f12,f6
204: b3 e3 9c 0c fneg f7,f3
208: 93 e0 8c 9c fsub f3,f0,f9
20c: 1b e2 84 3c fmult f1,f2,f3
210: 23 eb a8 cc fdiv f10,f11,f12
214: 2b e9 8c 0c fsqrt f3,f9
218: 43 e4 94 0c ftoi f5,f4
21c: 4b e8 9c 0c itof f7,f8
220: 03 ff b4 0c fload f13,r31
224: 07 e7 e6 0c fstore r25,f7
228: 57 ef 82 0c fcmp r0,f15,f0
22c: 5f ef 82 1c fcmpe r0,f15,f1
230: 57 ef 82 0c fcmp r0,f15,f0
234: 5f ef 82 1c fcmpe r0,f15,f1
238: 02 63 00 04 bmd r1,r2,r3
23c: 82 23 00 04 bmi r1,r2,r3
240: 85 00 80 00 wrtl 0x8000
244: 05 20 7f ff wrtu 0x7FFF

View File

@ -0,0 +1,185 @@
begin:
write.l (r2),r1
write.l 0(r2),r1
write.w 1(r1),r2
write.b 31(r3),r7
write.b (r4),r7
eamwrite 0,r4,r5
eamwrite 31,r7,r10
writemd r14,r15
writemdc r9
divs r5
divu r6
divds r10
divdu r11
asrd r12
lsrd r13
asld r14
dsi
mults r7,r8
multu r9,r10
eni
dsi
rfi
nsrel:
brr fa,nsrel
rflag r0
brr eq,nsrel
rflag r0
brr cs,nsrel
rflag r0
brr os,nsrel
rflag r0
brr ns,sreg
rflag r0
brr ne,sreg
rflag r0
brr cc,sreg
rflag r0
brr oc,sreg
rflag r0
brr nc,sreg
rflag r0
brr ge,sreg
rflag r0
brr gt,sreg
rflag r0
brr hi,sreg
rflag r0
brr le,sreg
rflag r0
brr ls,sreg
rflag r0
brr lt,sreg
rflag r0
brr tr,sreg
rflag r0
brr eq,nsrel
nop
brr fa,.
nop
sreg:
adc.l r0,r0,r1
adc.w r2,r0,r3
adc.b r4,r0,r5
add.l r2,r0,r1
add.w r5,r4,r3
add.b r7,r7,r6
and.l r2,r0,r1
and.w r5,r4,r3
and.b r7,r7,r6
asl.l r4,r3,r4
asl.w r6,r5,0
asl.w r6,r5,1
asl.b r8,r7,31
asr.l r4,r3,r4
asr.w r6,r5,0
asr.w r6,r5,1
asr.b r8,r7,31
bra eq,r9,r10
rflag r0
bra ne,r7,r1
eamread r11,0
eamread r12,31
extb.l r12,r13
extb.w r14,r15
extb.b r0,r1
extw.l r2,r3
extw.w r4,r5
lsr.l r6,r7,r8
lsr.w r9,r10,0
lsr.w r9,r10,1
lsr.b r9,r10,31
not.l r11,r12
not.w r13,r14
not.b r15,r10
or.l r5,r6,r7
or.w r8,r9,r10
or.b r1,r2,r3
read.l r4,(r5)
read.l r4,0(r5)
read.w r6,1(r7)
read.b r8,31(r9)
read.b r6,1(r9)
readmda r10
readmdb r11
readmdc r17
rflag r4
rflag r7
sub.l r4,r5,r6
sub.w r7,r8,r9
sub.b r0,r1,r2
subc.l r4,r5,r6
subc.w r7,r8,r9
subc.b r0,r1,r2
xor.l r4,r3,r2
xor.w r5,r6,r7
xor.b r1,r9,r8
addi r7,65535
movil r7,32768
moviu r7,32767
moviq r6,1
subi r7,65535
bra tr,r6,r0
add.l r0,r0,r0
fpinst 10,f1,f3,f5
fpinst 11,f2,f4,f6
fpinst 15,f11,f13,f15
fpuread 1,r25,f15,f14
fabs f7,f3
fadd f12,f6,f14
fadd f12,f6,f0
fmove f12,f6
fneg f7,f3
fsub f3,f0,f9
fmult f1,f2,f3
fdiv f10,f11,f12
fsqrt f3,f9
ftoi f5,f4
itof f7,f8
fload f13,r31
fstore r25,f7
fcmp r0,f15,f0
fcmpe r0,f15,f1
fcmp f15,f0
fcmpe f15,f1
bmd r1,r2,r3
bmi r1,r2,r3
wrtl 32768
wrtu 32767
.end

View File

@ -0,0 +1,20 @@
; Test error messages where targets are out of range.
; { dg-do assemble }
; { dg-options "-mtune=mcm" }
.text
foo:
fstore r4,f15
read.b r6,1(r4) ; { dg-error "base register not ready" "r4 not ready" }
readmdc r5
read.w r7,31(r5) ; { dg-error "base register not ready" "r5 not ready" }
fcmp r6,f4,f5
read.l r8,13(r6) ; { dg-error "base register not ready" "r6 not ready" }
move.b r7,r0
write.b 2(r7),r0 ; { dg-error "base register not ready" "r7 not ready" }
move.w r8,r0
write.w 2(r8),r0 ; { dg-error "base register not ready" "r8 not ready" }
move.l r9,r0
write.b 2(r9),r0 ; { dg-error "base register not ready" "r9 not ready" }
.end

View File

@ -0,0 +1,16 @@
#as:
#objdump: -d
#name: brr-1
.*: +file format .*
Disassembly of section .text:
00000000 <foo>:
0: 78 00 00 00 brr tr,\+0
4: 84 c1 00 01 moviq r1,1
8: 78 00 00 00 brr tr,\+0
c: 84 c1 00 02 moviq r1,2
10: 78 00 ff fc brr tr,-4
14: 84 c1 00 04 moviq r1,4
18: 00 00 00 00 nop

View File

@ -0,0 +1,9 @@
.text
foo:
brr tr,foo
moviq r1,1
brr tr,0
moviq r1,2
brr tr,foo
moviq r1,4
brr fa,.

View File

@ -0,0 +1,18 @@
#as: -mtune=gr6
#objdump: -d
#name: brr-2
.*: +file format .*
Disassembly of section .text:
00000000 <foo>:
0: 00 00 00 00 nop
4: 78 00 ff ff brr tr,-1
8: 84 c1 00 01 moviq r1,1
c: 00 00 00 00 nop
10: 78 00 ff ff brr tr,-1
14: 84 c1 00 02 moviq r1,2
18: 78 00 ff fa brr tr,-6
1c: 84 c1 00 04 moviq r1,4
20: 00 00 00 00 nop

View File

@ -0,0 +1,9 @@
.text
foo:
brr tr,foo
moviq r1,1
brr tr,0
moviq r1,2
brr tr,foo
moviq r1,4
brr fa,.

View File

@ -0,0 +1,15 @@
; Test error messages where targets are out of range.
; { dg-do assemble }
.text
L1:
.rept 32768
nop
.endr
brr tr,L1
L2:
.rept 32769
nop
.endr
brr tr,L2 ; { dg-error "out of range" "out of range brr" }

View File

@ -0,0 +1,16 @@
; Test error messages when targets are out of range
; { dg-do assemble }
.text
brr tr,L1
.rept 32766
nop
.endr
L1:
brr tr,L2 ; { dg-error "out of range" "out of range brr" }
.rept 32767
nop
.endr
L2:
.end

View File

@ -0,0 +1,35 @@
# 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.
# Test assembler warnings and errors.
if [istarget visium-*-*] {
load_lib gas-dg.exp
dg-init
dg-runtest "$srcdir/$subdir/brr_backward.s" "" ""
dg-runtest "$srcdir/$subdir/brr_forward.s" "" ""
dg-runtest "$srcdir/$subdir/basereg.s" "" ""
dg-runtest "$srcdir/$subdir/fcmp.s" "" ""
dg-finish
}

View File

@ -0,0 +1,11 @@
; Test error messages for new syntax of FCMP/FCMPE
; { dg-do assemble }
; { dg-options "-mtune=gr6" }
.text
foo:
fcmp r1, f1, f2 ; { dg-error "can only use r0 as Dest register" }
fcmp r0, f1, f2
fcmp f1, f2
.end

View File

@ -0,0 +1,19 @@
#as:
#objdump: -dr
#name: high-1
.*: +file format .*
Disassembly of section .text:
0+0000000 <foo>:
0: 84 a4 00 01 moviu r4,0x0001
0: R_VISIUM_HI16 .text\+0x10000
4: 84 84 00 00 movil r4,0x0000
4: R_VISIUM_LO16 .text\+0x10000
8: 84 a4 12 34 moviu r4,0x1234
c: 84 84 87 65 movil r4,0x8765
10: 04 a4 00 00 moviu r4,0x0000
10: R_VISIUM_HI16 .text\+0x18
14: 84 84 00 18 movil r4,0x0018
14: R_VISIUM_LO16 .text\+0x18

View File

@ -0,0 +1,11 @@
; Test %hi/%lo handling.
foo:
moviu r4,%u(foo+0x10000)
movil r4,%l(foo+0x10000)
moviu r4,%u 0x12348765
movil r4,%l 0x12348765
moviu r4,%u .+8
movil r4,%l .+4

View File

@ -0,0 +1,17 @@
#as:
#objdump: -dr
#name: immed-1
.*: +file format .*
Disassembly of section .text:
0+0000000 <bar>:
0: 04 c1 00 00 moviq r1,0
4: 84 41 00 0c subi r1,12
8: 04 01 00 00 addi r1,0
8: R_VISIUM_IM16 \.text
c: 84 c4 ff ec moviq r4,65516
\.\.\.
1010: 04 c6 00 08 moviq r6,8
1014: 04 c7 00 e4 moviq r7,228

View File

@ -0,0 +1,10 @@
! Tests for complex immediate expressions.
.text
bar:
moviq r1, 0
subi r1, (. - bar + 8)
addi r1, bar
moviq r4, (bar - . -8) & 0xffff
.space 4096
moviq r6, (. - bar - 8) & 0xff
moviq r7, (bar - . -8) & 0xff

View File

@ -0,0 +1,18 @@
#as:
#objdump: -dr
#name: rela-1
.*: +file format .*
Disassembly of section .text:
0+0000000 <text>:
0: f8 00 00 04 brr tr,\+4
0: R_VISIUM_PC16 .text2\+0x10
4: 00 00 00 00 nop
8: 84 a6 00 00 moviu r6,0x0000
8: R_VISIUM_HI16 .text2\+0x10
c: 84 86 00 10 movil r6,0x0010
c: R_VISIUM_LO16 .text2\+0x10
10: ff 86 00 04 bra tr,r6,r0
14: 00 00 00 00 nop

View File

@ -0,0 +1,20 @@
.section .text
text:
brr tr,label
nop
moviu r6, %u label
movil r6, %l label
bra tr,r6,r0
nop
.section .text2
text2:
nop
nop
nop
nop
label:
.end

View File

@ -0,0 +1,32 @@
# 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 assembler testsuite.
if [istarget visium-*-*] {
run_dump_test "allinsn_def"
run_dump_test "allinsn_gr5"
run_dump_test "allinsn_gr6"
run_dump_test "brr-1"
run_dump_test "brr-2"
run_dump_test "high-1"
run_dump_test "immed-1"
run_dump_test "rela-1"
}