diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2009-09-28 16:43:57 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2009-09-28 16:43:57 +0000 |
commit | c38ed7c697152d76665d95c36d890a0599766867 (patch) | |
tree | 096c8e9bf5423d6ee6aa9ca5afd79855dd862248 /libgloss/microblaze/crt2.S | |
parent | 6c249577fbcdbb3d34747d8ba1b7d5920ef5f2ab (diff) | |
download | cygnal-c38ed7c697152d76665d95c36d890a0599766867.tar.gz cygnal-c38ed7c697152d76665d95c36d890a0599766867.tar.bz2 cygnal-c38ed7c697152d76665d95c36d890a0599766867.zip |
2009-09-28 Michael Eager <eager@eagercon.com>
* configure.in: Add microblaze-*-*.
* configure: Add microblaze-*-* (not regenerated.)
* microblaze: NEW microblaze target directory.
* microblaze/configure.in: NEW.
* microblaze/configure: Generate.
* microblaze/Makefile.in: NEW.
* microblaze/{crt0.S, crt1.S, crt2.S, crt3.S, crt4.S, crtinit.S}: NEW.
* microblaze/{pgcrtinit.S, _program_clean.S, _program_init.S,
sbrk.c, sim-crtinit.S, sim-pgcrtinit.S, timer.c, _exception_handler.S,
_hw_exception_handler.S, _interrupt_handler.S, xil_malloc.c,
nnxil_printf.c, xil_sbrk.c: NEW.
* microblaze/xilinx.ld: NEW.
Diffstat (limited to 'libgloss/microblaze/crt2.S')
-rw-r--r-- | libgloss/microblaze/crt2.S | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/libgloss/microblaze/crt2.S b/libgloss/microblaze/crt2.S new file mode 100644 index 000000000..e3fb15b26 --- /dev/null +++ b/libgloss/microblaze/crt2.S @@ -0,0 +1,98 @@ +/* Copyright (c) 2001, 2009 Xilinx, Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of Xilinx nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + MicroBlaze Vector Map for standalone executables that are boot-strapped + + Address Vector type Label + ------- ----------- ------ + + # 0x00 # (-- IMM --) + # 0x04 # Reset (-- Don't Care --) + + # 0x08 # (-- IMM --) + # 0x0c # Software Exception _exception_handler + + # 0x10 # (-- IMM --) + # 0x14 # Hardware Interrupt _interrupt_handler + + # 0x18 # (-- IMM --) + # 0x1C # Breakpoint Exception (-- Don't Care --) + + # 0x20 # (-- IMM --) + # 0x24 # Hardware Exception _hw_exception_handler + +*/ + + .section .vectors.sw_exception, "ax" + .align 2 +_vector_sw_exception: + brai _exception_handler + + .section .vectors.interrupt, "ax" + .align 2 +_vector_interrupt: + brai _interrupt_handler + + .section .vectors.hw_exception, "ax" + .align 2 +_vector_hw_exception: + brai _hw_exception_handler + + .section .text + .globl _start + .align 2 + .ent _start + .type _start, @function +_start: + la r13, r0, _SDA_BASE_ /* Set the Small Data Anchors and the stack pointer */ + la r2, r0, _SDA2_BASE_ + la r1, r0, _stack-16 /* 16 bytes (4 words are needed by crtinit for args and link reg */ + + brlid r15, _crtinit /* Initialize BSS and run program */ + nop + + brlid r15, exit /* Call exit with the return value of main */ + addik r5, r3, 0 + + /* Control does not reach here */ + + .end _start + +/* + _exit + Our simple _exit +*/ + .globl _exit + .align 2 + .ent _exit + .type _exit, @function +_exit: + bri 0 + .end _exit |