import preliminary ppc work by rdp.
This commit is contained in:
parent
1e717ea3d2
commit
7669d1e334
38 changed files with 2124 additions and 0 deletions
27
crt/ppc/crt1.S
Normal file
27
crt/ppc/crt1.S
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#include <bits/asm.h>
|
||||
.weak _init
|
||||
.weak _fini
|
||||
.global _start
|
||||
.type _start, %function
|
||||
_start:
|
||||
mr r9, r1 // Save the original stack pointer.
|
||||
clrrwi r1, r1, 4 // Align the stack to 16 bytes.
|
||||
lis r13, _SDA_BASE_@ha // r13 points to the small data area.
|
||||
addi r13, r13, _SDA_BASE_@l //
|
||||
li r0, 0 // Zero the frame pointer.
|
||||
stwu r1, -16(r1) // The initial stack frame.
|
||||
mtlr r0 // Clear the link register.
|
||||
stw r0, 0(r1) // And save it.
|
||||
lis r3, main@ha // Get main() ...
|
||||
addi r3, r3, main@l
|
||||
lwz r4, 0(r9) // and argc...
|
||||
addi r5, r9, 4 // and argv ...
|
||||
lis r6, _init@ha // and _init() ...
|
||||
addi r6, r6, _init@l
|
||||
lis r7, _fini@ha // and _fini() ...
|
||||
addi r7, r7, _fini@l
|
||||
li r8, 0 // ldso_fini == NULL
|
||||
bl __libc_start_main // Let's go!
|
||||
b . // Never gets here.
|
||||
.end _start
|
||||
.size _start, .-_start
|
||||
Loading…
Add table
Add a link
Reference in a new issue