diff options
Diffstat (limited to 'arch/powerpc/include/asm/processor.h')
-rw-r--r-- | arch/powerpc/include/asm/processor.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index fc14a38c7ccf..8ca20ac28dc2 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h | |||
@@ -256,6 +256,8 @@ struct thread_struct { | |||
256 | unsigned long evr[32]; /* upper 32-bits of SPE regs */ | 256 | unsigned long evr[32]; /* upper 32-bits of SPE regs */ |
257 | u64 acc; /* Accumulator */ | 257 | u64 acc; /* Accumulator */ |
258 | unsigned long spefscr; /* SPE & eFP status */ | 258 | unsigned long spefscr; /* SPE & eFP status */ |
259 | unsigned long spefscr_last; /* SPEFSCR value on last prctl | ||
260 | call or trap return */ | ||
259 | int used_spe; /* set if process has used spe */ | 261 | int used_spe; /* set if process has used spe */ |
260 | #endif /* CONFIG_SPE */ | 262 | #endif /* CONFIG_SPE */ |
261 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM | 263 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM |
@@ -317,7 +319,9 @@ struct thread_struct { | |||
317 | (_ALIGN_UP(sizeof(init_thread_info), 16) + (unsigned long) &init_stack) | 319 | (_ALIGN_UP(sizeof(init_thread_info), 16) + (unsigned long) &init_stack) |
318 | 320 | ||
319 | #ifdef CONFIG_SPE | 321 | #ifdef CONFIG_SPE |
320 | #define SPEFSCR_INIT .spefscr = SPEFSCR_FINVE | SPEFSCR_FDBZE | SPEFSCR_FUNFE | SPEFSCR_FOVFE, | 322 | #define SPEFSCR_INIT \ |
323 | .spefscr = SPEFSCR_FINVE | SPEFSCR_FDBZE | SPEFSCR_FUNFE | SPEFSCR_FOVFE, \ | ||
324 | .spefscr_last = SPEFSCR_FINVE | SPEFSCR_FDBZE | SPEFSCR_FUNFE | SPEFSCR_FOVFE, | ||
321 | #else | 325 | #else |
322 | #define SPEFSCR_INIT | 326 | #define SPEFSCR_INIT |
323 | #endif | 327 | #endif |
@@ -373,6 +377,8 @@ extern int set_endian(struct task_struct *tsk, unsigned int val); | |||
373 | extern int get_unalign_ctl(struct task_struct *tsk, unsigned long adr); | 377 | extern int get_unalign_ctl(struct task_struct *tsk, unsigned long adr); |
374 | extern int set_unalign_ctl(struct task_struct *tsk, unsigned int val); | 378 | extern int set_unalign_ctl(struct task_struct *tsk, unsigned int val); |
375 | 379 | ||
380 | extern void fp_enable(void); | ||
381 | extern void vec_enable(void); | ||
376 | extern void load_fp_state(struct thread_fp_state *fp); | 382 | extern void load_fp_state(struct thread_fp_state *fp); |
377 | extern void store_fp_state(struct thread_fp_state *fp); | 383 | extern void store_fp_state(struct thread_fp_state *fp); |
378 | extern void load_vr_state(struct thread_vr_state *vr); | 384 | extern void load_vr_state(struct thread_vr_state *vr); |