microblaze port

based on initial work by rdp, with heavy modifications. some features
including threads are untested because qemu app-level emulation seems
to be broken and I do not have a proper system image for testing.
This commit is contained in:
Rich Felker 2012-09-29 01:05:31 -04:00
commit 8c0a3d9e5c
45 changed files with 2213 additions and 0 deletions

16
crt/microblaze/crt1.s Normal file
View file

@ -0,0 +1,16 @@
.weak _init
.weak _fini
.global _start
.align 2
_start:
add r19, r0, r0 # Zero the frame pointer.
ori r5, r0, main # Get main() ...
lw r6, r0, r1 # Get argc...
addi r7, r1, 4 # ... and argv ...
ori r8, r0, _init # and _init() ...
ori r9, r0, _fini # and _fini() ...
add r10, r0, r0 # ldso_fini == NULL
andi r1, r1, -8 # align stack
addik r1, r1, -4*6 # Leave space for the args.
bri __libc_start_main # Let's go!
nop # Never gets here.

13
crt/microblaze/crti.s Normal file
View file

@ -0,0 +1,13 @@
.section .init
.global _init
.align 2
_init:
addi r1, r1, -32
swi r15, r1, 0
.section .fini
.global _fini
.align 2
_fini:
addi r1, r1, -32
swi r15, r1, 0

9
crt/microblaze/crtn.s Normal file
View file

@ -0,0 +1,9 @@
.section .init
lwi r15, r1, 0
rtsd r15, 8
addi r1, r1, 32
.section .fini
lwi r15, r1, 0
rtsd r15, 8
addi r1, r1, 32