hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* SPDX-License-Identifier: GPL-2.0 */
/* 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) */