Adjustments to finalize for experiment
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user