slkern/fpu.h

55 lines
973 B
C
Raw Permalink Normal View History

// NEW CODE for setting up the FPU
#ifndef FPU_H
#define FPU_H
void fpu_setupinitial();
//void fpu_instrtrap(struct proc* p);
typedef struct fpu_context fpu_context_t;
typedef unsigned long long fpu_reg_t;
struct fpu_context {
fpu_reg_t controlreg;
fpu_reg_t f0;
fpu_reg_t f1;
fpu_reg_t f2;
fpu_reg_t f3;
fpu_reg_t f4;
fpu_reg_t f5;
fpu_reg_t f6;
fpu_reg_t f7;
fpu_reg_t f8;
fpu_reg_t f9;
fpu_reg_t f10;
fpu_reg_t f11;
fpu_reg_t f12;
fpu_reg_t f13;
fpu_reg_t f14;
fpu_reg_t f15;
fpu_reg_t f16;
fpu_reg_t f17;
fpu_reg_t f18;
fpu_reg_t f19;
fpu_reg_t f20;
fpu_reg_t f21;
fpu_reg_t f22;
fpu_reg_t f23;
fpu_reg_t f24;
fpu_reg_t f25;
fpu_reg_t f26;
fpu_reg_t f27;
fpu_reg_t f28;
fpu_reg_t f29;
fpu_reg_t f30;
fpu_reg_t f31;
};
int fpu_status_read();
void fpu_status_write(int status);
// These are defined in the new asm code
void fpu_save(fpu_context_t* ctx);
void fpu_restore(fpu_context_t* ctx);
#endif