If you don't want to add prefix "%" when referring to the core registers you can add the compiler switch -Wa,-mregnames.
Now your inline asm statements like asm("e_li r3,0") should be accepted.
Hope it helps.
instead of NOP instruction you can use one of these:
If you want to read/write from/to registers r0-r31, you have to use %.
asm("mtspr 268,%r3 ");
asm("mfspr %r3, 268 ");
Also e_li instruction has to have this format:
asm("e_li %r3,0 ");
Thank you Martion,
Do you have the doc of e200z420? Dose e200z420 have the time base register? Because when I execute "asm("mtspr 284, %%r3 \n\t"::);", it will occur IVOR6 exception.
// Clear Timebase
asm("e_li %%r3, 0 \n\t"::);
asm("mtspr 284, %%r3 \n\t"::);
/* read tbl */
asm("mfspr %%r3, 268 \n\t"::); /* TBL */
e200z420 does not contain time base register. This feature is not implemented in the core. I have e200z420 core reference manual, but I cannot share it here, because it is confidential.
But if you need it, please create case and some responsible person will send you the manual.