diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index c67d919d2f..29803fec08 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -1,3 +1,8 @@ +2008-07-16 Till Straumann + + * shared/include/powerpc-utility.h: Added + GET_INTERRUPT_MASK macro. + 2008-07-16 Joel Sherrill * mpc6xx/clock/c_clock.c: Add fast idle. diff --git a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h index 44a9a68216..23f00ff4a5 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h +++ b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h @@ -498,13 +498,20 @@ static inline void ppc_set_time_base_64( uint64_t val) \name: .endm +/* + * Obtain interrupt mask + */ +.macro GET_INTERRUPT_MASK mask + mfspr \mask, sprg0 +.endm + /* * Disables all asynchronous exeptions (interrupts) which may cause a context * switch. */ .macro INTERRUPT_DISABLE level, mask mfmsr \level - mfspr \mask, sprg0 + GET_INTERRUPT_MASK mask=\mask andc \mask, \level, \mask mtmsr \mask .endm