This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Resubmit MicroBlaze support - 1 of 6 - documentation

This is a resubmission of support for the Xilinx MicroBlaze
processor.  AFAIK, all comments on the previous submission
have been addressed.

-- Michael Eager 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
2010-04-30  Michael Eager <>

	* doc/extend.texi (interrupt_handler): Add MicroBlaze;
	(save_volatiles): Add description for MicroBlaze. 
	* doc/invoke.texi (microblaze options): Add descriptions for
	MicroBlaze-specific options.
	* doc/contrib.texi: Add credit for MicroBlaze contribution.
	* doc/md.texi (microblaze): Describe constraints 'd' and 'z'.
	* doc/install.texi (microblaze-*-elf): Add. 
Index: gcc/doc/extend.texi
--- gcc/doc/extend.texi	(revision 158738)
+++ gcc/doc/extend.texi	(working copy)
@@ -2519,8 +2519,8 @@
 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.
@@ -3041,6 +3041,14 @@
 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.
Index: gcc/doc/invoke.texi
--- gcc/doc/invoke.texi	(revision 158738)
+++ gcc/doc/invoke.texi	(working copy)
@@ -675,6 +675,13 @@
 -mmult -mno-opts -mrepeat -ms -msatur -msdram -msim -msimnovec -mtf @gol
+@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
 @emph{MIPS Options}
 @gccoptlist{-EL  -EB  -march=@var{arch}  -mtune=@var{arch} @gol
 -mips1  -mips2  -mips3  -mips4  -mips32  -mips32r2 @gol
@@ -9632,6 +9639,7 @@
 * M68hc1x Options::
 * MCore Options::
 * MeP Options::
+* MicroBlaze Options::
 * MIPS Options::
 * MMIX Options::
 * MN10300 Options::
@@ -13537,6 +13545,103 @@
 @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
+Don't optimize block moves, use @code{memcpy}.
+@item -mno-clearbss
+@opindex mno-clearbss
+This option is deprecated.  Use -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 vX.YY.Z, where X is a major version, YY 
+is the minor version, and 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 
+@end table
 @node MIPS Options
 @subsection MIPS Options
 @cindex MIPS options
Index: gcc/doc/contrib.texi
--- gcc/doc/contrib.texi	(revision 158738)
+++ gcc/doc/contrib.texi	(working copy)
@@ -239,6 +239,9 @@
 Zdenek Dvorak for a new loop unroller and various fixes.
+Michael Eager for his work on the Xilinx MicroBlaze port.
 Richard Earnshaw for his ongoing work with the ARM@.
Index: gcc/doc/md.texi
--- gcc/doc/md.texi	(revision 158738)
+++ gcc/doc/md.texi	(working copy)
@@ -2661,8 +2661,16 @@
 @item Z
 Symbolic references to the control bus.
+@end table
+@item MicroBlaze---@file{config/microblaze/}
+@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
 @item MIPS---@file{config/mips/}
Index: gcc/doc/install.texi
--- gcc/doc/install.texi	(revision 158738)
+++ gcc/doc/install.texi	(working copy)
@@ -2916,6 +2916,8 @@
@@ -3763,6 +3765,13 @@
 <hr />
 @end html
+@heading @anchor{microblaze-x-elf}microblaze-*-elf
+Xilinx MicroBlaze processor.
+This configuration is intended for embedded systems.
+<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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]