microblaze port
[musl] / crt / microblaze / crt1.s
diff --git a/crt/microblaze/crt1.s b/crt/microblaze/crt1.s
new file mode 100644 (file)
index 0000000..33090bb
--- /dev/null
@@ -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.