diff --git a/arch/tricore/include/arch.h b/arch/tricore/include/arch.h index 8d022db9565..811d843e7bc 100644 --- a/arch/tricore/include/arch.h +++ b/arch/tricore/include/arch.h @@ -42,6 +42,20 @@ * Pre-processor Definitions ****************************************************************************/ +/* MTCR and MFCR - move to / from Core Special Function Register */ + +#define tricore_mtcr(reg, val) \ + ({ \ + __asm__ volatile ("mtcr %0,%1\n\t"::"i"(reg),"d"(val):"memory"); \ + }) + +#define tricore_mfcr(reg) \ + ({ \ + uint32_t __val; \ + __asm__ volatile ("mfcr %0,%1": "=d" (__val) :"i"(reg): "memory"); \ + __val; \ + }) + /**************************************************************************** * Public Types ****************************************************************************/