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_ARM) 
   68#if defined(CONFIG_VFP_FEATURE_REGS_S64_D32) 
   70struct fp_volatile_register_set {
 
   74struct fp_non_volatile_register_set {
 
   78#elif defined(CONFIG_ARMV7_M_ARMV8_M_FP) || defined(CONFIG_ARMV7_R_FP) \ 
   79        || defined(CONFIG_VFP_FEATURE_REGS_S32_D16) 
   87struct fp_volatile_register_set {
 
   95struct 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_ARM64) 
  108struct fp_volatile_register_set {
 
  112struct fp_non_volatile_register_set {
 
  116#define SIZEOF_FP_VOLATILE_REGISTER_SET \ 
  117        sizeof(struct fp_volatile_register_set) 
  118#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET \ 
  119        sizeof(struct fp_non_volatile_register_set) 
  121#elif defined(CONFIG_ISA_ARCV2) 
  123struct fp_volatile_register_set {
 
  124#ifdef CONFIG_FP_FPU_DA 
  132struct fp_non_volatile_register_set {
 
  136#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set) 
  137#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0 
  139#elif defined(CONFIG_RISCV) 
  141struct fp_volatile_register_set {
 
  142#ifdef CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION 
  149struct fp_non_volatile_register_set {
 
  153#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set) 
  154#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0 
  156#elif defined(CONFIG_SPARC) 
  158struct fp_volatile_register_set {
 
  162struct fp_non_volatile_register_set {
 
  165#define SIZEOF_FP_VOLATILE_REGISTER_SET sizeof(struct fp_volatile_register_set) 
  166#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET 0 
  168#elif defined(CONFIG_XTENSA) 
  170struct fp_volatile_register_set {
 
  174struct fp_non_volatile_register_set {
 
  178#define SIZEOF_FP_VOLATILE_REGISTER_SET 0 
  179#define SIZEOF_FP_NON_VOLATILE_REGISTER_SET sizeof(struct fp_non_volatile_register_set) 
  183#error  "Architecture must provide the following definitions:\n" 
  184"\t'struct fp_volatile_registers'\n" 
  185"\t'struct fp_non_volatile_registers'\n" 
  186"\t'SIZEOF_FP_VOLATILE_REGISTER_SET'\n" 
  187"\t'SIZEOF_FP_NON_VOLATILE_REGISTER_SET'\n" 
 
  197#define SIZEOF_FP_REGISTER_SET \ 
  198        (SIZEOF_FP_VOLATILE_REGISTER_SET + SIZEOF_FP_NON_VOLATILE_REGISTER_SET) 
 
  205#define MAIN_FLOAT_REG_CHECK_BYTE ((unsigned char)0xe5) 
  206#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:90
 
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
 
Definition float_context.h:192
 
struct fp_non_volatile_register_set fp_non_volatile
Definition float_context.h:194
 
struct fp_volatile_register_set fp_volatile
Definition float_context.h:193