5cc8854b |
1 | @ vim:filetype=armasm |
2 | #include <sys/syscall.h> |
3 | |
4 | |
5 | .global sys_cacheflush @ void *start_addr, void *end_addr |
6 | |
7 | sys_cacheflush: |
8 | mov r2, #0 |
9 | #ifdef __ARM_EABI__ |
10 | /* EABI version */ |
11 | str r7, [sp, #-4]! |
12 | mov r7, #(__ARM_NR_cacheflush & 0xff) |
13 | orr r7, r7, #(__ARM_NR_cacheflush & 0x00ff00) |
14 | orr r7, r7, #(__ARM_NR_cacheflush & 0xff0000) |
15 | swi 0 |
16 | ldr r7, [sp], #4 |
17 | #else |
18 | /* OABI */ |
19 | swi __ARM_NR_cacheflush |
20 | #endif |
21 | bx lr |
22 | |
23 | .global spend_cycles |
24 | spend_cycles: |
25 | mov r0,r0,lsr #2 |
26 | 0:subs r0, r0, #1 |
27 | bne 0b |
28 | bx lr |
29 | |