diff options
author | Michael Eager <eager@gcc.gnu.org> | 2010-09-30 18:21:57 +0000 |
---|---|---|
committer | Michael Eager <eager@gcc.gnu.org> | 2010-09-30 18:21:57 +0000 |
commit | 809201325afb3d70e517d30a483b39251b1b6e27 (patch) | |
tree | 3e6ddc920dca714da86387abe482505839030906 /gcc/doc | |
parent | 51be162e8ebb3b173c7f93c7719a7bc6192cbc42 (diff) | |
download | gcc-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.texi | 3 | ||||
-rw-r--r-- | gcc/doc/extend.texi | 12 | ||||
-rw-r--r-- | gcc/doc/install.texi | 9 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 106 | ||||
-rw-r--r-- | gcc/doc/md.texi | 8 |
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 |