diff options
author | Huy Vo <huytbvo@berkeley.edu> | 2013-01-03 21:44:46 -0800 |
---|---|---|
committer | Huy Vo <huytbvo@berkeley.edu> | 2013-01-03 21:44:46 -0800 |
commit | a1bcdcb74e17f93d66c94cd6ec537551dc7e142f (patch) | |
tree | 1eeafe80e60f313b26cd875d6ac3c66b775dfb4c /pk/fp.c | |
parent | 15f31b54049fda09b60dc8e0b74dd5f65c7c8318 (diff) | |
download | pk-a1bcdcb74e17f93d66c94cd6ec537551dc7e142f.zip pk-a1bcdcb74e17f93d66c94cd6ec537551dc7e142f.tar.gz pk-a1bcdcb74e17f93d66c94cd6ec537551dc7e142f.tar.bz2 |
updated to handle exceptions and illegal instructionseos14-bringup
Diffstat (limited to 'pk/fp.c')
-rw-r--r-- | pk/fp.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -1,6 +1,7 @@ #include "pk.h" #include "pcr.h" #include "fp.h" +#include "config.h" static fp_state_t fp_state; @@ -211,10 +212,10 @@ int emulate_fp(trapframe_t* tf) #define STR(x) XSTR(x) #define XSTR(x) #x -#define PUT_FP_REG(which, type, val) asm("mxtf." STR(type) " $f" STR(which) ",%0" : : "r"(val)) -#define GET_FP_REG(which, type, val) asm("mftx." STR(type) " %0,$f" STR(which) : "=r"(val)) -#define LOAD_FP_REG(which, type, val) asm("fl" STR(type) " $f" STR(which) ",%0" : : "m"(val)) -#define STORE_FP_REG(which, type, val) asm("fs" STR(type) " $f" STR(which) ",%0" : "=m"(val) : : "memory") +#define PUT_FP_REG(which, type, val) asm("mxtf." STR(type) " f" STR(which) ",%0" : : "r"(val)) +#define GET_FP_REG(which, type, val) asm("mftx." STR(type) " %0,f" STR(which) : "=r"(val)) +#define LOAD_FP_REG(which, type, val) asm("fl" STR(type) " f" STR(which) ",%0" : : "m"(val)) +#define STORE_FP_REG(which, type, val) asm("fs" STR(type) " f" STR(which) ",%0" : "=m"(val) : : "memory") static void __attribute__((noinline)) set_fp_reg(unsigned int which, unsigned int dp, uint64_t val) |