i am trying to reading CP0 registers like cause, status using inline assembly. but at mfc0 it produces "illegal instruction" crash at run time. i know it is a privileged instruction.

unsigned long cau;__asm__ __volatile__ ("mcf0 %0,$9;nop ": "=r"(cau));to enter into kernel mode can i use syscall? if i can i could not figure out how. if i m not approaching it right way how i can simply read cp0 registers?