// 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