12#ifndef _FLOATCONTEXT_H
13#define _FLOATCONTEXT_H
32#if defined(CONFIG_X86)
47 unsigned char reg[10];
51 unsigned char reg[16];
54struct fp_volatile_register_set {
55 struct xmm_register xmm[8];
56 struct fp_register st[8];
59struct fp_non_volatile_register_set {
63#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set)
64#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0
66#elif defined(CONFIG_ARMV7_M_ARMV8_M_FP)
74struct fp_volatile_register_set {
82struct fp_non_volatile_register_set {
86#define SIZEOF_FP_VOLATILE_REGISTER_SET \
87 sizeof(struct fp_volatile_register_set)
88#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET \
89 sizeof(struct fp_non_volatile_register_set)
91#elif defined(CONFIG_ARM64)
93struct fp_volatile_register_set {
97struct fp_non_volatile_register_set {
101#define SIZEOF_FP_VOLATILE_REGISTER_SET \
102 sizeof(struct fp_volatile_register_set)
103#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET \
104 sizeof(struct fp_non_volatile_register_set)
106#elif defined(CONFIG_ISA_ARCV2)
108struct fp_volatile_register_set {
109#ifdef CONFIG_FP_FPU_DA
117struct fp_non_volatile_register_set {
121#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set)
122#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0
124#elif defined(CONFIG_RISCV)
126struct fp_volatile_register_set {
127#ifdef CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION
134struct fp_non_volatile_register_set {
138#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set)
139#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0
141#elif defined(CONFIG_SPARC)
143struct fp_volatile_register_set {
147struct fp_non_volatile_register_set {
150#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set)
151#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0
155#error "Architecture must provide the following definitions:\n"
156"\t'struct fp_volatile_registers'\n"
157"\t'struct fp_non_volatile_registers'\n"
158"\t'SIZEOF_FP_VOLATILE_REGISTER_SET'\n"
159"\t'SIZEOF_FP_NON_VOLATILE_REGISTER_SET'\n"
169#define SIZEOF_FP_REGISTER_SET \
170 (SIZEOF_FP_VOLATILE_REGISTER_SET + SIZEOF_FP_NON_VOLATILE_REGISTER_SET)
177#define MAIN_FLOAT_REG_CHECK_BYTE ((unsigned char)0xe5)
178#define FIBER_FLOAT_REG_CHECK_BYTE ((unsigned char)0xf9)
irp nz macro MOVR cc s mov cc s endm endr irp aw macro LDR aa s
Definition: asm-macro-32-bit-gnu.h:17
irp nz macro MOVR cc d
Definition: asm-macro-32-bit-gnu.h:11
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT64_TYPE__ uint64_t
Definition: stdint.h:61
Definition: float_context.h:164
struct fp_non_volatile_register_set fp_non_volatile
Definition: float_context.h:166
struct fp_volatile_register_set fp_volatile
Definition: float_context.h:165