--- /dev/null
+ .data
+ .globl _heapend
+ .globl environ
+_heapend:
+ .word 0
+environ:
+ .word 0
+
+ .text
+ .globl _start
+
+_start:
+ li x1, 0
+ li x2, 0
+ li x3, 0
+ li x4, 0
+ li x5, 0
+ li x6, 0
+ li x7, 0
+ li x8, 0
+ li x9, 0
+ li x10,0
+ li x11,0
+ li x12,0
+ li x13,0
+ li x14,0
+ li x15,0
+ li x16,0
+ li x17,0
+ li x18,0
+ li x19,0
+ li x20,0
+ li x21,0
+ li x22,0
+ li x23,0
+ li x24,0
+ li x25,0
+ li x26,0
+ li x27,0
+ li x28,0
+ li x29,0
+ li x30,0
+ li x31,0
+
+ # enable fp
+ mfpcr x1,cr0
+ ori x1,x1,0x2
+ mtpcr x1,cr0
+
+ # enable vec
+ mfpcr x1,cr0
+ ori x1,x1,0x4
+ mtpcr x1,cr0
+
+ ## if that didn't stick, we don't have an FPU, so don't initialize it
+ mfpcr x1,cr0
+ andi x1,x1,0x2
+ beqz x1,1f
+
+ mtfsr x0
+ mxtf.s f0, x0
+ mxtf.s f1, x0
+ mxtf.s f2, x0
+ mxtf.s f3, x0
+ mxtf.s f4, x0
+ mxtf.s f5, x0
+ mxtf.s f6, x0
+ mxtf.s f7, x0
+ mxtf.s f8, x0
+ mxtf.s f9, x0
+ mxtf.s f10,x0
+ mxtf.s f11,x0
+ mxtf.s f12,x0
+ mxtf.s f13,x0
+ mxtf.s f14,x0
+ mxtf.s f15,x0
+ mxtf.s f16,x0
+ mxtf.s f17,x0
+ mxtf.s f18,x0
+ mxtf.s f19,x0
+ mxtf.s f20,x0
+ mxtf.s f21,x0
+ mxtf.s f22,x0
+ mxtf.s f23,x0
+ mxtf.s f24,x0
+ mxtf.s f25,x0
+ mxtf.s f26,x0
+ mxtf.s f27,x0
+ mxtf.s f28,x0
+ mxtf.s f29,x0
+ mxtf.s f30,x0
+ mxtf.s f31,x0
+1:
+
+ # only allow core 0 to proceed
+1:mfpcr a0, cr10
+ bnez a0, 1b
+
+ la sp,stacktop
+ jal main
+1:b 1b
+
+ .bss
+ .globl stacktop
+
+ .align 4
+ .skip 131072
+stacktop: