/kernel/trunk/arch/ppc32/src/fpu_context.S |
80,19 → 80,19 |
.endm |
|
fpu_context_save: |
FPU_CONTEXT_STORE r3 |
// FPU_CONTEXT_STORE r3 |
// |
// mffs fr0 |
// stfd fr0, OFFSET_FPSCR(r3) |
|
mffs fr0 |
stfd fr0, OFFSET_FPSCR(r3) |
|
blr |
|
fpu_context_restore: |
FPU_CONTEXT_LOAD r3 |
// FPU_CONTEXT_LOAD r3 |
// |
// lfd fr0, OFFSET_FPSCR(r3) |
// mtfsf 7, fr0 |
|
lfd fr0, OFFSET_FPSCR(r3) |
mtfsf 7, fr0 |
|
blr |
|
fpu_init: |
/kernel/trunk/arch/ppc32/src/asm.S |
30,14 → 30,10 |
|
.text |
|
.global cpu_sleep |
.global iret |
.global memsetb |
.global memcpy |
|
cpu_sleep: |
b cpu_sleep |
|
iret: |
lwz r3, 144(sp) |
mtxer r3 |
/kernel/trunk/arch/ppc32/src/ppc32.c |
35,7 → 35,10 |
void arch_pre_mm_init(void) |
{ |
/* Initialize dispatch table */ |
interrupt_init(); |
interrupt_init(); |
|
/* Start decrementer */ |
start_decrementer(); |
|
ppc32_console_init(); |
cuda_init(); |
57,3 → 60,4 |
void calibrate_delay_loop(void) |
{ |
} |
|
/kernel/trunk/arch/ppc32/src/interrupt.c |
33,9 → 33,20 |
#include <time/clock.h> |
#include <print.h> |
|
|
void start_decrementer(void) |
{ |
asm volatile ( |
"mtdec %0\n" |
:: "r" (1000) |
); |
} |
|
|
static void exception_decrementer(int n, istate_t *istate) |
{ |
clock(); |
start_decrementer(); |
} |
|
|