Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 253 → Rev 254

/SPARTAN/trunk/arch/ppc/include/asm.h
39,14 → 39,14
*/
static inline pri_t cpu_priority_low(void) {
pri_t v;
pri_t tmp;
__asm__ volatile (
"mfmsr %0\n"
"mfmsr %%r31\n"
"ori %%r31, %%r31, 1 << 15\n"
"mtmsr %%r31\n"
: "=r" (v)
:
: "%r31"
"mfmsr %1\n"
"ori %1, %1, 1 << 15\n"
"mtmsr %1\n"
: "=r" (v), "=r" (tmp)
);
return v;
}
58,14 → 58,14
*/
static inline pri_t cpu_priority_high(void) {
pri_t v;
pri_t tmp;
__asm__ volatile (
"mfmsr %0\n"
"mfmsr %%r31\n"
"rlwinm %%r31, %%r31, 0, 17, 15\n"
"mtmsr %%r31\n"
: "=r" (v)
:
: "%r31"
"mfmsr %1\n"
"rlwinm %1, %1, 0, 17, 15\n"
"mtmsr %1\n"
: "=r" (v), "=r" (tmp)
);
return v;
}
75,16 → 75,17
* Restore EE.
*/
static inline void cpu_priority_restore(pri_t pri) {
pri_t tmp;
__asm__ volatile (
"mfmsr %%r31\n"
"rlwimi %0, %%r31, 0, 17, 15\n"
"cmpw 0, %0, %%r31\n"
"mfmsr %1\n"
"rlwimi %0, %1, 0, 17, 15\n"
"cmpw 0, %0, %1\n"
"beq 0f\n"
"mtmsr %0\n"
"0:\n"
: "=r" (pri)
: "=r" (pri), "=r" (tmp)
: "0" (pri)
: "%r31"
);
}
 
116,6 → 117,7
return v;
}
 
void cpu_halt(void);
void cpu_sleep(void);
void asm_delay_loop(__u32 t);