| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | #include "sys.h"#include "picorv32.h"	// The linker ensures that section .init is first	.section ".init","ax"	.org 0	.globl _reset_reset:	rdtime t0		// Record timer at reset	li sp,SRAM_SIZE	la t1,time_zero	sw t0,(t1)	j _start	.type _reset, @function	.size _reset, . - _reset	.pushsection ".rodata","a"	// Not really readonly, but close enough	.balign 4	.globl time_zerotime_zero:	.long 0	.type time_zero, @object	.size time_zero, . - time_zero	.popsection		.org 0x20	.globl __irq__irq:	add sp,sp,-64	sw ra,0(sp)	sw t0,4(sp)	sw t1,8(sp)	sw t2,12(sp)	sw t3,16(sp)	sw t4,20(sp)	sw t5,24(sp)	sw t6,28(sp)	sw a0,32(sp)	sw a1,36(sp)	sw a2,40(sp)	sw a3,44(sp)	sw a4,48(sp)	sw a5,52(sp)	sw a6,56(sp)	sw a7,60(sp)	getq a0,q1	jal _irq	lw ra,0(sp)	lw t0,4(sp)	lw t1,8(sp)	lw t2,12(sp)	lw t3,16(sp)	lw t4,20(sp)	lw t5,24(sp)	lw t6,28(sp)	lw a0,32(sp)	lw a1,36(sp)	lw a2,40(sp)	lw a3,44(sp)	lw a4,48(sp)	lw a5,52(sp)	lw a6,56(sp)	lw a7,60(sp)	add sp,sp,64	retirq	.type __irq, @function	.size __irq, . - __irq
 |