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:
parent
e0ea44cb76
commit
8c0a3d9e5c
45 changed files with 2213 additions and 0 deletions
16
crt/microblaze/crt1.s
Normal file
16
crt/microblaze/crt1.s
Normal 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
13
crt/microblaze/crti.s
Normal 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
9
crt/microblaze/crtn.s
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue