55 lines
973 B
C
55 lines
973 B
C
// 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
|