Add missing "volatile" to "asm" statements

This commit is contained in:
Clifford Wolf 2017-10-30 11:22:54 +01:00
parent 31588b871e
commit dda7db273d
2 changed files with 4 additions and 4 deletions

View File

@ -26,7 +26,7 @@ int heap_memory_used = 0;
long time() long time()
{ {
int cycles; int cycles;
asm("rdcycle %0" : "=r"(cycles)); asm volatile ("rdcycle %0" : "=r"(cycles));
// printf("[time() -> %d]", cycles); // printf("[time() -> %d]", cycles);
return cycles; return cycles;
} }
@ -34,7 +34,7 @@ long time()
long insn() long insn()
{ {
int insns; int insns;
asm("rdinstret %0" : "=r"(insns)); asm volatile ("rdinstret %0" : "=r"(insns));
// printf("[insn() -> %d]", insns); // printf("[insn() -> %d]", insns);
return insns; return insns;
} }
@ -46,7 +46,7 @@ char *malloc(int size)
// printf("[malloc(%d) -> %d (%d..%d)]", size, (int)p, heap_memory_used, heap_memory_used + size); // printf("[malloc(%d) -> %d (%d..%d)]", size, (int)p, heap_memory_used, heap_memory_used + size);
heap_memory_used += size; heap_memory_used += size;
if (heap_memory_used > 1024) if (heap_memory_used > 1024)
asm("ebreak"); asm volatile ("ebreak");
return p; return p;
} }

View File

@ -28,7 +28,7 @@ static void stats_print_dec(unsigned int val, int digits, bool zero_pad)
void stats(void) void stats(void)
{ {
unsigned int num_cycles, num_instr; unsigned int num_cycles, num_instr;
__asm__("rdcycle %0; rdinstret %1;" : "=r"(num_cycles), "=r"(num_instr)); __asm__ volatile ("rdcycle %0; rdinstret %1;" : "=r"(num_cycles), "=r"(num_instr));
print_str("Cycle counter ........"); print_str("Cycle counter ........");
stats_print_dec(num_cycles, 8, false); stats_print_dec(num_cycles, 8, false);
print_str("\nInstruction counter .."); print_str("\nInstruction counter ..");