I am trying to migrate my source code compilation from armcc compiler v5.06 to armclang v6. And I see armclang errors out saying it can not recognize cp15 registers. It looks like there might be a change in armcc vs clang as how to declare the registers. However, I could not find anything on the migration docs or in compiler doc.
Here is the code snippet -
void reset_clock_count(void) { register uint32_t reg_cp15_pmcr __asm("cp15:0:c9:c12:0"); reg_cp15_pmcr |= RESET_CYCLE_COUNTER; }
And error snippet -
error: unknown register name 'cp15:0:c9:c12:0' in asm register uint32_t reg_cp15_pmcr __asm("cp15:0:c9:c12:0"); ^
I see same errors for other places for similarly declared register. Any pointer on what might have gone wrong will be helpful.
For clang:
https://godbolt.org/z/YWsTe4
Thanks for the explanation and snippet. This is what I was looking for.