mirror of https://gitee.com/openkylin/linux.git
34 lines
671 B
C
34 lines
671 B
C
|
/* fpumacro.h: FPU related macros.
|
||
|
*
|
||
|
* Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
|
||
|
* Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
|
||
|
*/
|
||
|
|
||
|
#ifndef _SPARC64_FPUMACRO_H
|
||
|
#define _SPARC64_FPUMACRO_H
|
||
|
|
||
|
#include <asm/asi.h>
|
||
|
#include <asm/visasm.h>
|
||
|
|
||
|
struct fpustate {
|
||
|
u32 regs[64];
|
||
|
};
|
||
|
|
||
|
#define FPUSTATE (struct fpustate *)(current_thread_info()->fpregs)
|
||
|
|
||
|
static inline unsigned long fprs_read(void)
|
||
|
{
|
||
|
unsigned long retval;
|
||
|
|
||
|
__asm__ __volatile__("rd %%fprs, %0" : "=r" (retval));
|
||
|
|
||
|
return retval;
|
||
|
}
|
||
|
|
||
|
static inline void fprs_write(unsigned long val)
|
||
|
{
|
||
|
__asm__ __volatile__("wr %0, 0x0, %%fprs" : : "r" (val));
|
||
|
}
|
||
|
|
||
|
#endif /* !(_SPARC64_FPUMACRO_H) */
|