從內核源本次大會內嵌代碼片段我有這個下面的代碼片段爲PowerPC解碼PowerPC上
#define SPRN_IVOR32 0x210 /* Interrupt Vector Offset Register 32 */
unsigned long ivor[3];
ivor[0] = mfspr(SPRN_IVOR32);
#define __stringify_1(x) #x
#define __stringify(x) __stringify_1(x)
#define mfspr(rn) ({unsigned long rval; \
asm volatile("mfspr %0," __stringify(rn) \
: "=r" (rval)); rval; })
而且,這上面的練習是關於PowerPC的模擬MSR寄存器的位?
任何人都可以幫助我究竟在做什麼嗎?
編譯此程序並獲得解決宏的預處理器列表。這將更具可讀性。 – 2014-09-01 13:17:48
這些宏確實使這一點難以閱讀。雖然我不會說PowerPC,但是這會不會更容易讀取/維護爲'#define mfspr(rn)({unsigned long rval; asm volatile(「mfspr%0,%c1」:「= r」( rval):「i」(rn)); rval;})'? – 2014-09-01 22:10:30