Adjustments to finalize for experiment

This commit is contained in:
2020-01-21 10:35:15 -05:00
parent 54e64d982e
commit c6fcb4aa66
2 changed files with 97 additions and 98 deletions

View File

@@ -11,142 +11,141 @@ fs_load:
mov v0.s[2], v0.s[0] mov v0.s[2], v0.s[0]
mov v0.s[3], v0.s[0] mov v0.s[3], v0.s[0]
fmov s31, 1.0 fmov s31, 1.0
ucvtf s30, w1 ucvtf s30, w1
mov v1.s[3], v30.s[0] mov v1.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v1.s[2], v30.s[0] mov v1.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v1.s[1], v30.s[0] mov v1.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v1.s[0], v30.s[0] mov v1.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v2.s[3], v30.s[0] mov v2.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v2.s[2], v30.s[0] mov v2.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v2.s[1], v30.s[0] mov v2.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v2.s[0], v30.s[0] mov v2.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v3.s[3], v30.s[0] mov v3.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v3.s[2], v30.s[0] mov v3.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v3.s[1], v30.s[0] mov v3.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v3.s[0], v30.s[0] mov v3.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v4.s[3], v30.s[0] mov v4.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v4.s[2], v30.s[0] mov v4.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v4.s[1], v30.s[0] mov v4.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v4.s[0], v30.s[0] mov v4.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v5.s[3], v30.s[0] mov v5.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v5.s[2], v30.s[0] mov v5.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v5.s[1], v30.s[0] mov v5.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v5.s[0], v30.s[0] mov v5.s[0], v30.s[0]
fadd s30, s30, s31
fadd s30, s30, s31
mov v6.s[3], v30.s[0] mov v6.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v6.s[2], v30.s[0] mov v6.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v6.s[1], v30.s[0] mov v6.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v6.s[0], v30.s[0] mov v6.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v7.s[3], v30.s[0] mov v7.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v7.s[2], v30.s[0] mov v7.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v7.s[1], v30.s[0] mov v7.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v7.s[0], v30.s[0] mov v7.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v8.s[3], v30.s[0] mov v8.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v8.s[2], v30.s[0] mov v8.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v8.s[1], v30.s[0] mov v8.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v8.s[0], v30.s[0] mov v8.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v9.s[3], v30.s[0] mov v9.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v9.s[2], v30.s[0] mov v9.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v9.s[1], v30.s[0] mov v9.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v9.s[0], v30.s[0] mov v9.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v10.s[3], v10.s[0] mov v10.s[3], v10.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v10.s[2], v10.s[0] mov v10.s[2], v10.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v10.s[1], v10.s[0] mov v10.s[1], v10.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v10.s[0], v30.s[0] mov v10.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v11.s[3], v30.s[0] mov v11.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v11.s[2], v30.s[0] mov v11.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v11.s[1], v30.s[0] mov v11.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v11.s[0], v30.s[0] mov v11.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v12.s[3], v30.s[0] mov v12.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v12.s[2], v30.s[0] mov v12.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v12.s[1], v30.s[0] mov v12.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v12.s[0], v30.s[0] mov v12.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v13.s[3], v30.s[0] mov v13.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v13.s[2], v30.s[0] mov v13.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v13.s[1], v30.s[0] mov v13.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v13.s[0], v30.s[0] mov v13.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v14.s[3], v30.s[0] mov v14.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v14.s[2], v30.s[0] mov v14.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v14.s[1], v30.s[0] mov v14.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v14.s[0], v30.s[0] mov v14.s[0], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v15.s[3], v30.s[0] mov v15.s[3], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v15.s[2], v30.s[0] mov v15.s[2], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v15.s[1], v30.s[0] mov v15.s[1], v30.s[0]
fadd s30, s30, s31 fadd s30, s30, s31
mov v15.s[0], v30.s[0] mov v15.s[0], v30.s[0]
#mov s30, wzr #mov s30, wzr
#mov s31, wzr #mov s31, wzr
@@ -185,5 +184,4 @@ fs_routine:
fdiv v29.4s, v29.4s, v2.4s fdiv v29.4s, v29.4s, v2.4s
fdiv v30.4s, v30.4s, v1.4s fdiv v30.4s, v30.4s, v1.4s
mov w0, v16.s[3]
ret ret

View File

@@ -23,23 +23,24 @@ TEXT_SECTION
unsigned long long _start(float *init_a) unsigned long long _start(float *init_a)
{ {
int i; int i;
unsigned long long check;
unsigned long long start, end, report; unsigned long long start, end, report;
unsigned long long timer_deadline_enter = 0x10000b874; unsigned long long timer_deadline_enter = 0x10000b874;
unsigned long long halt = 0x1000004fc; unsigned long long halt = 0x1000004fc;
fs_load(init_a, 1); while(1)
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (start));
for(i = 0; i < 8; i++) check = fs_routine();
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (end));
if(2 * end - start - 64 > 0)
{ {
((BOOTROM_FUNC) timer_deadline_enter)(2 * end - start - 64, ((BOOTROM_FUNC) 0x10000b924)); __asm__ volatile ("mrs %0, cntpct_el0" : "=r" (start));
((BOOTROM_FUNC) halt)(); fs_load(init_a, 1);
for(i = 0; i < 8; i++) fs_routine();
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (end));
if(2 * end - start - 64 > 0)
{
((BOOTROM_FUNC) timer_deadline_enter)(2 * end - start - 64, ((BOOTROM_FUNC) 0x10000b924));
((BOOTROM_FUNC) halt)();
}
} }
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (report)); __asm__ volatile ("mrs %0, cntpct_el0" : "=r" (report));
return report - start; return end - start;
} }