add: reading special purpose registers

This commit is contained in:
Michal Simek
2007-05-08 15:57:43 +02:00
parent 1a50f164be
commit e69f66c6eb
3 changed files with 41 additions and 23 deletions

View File

@@ -49,23 +49,18 @@
/* CPU dependent */
/* machine status register */
#define MFS(val) \
__asm__ __volatile__ ("mfs %0, rmsr":"=r" (val));
#define MFS(val, reg) \
__asm__ __volatile__ ("mfs %0," #reg :"=r" (val));
#define MTS(val) \
__asm__ __volatile__ ("mts rmsr, %0"::"r" (val));
/* exception status register */
#define MFSEAR(val) \
__asm__ __volatile ("mfs %0,rear":"=r" (val));
#define MFSESR(val) \
__asm__ __volatile ("mfs %0,resr":"=r" (val));
#define MTS(val, reg) \
__asm__ __volatile__ ("mts " #reg ", %0"::"r" (val));
/* get return address from interrupt */
#define R14(val) \
__asm__ __volatile__ ("addi %0, r14, 0":"=r" (val));
#define NOP __asm__ __volatile__ ("nop");
/* use machine status registe USE_MSR_REG */
#ifdef XILINX_USE_MSR_INSTR
#define MSRSET(val) \