aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorMichael Eager <eager@gcc.gnu.org>2010-09-30 18:21:57 +0000
committerMichael Eager <eager@gcc.gnu.org>2010-09-30 18:21:57 +0000
commit809201325afb3d70e517d30a483b39251b1b6e27 (patch)
tree3e6ddc920dca714da86387abe482505839030906 /gcc/doc
parent51be162e8ebb3b173c7f93c7719a7bc6192cbc42 (diff)
downloadgcc-809201325afb3d70e517d30a483b39251b1b6e27.zip
gcc-809201325afb3d70e517d30a483b39251b1b6e27.tar.gz
gcc-809201325afb3d70e517d30a483b39251b1b6e27.tar.bz2
Check in support for Xilinx MicroBlaze processor.
From-SVN: r164756
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/contrib.texi3
-rw-r--r--gcc/doc/extend.texi12
-rw-r--r--gcc/doc/install.texi9
-rw-r--r--gcc/doc/invoke.texi106
-rw-r--r--gcc/doc/md.texi8
5 files changed, 136 insertions, 2 deletions
diff --git a/gcc/doc/contrib.texi b/gcc/doc/contrib.texi
index 53f113d..aae1146 100644
--- a/gcc/doc/contrib.texi
+++ b/gcc/doc/contrib.texi
@@ -239,6 +239,9 @@ architecture, libio maintenance, and early math work.
Zdenek Dvorak for a new loop unroller and various fixes.
@item
+Michael Eager for his work on the Xilinx MicroBlaze port.
+
+@item
Richard Earnshaw for his ongoing work with the ARM@.
@item
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 877dec2..2785553 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -2534,8 +2534,8 @@ interrupt handler. The compiler will generate function entry and exit
sequences suitable for use in an interrupt handler when this attribute
is present.
-Note, interrupt handlers for the Blackfin, H8/300, H8/300H, H8S, and
-SH processors can be specified via the @code{interrupt_handler} attribute.
+Note, interrupt handlers for the Blackfin, H8/300, H8/300H, H8S, MicroBlaze,
+and SH processors can be specified via the @code{interrupt_handler} attribute.
Note, on the AVR, interrupts will be enabled inside the function.
@@ -3134,6 +3134,14 @@ Use this attribute on the Blackfin, H8/300, H8/300H, and H8S to indicate that
all registers except the stack pointer should be saved in the prologue
regardless of whether they are used or not.
+@item save_volatiles
+@cindex save volatile registers on the MicroBlaze
+Use this attribute on the MicroBlaze to indicate that the function is
+an interrupt handler. All volatile registers (in addition to non-volatile
+registers) will be saved in the function prologue. If the function is a leaf
+function, only volatiles used by the function are saved. A normal function
+return is generated instead of a return from interrupt.
+
@item section ("@var{section-name}")
@cindex @code{section} function attribute
Normally, the compiler places the code it generates in the @code{text} section.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 0a0e075..f4f4a15 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2952,6 +2952,8 @@ information are.
@item
@uref{#mep-x-elf,,mep-*-elf}
@item
+@uref{#microblaze-x-elf,,microblaze-*-elf}
+@item
@uref{#mips-x-x,,mips-*-*}
@item
@uref{#mips-sgi-irix5,,mips-sgi-irix5}
@@ -3822,6 +3824,13 @@ This configuration is intended for embedded systems.
@html
<hr />
@end html
+@heading @anchor{microblaze-x-elf}microblaze-*-elf
+Xilinx MicroBlaze processor.
+This configuration is intended for embedded systems.
+
+@html
+<hr />
+@end html
@heading @anchor{mips-x-x}mips-*-*
If on a MIPS system you get an error message saying ``does not have gp
sections for all it's [sic] sectons [sic]'', don't worry about it. This
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 51ce6474..449bc0c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -683,6 +683,13 @@ Objective-C and Objective-C++ Dialects}.
-mmult -mno-opts -mrepeat -ms -msatur -msdram -msim -msimnovec -mtf @gol
-mtiny=@var{n}}
+@emph{MicroBlaze Options}
+@gccoptlist{-msoft-float -mhard-float -msmall-divides -mcpu=@var{cpu} @gol
+-mmemcpy -mxl-soft-mul -mxl-soft-div -mxl-barrel-shift @gol
+-mxl-pattern-compare -mxl-stack-check -mxl-gp-opt -mno-clearbss @gol
+-mxl-multiply-high -mxl-float-convert -mxl-float-sqrt @gol
+-mxl-mode-@var{app-model}}
+
@emph{MIPS Options}
@gccoptlist{-EL -EB -march=@var{arch} -mtune=@var{arch} @gol
-mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 @gol
@@ -9828,6 +9835,7 @@ platform.
* M68hc1x Options::
* MCore Options::
* MeP Options::
+* MicroBlaze Options::
* MIPS Options::
* MMIX Options::
* MN10300 Options::
@@ -13811,6 +13819,104 @@ register. The default for this option is 4, but note that there's a
@end table
+@node MicroBlaze Options
+@subsection MicroBlaze Options
+@cindex MicroBlaze Options
+
+@table @gcctabopt
+
+@item -msoft-float
+@opindex msoft-float
+Use software emulation for floating point (default).
+
+@item -mhard-float
+@opindex mhard-float
+Use hardware floating point instructions.
+
+@item -mmemcpy
+@opindex mmemcpy
+Do not optimize block moves, use @code{memcpy}.
+
+@item -mno-clearbss
+@opindex mno-clearbss
+This option is deprecated. Use @option{-fno-zero-initialized-in-bss} instead.
+
+@item -mcpu=@var{cpu-type}
+@opindex mcpu=
+Use features of and schedule code for given CPU.
+Supported values are in the format @samp{v@var{X}.@var{YY}.@var{Z}},
+where @var{X} is a major version, @var{YY} is the minor version, and
+@var{Z} is compatiblity code. Example values are @samp{v3.00.a},
+@samp{v4.00.b}, @samp{v5.00.a}, @samp{v5.00.b}, @samp{v5.00.b}, @samp{v6.00.a}.
+
+@item -mxl-soft-mul
+@opindex mxl-soft-mul
+Use software multiply emulation (default).
+
+@item -mxl-soft-div
+@opindex mxl-soft-div
+Use software emulation for divides (default).
+
+@item -mxl-barrel-shift
+@opindex mxl-barrel-shift
+Use the hardware barrel shifter.
+
+@item -mxl-pattern-compare
+@opindex mxl-pattern-compare
+Use pattern compare instructions.
+
+@item -msmall-divides
+@opindex msmall-divides
+Use table lookup optimization for small signed integer divisions.
+
+@item -mxl-stack-check
+@opindex mxl-stack-check
+This option is deprecated. Use -fstack-check instead.
+
+@item -mxl-gp-opt
+@opindex mxl-gp-opt
+Use GP relative sdata/sbss sections.
+
+@item -mxl-multiply-high
+@opindex mxl-multiply-high
+Use multiply high instructions for high part of 32x32 multiply.
+
+@item -mxl-float-convert
+@opindex mxl-float-convert
+Use hardware floating point converstion instructions.
+
+@item -mxl-float-sqrt
+@opindex mxl-float-sqrt
+Use hardware floating point square root instruction.
+
+@item -mxl-mode-@var{app-model}
+Select application model @var{app-model}. Valid models are
+@table @samp
+@item executable
+normal executable (default), uses startup code @file{crt0.o}.
+
+@item xmdstub
+for use with Xilinx Microprocessor Debugger (XMD) based
+software intrusive debug agent called xmdstub. This uses startup file
+@file{crt1.o} and sets the start address of the program to be 0x800.
+
+@item bootstrap
+for applications that are loaded using a bootloader.
+This model uses startup file @file{crt2.o} which does not contain a processor
+reset vector handler. This is suitable for transferring control on a
+processor reset to the bootloader rather than the application.
+
+@item novectors
+for applications that do not require any of the
+MicroBlaze vectors. This option may be useful for applications running
+within a monitoring application. This model uses @file{crt3.o} as a startup file.
+@end table
+
+Option @option{-xl-mode-@var{app-model}} is a deprecated alias for
+@option{-mxl-mode-@var{app-model}}.
+
+@end table
+
@node MIPS Options
@subsection MIPS Options
@cindex MIPS options
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 1ca2220..1bbdcd0 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -2677,7 +2677,15 @@ A register indirect address without offset.
@item Z
Symbolic references to the control bus.
+@end table
+@item MicroBlaze---@file{config/microblaze/constraints.md}
+@table @code
+@item d
+A general register (@code{r0} to @code{r31}).
+
+@item z
+A status register (@code{rmsr}, @code{$fcc1} to @code{$fcc7}).
@end table