Added documentation of v850 assembler options.
authorNick Clifton <nickc@redhat.com>
Fri, 22 Aug 1997 23:37:00 +0000 (23:37 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 22 Aug 1997 23:37:00 +0000 (23:37 +0000)
gas/ChangeLog
gas/doc/.Sanitize
gas/doc/all.texi
gas/doc/as.texinfo
gas/doc/c-v850.texi [new file with mode: 0644]

index 40bce64..1a608c0 100644 (file)
@@ -1,9 +1,13 @@
+start-sanitize-v850
 Fri Aug 22 11:16:14 1997  Nick Clifton  <nickc@cygnus.com>
 
+       * doc/as.texinfo: Add inclusion of c-v850.texi
+
+       * doc/c-v850.texi: New file.
+
        * read.c (is_end_of_line): Make NUL character be considered to be
        a line terminator.
 
-start-sanitize-v850
 Fri Aug 22 10:45:33 1997  Nick Clifton  <nickc@cygnus.com>
 
        * config/tc-v850.c (parse_register_list): Add support for curly
index a17c05e..2d3a446 100644 (file)
@@ -22,6 +22,20 @@ Do-first:
 # called.  Directories not listed will be removed in their entirety
 # with rm -rf.
 
+if ( echo $* | grep keep\-v850 > /dev/null ) ; then
+       keep_these_too="c-v850.texi"
+else
+ if ( echo $* | grep keep\-v850e > /dev/null ) ; then
+       keep_these_too="c-v850.texi"
+ else
+  if ( echo $* | grep keep\-v850eq > /dev/null ) ; then
+       keep_these_too="c-v850.texi"
+  else
+       lose_these_too="c-v850.texi"
+  fi
+ fi
+fi
+
 Things-to-keep:
 
 Makefile.am
@@ -52,6 +66,71 @@ Things-to-lose:
 
 Do-last:
 
+v850_files="all.texi as.texinfo"
+if ( echo $* | grep keep\-v850 > /dev/null ) ; then
+       for i in $v850_files ; do
+               if test ! -d $i && (grep sanitize-v850 $i > /dev/null) ; then
+                       if [ -n "${verbose}" ] ; then
+                               echo Keeping v850 stuff in $i
+                       fi
+               fi
+       done
+else
+  if ( echo $* | grep keep\-v850e > /dev/null ) ; then
+    true
+  else
+    if ( echo $* | grep keep\-v850eq > /dev/null ) ; then
+      true
+    else
+       for i in $v850_files ; do
+               if test ! -d $i && (grep sanitize-v850 $i > /dev/null) ; then
+                       if [ -n "${verbose}" ] ; then
+                               echo Removing traces of \"v850\" from $i...
+                       fi
+                       cp $i new
+                       sed '/start\-sanitize\-v850/,/end-\sanitize\-v850/d' < $i > new
+                       if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+                               if [ -n "${verbose}" ] ; then
+                                       echo Caching $i in .Recover...
+                               fi
+                               mv $i .Recover
+                       fi
+                       mv new $i
+               fi
+       done
+    fi
+  fi
+fi
+
+v850e_files="c-v850.texi"
+if ( echo $* | grep keep\-v850e > /dev/null ) ; then
+  if ( echo $* | grep keep\-v850eq > /dev/null ) ; then
+       for i in $v850e_files ; do
+               if test ! -d $i && (grep sanitize-v850e $i > /dev/null) ; then
+                       if [ -n "${verbose}" ] ; then
+                               echo Keeping v850e stuff in $i
+                       fi
+               fi
+       done
+  else
+       for i in $v850e_files ; do
+               if test ! -d $i && (grep sanitize-v850eq $i > /dev/null) ; then
+                       if [ -n "${verbose}" ] ; then
+                               echo Removing traces of \"v850eq\" from $i...
+                       fi
+                       cp $i new
+                       sed '/start\-sanitize\-v850eq/,/end-\sanitize\-v850eq/d' < $i > new
+                       if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+                               if [ -n "${verbose}" ] ; then
+                                       echo Caching $i in .Recover...
+                               fi
+                               mv $i .Recover
+                       fi
+                       mv new $i
+               fi
+       done
+fi
+
 # Don't try to clean directories here, as the 'mv' command will fail.
 # Also, grep fails on NFS mounted directories.
 
index 39e3738..666fbde 100644 (file)
 @c CPUs of interest
 @c ================
 @set A29K
+@set ARC
+@set ARM
+@set D10V
 @set H8/300
 @set H8/500
 @set SH
 @set I80386
 @set I960
+@set MIPS
 @set M680X0
 @set Z8000
 @set SPARC
 @set VAX
 @set VXWORKS
 @set HPPA
+@c start-sanitize-v850
+@set V850
+@c end-sanitize-v850
 
 @c Does this version of the assembler use the difference-table kluge?
 @set DIFF-TBL-KLUGE
index 5ff1f76..2243c9e 100644 (file)
@@ -252,10 +252,13 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @end smallexample
 
 @table @code
-@item -a[dhlns]
+@item -a[cdhlmns]
 Turn on listings, in any of a variety of ways:
 
 @table @code
+@item -ac
+omit false conditionals
+
 @item -ad
 omit debugging directives
 
@@ -265,6 +268,9 @@ include high-level source
 @item -al
 include assembly
 
+@item -am
+include macro expansions
+
 @item -an
 omit forms processing
 
@@ -277,8 +283,7 @@ set the name of the listing file
 
 You may combine these options; for example, use @samp{-aln} for assembly
 listing without forms processing.  The @samp{=file} option, if used, must be
-the last one.  By itself, @samp{-a} defaults to @samp{-ahls}---that is, all
-listings turned on.
+the last one.  By itself, @samp{-a} defaults to @samp{-ahls}.
 
 @item -D
 Ignored.  This option is accepted for script compatibility with calls to
@@ -1437,6 +1442,11 @@ is considered a comment and is ignored.  The line comment character is
 @ifset Z8000
 @samp{!} for the Z8000;
 @end ifset
+@c start-sanitize-v850
+@ifset V850
+@samp{#} on the V850;
+@end ifset
+@c end-sanitize-v850
 see @ref{Machine Dependencies}.  @refill
 @c FIXME What about i386, m88k, i860?
 
@@ -1446,6 +1456,15 @@ character only begins a comment if it is the first non-whitespace character on
 a line, while the other always begins a comment.
 @end ifset
 
+@c start-sanitize-v850
+@ifset V850
+The V850 assembler also supports a double dash as starting a comment that
+extends to the end of the line.
+
+@samp{--};
+@end ifset
+@c end-sanitize-v850
+
 @kindex #
 @cindex lines starting with @code{#}
 @cindex logical line numbers
@@ -4826,6 +4845,12 @@ family.
 @include c-vax.texi
 @end ifset
 
+@c start-sanitize-v850
+@ifset V850
+@include c-v850.texi
+@end ifset
+@c end-sanitize-v850
+
 @ifset GENERIC
 @c reverse effect of @down at top of generic Machine-Dep chapter
 @raisesections
diff --git a/gas/doc/c-v850.texi b/gas/doc/c-v850.texi
new file mode 100644 (file)
index 0000000..8dc70f7
--- /dev/null
@@ -0,0 +1,258 @@
+@c Copyright (C) 1997 Free Software Foundation, Inc.
+@c This is part of the GAS manual.
+@c For copying conditions, see the file as.texinfo.
+
+@node Machine Dependencies
+@chapter v850 Dependent Features
+
+@cindex V850 support
+@menu
+* V850 Options::              Options
+* V850 Syntax::               Syntax
+* V850 Floating Point::       Floating Point
+* V850 Directives::           V850 Machine Directives
+* V850 Opcodes::              Opcodes
+@end menu
+
+@node V850 Options
+@section Options
+@cindex V850 options (none)
+@cindex options for V850 (none)
+@code{@value{AS}} has no additional command-line options for the V850
+processor family.
+
+@node V850 Syntax
+@section Syntax
+@menu
+* V850-Chars::                Special Characters
+* V850-Regs::                 Register Names
+@end menu
+
+@node V850-Chars
+@subsection Special Characters
+
+@cindex line comment character, V850
+@cindex V850 line comment character
+@samp{#} is the line comment character.
+@node V850-Regs
+@subsection Register Names
+
+@cindex V850 register names
+@cindex register names, V850
+@code{@value{AS}} supports the following names for registers:
+@table @code
+@cindex @code{zero} register, V850
+@item general register 0
+r0, zero
+@item general register 1
+r1
+@item general register 2
+r2
+@cindex @code{sp} register, V850
+@item general register 3
+r3, sp
+@cindex @code{gp} register, V850
+@item general register 4
+r4, gp
+@cindex @code{tp} register, V850
+@item general register 5
+r5, tp
+@item general register 6
+r6
+@item general register 7
+r7
+@item general register 8
+r8
+@item general register 9
+r9
+@item general register 10
+r10
+@item general register 11
+r11
+@item general register 12
+r12
+@item general register 13
+r13
+@item general register 14
+r14
+@item general register 15
+r15
+@item general register 16
+r16
+@item general register 17
+r17
+@item general register 18
+r18
+@item general register 19
+r19
+@item general register 20
+r20
+@item general register 21
+r21
+@item general register 22
+r22
+@item general register 23
+r23
+@item general register 24
+r24
+@item general register 25
+r25
+@item general register 26
+r26
+@item general register 27
+r27
+@item general register 28
+r28
+@item general register 29
+r29
+@cindex @code{ep} register, V850
+@item general register 30
+r30, ep
+@cindex @code{lp} register, V850
+@item general register 31
+r31, lp
+@cindex @code{eipc} register, V850
+@item system register 0
+eipc
+@cindex @code{eipsw} register, V850
+@item system register 1
+eipsw
+@cindex @code{fepc} register, V850
+@item system register 2
+fepc
+@cindex @code{fepsw} register, V850
+@item system register 3
+fepsw
+@cindex @code{ecr} register, V850
+@item system register 4
+ecr
+@cindex @code{psw} register, V850
+@item system register 5
+psw
+@c start-santize-v850e
+@cindex @code{ctpc} register, V850
+@item system register 16
+ctpc
+@cindex @code{ctpsw} register, V850
+@item system register 17
+ctpsw
+@cindex @code{dbpc} register, V850
+@item system register 18
+dbpc
+@cindex @code{dbpsw} register, V850
+@item system register 19
+dbpsw
+@cindex @code{ctbp} register, V850
+@item system register 20
+ctbp
+@c end-santize-v850e
+@end table
+
+@node V850 Floating Point
+@section Floating Point
+
+@cindex floating point, V850 (@sc{ieee})
+@cindex V850 floating point (@sc{ieee})
+The V850 family uses @sc{ieee} floating-point numbers.
+
+@node V850 Directives
+@section V850 Machine Directives
+
+@cindex machine directives, V850
+@cindex V850 machine directives
+@table @code
+@cindex @code{offset} directive, V850
+@item .offset @var{<expression>}
+Moves the offset into the current section to the specified amount. 
+
+@cindex @code{section} directive, V850
+@item .section "name", <type>
+This is an extension to the standard .section directive.  It sets the
+current section to be <type> and creates an alias for this section
+called "name". 
+
+@end table
+
+@node V850 Opcodes
+@section Opcodes
+
+@cindex V850 opcodes
+@cindex opcodes for V850
+@code{@value{AS}} implements all the standard V850 opcodes.
+
+@code{@value{AS}} also implements the following pseudo ops:
+
+@table @code
+
+@cindex @code{hi} pseudo-op, V850
+@item hi()
+Computes the higher 16 bits of the given expression and stores it into
+the immediate operand field of the given instruction.  For example:
+
+    @samp{mulhi hi(here - there), r5, r6}
+
+computes the difference between the address of labels 'here' and
+'there', takes the upper 16 bits of this difference, shifts it down 16
+bits and then mutliplies it by the lower 16 bits in register 5, putting
+the result into register 6. 
+
+
+@cindex @code{lo} pseudo-op, V850
+@item lo()
+Computes the lower 16 bits of the given expression and stores it into
+the immediate operand field of the given instruction.  For example:
+
+    @samp{addi lo(here - there), r5, r6}
+
+computes the difference between the address of labels 'here' and
+'there', takes the lower 16 bits of this difference and adds it to
+register 5, putting the result into register 6.
+
+@cindex @code{sdaoff} pseudo-op, V850
+@item sdaoff()
+Computes the offset of the named variable from the start of the Small
+Data Area (whoes address is held in register 4, the GP register) and
+stores the result as a 16 bit signed value in the immediate operand
+field of the given instruction.  For example: 
+
+      @samp{ld.w sdaoff(_a_variable)[gp],r6}
+
+loads the contents of the location pointed to by the label '_a_variable'
+into register 6, provided that the label is located somewhere within +/-
+32K of the address held in the GP register.  [Note the linker assumes
+that the GP register contains a fixed address set to the address of the
+label called '__gp'].
+
+@cindex @code{tdaoff} pseudo-op, V850
+@item tdaoff()
+Computes the offset of the named variable from the start of the Tiny
+Data Area (whoes address is held in register 30, the EP register) and
+stores the result as a 4,5,7 or 8 bit unsigned value in the immediate
+operand field of the given instruction.  For example:
+
+      @samp{sld.w tdaoff(_a_variable)[ep],r6}
+
+loads the contents of the location pointed to by the label '_a_variable'
+into register 6, provided that the label is located somewhere within 256
+bytes of the address held in the EP register.  [Note the linker assumes
+that the EP register contains a fixed address set to the address of the
+label called '--ep'].
+
+@cindex @code{zdaoff} pseudo-op, V850
+@item zdaoff()
+Computes the offset of the named variable from address 0 and stores the
+result as a 16 bit signed value in the immediate operand field of the
+given instruction.  For example:
+
+      @samp{movea zdaoff(_a_variable),zero,r6}
+
+puts the address of the label '_a_variable' into register 6, assuming
+that the label is somewhere within the first 32K of memory.
+
+@end table
+
+
+For information on the V850 or Thumb instruction sets, see @cite{V850
+Family 32-/16-Bit single-Chip Microcontroller Architecture Manual} from NEC.
+Ltd.
+