1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# FIXME : does not work, the small data array needs to be relocated.
# see elfspec_ppc.pdf, page 76-84
.global _start
.type _start,@function
_start:
mr 9, 1 # Save the original stack pointer.
clrrwi 1, 1, 4 # Align the stack to 16 bytes.
lis 13, _SDA_BASE_@ha # r13 points to the small data area.
addi 13, 13, _SDA_BASE_@l
li 0, 0 # Zero the frame pointer.
lwz 3, 0(9) # and argc...
addi 4, 9, 4 # and argv ...
mtlr 0 # Clear the link register.
# Go to the musl dynamic linker entry point.
bl __dynlink
cmpi 4, 0, 3, 1 # Check for a 1.
bne 4, . # Stay here
mtlr 3 # Set the link address...
li 3, 0
blr # and go.
.end _start
.size _start, .-_start
|