]> git.proxmox.com Git - mirror_qemu.git/blobdiff - target-mips/fop_template.c
Partial support for 34K multithreading, not functional yet.
[mirror_qemu.git] / target-mips / fop_template.c
index 0f1595ff87d6e123e0512f30d813f2d43cf87ed4..bbdcb28903fd1ba788a2afd143f66a3e5fea5c78 100644 (file)
 #define OP_WLOAD_FREG(treg, tregname, FREG)              \
     void glue(glue(op_load_fpr_,tregname), FREG) (void)  \
     {                                                    \
-        treg = env->fpr[FREG].fs[FP_ENDIAN_IDX];         \
+        treg = env->fpu->fpr[FREG].fs[FP_ENDIAN_IDX];    \
         RETURN();                                        \
     }
 
 #define OP_WSTORE_FREG(treg, tregname, FREG)             \
     void glue(glue(op_store_fpr_,tregname), FREG) (void) \
     {                                                    \
-        env->fpr[FREG].fs[FP_ENDIAN_IDX] = treg;         \
+        env->fpu->fpr[FREG].fs[FP_ENDIAN_IDX] = treg;    \
         RETURN();                                        \
     }
 
@@ -50,10 +50,10 @@ OP_WSTORE_FREG(WT2, WT2_fpr, FREG)
     void glue(glue(op_load_fpr_,tregname), FREG) (void)  \
     {                                                    \
         if (env->hflags & MIPS_HFLAG_F64)                \
-            treg = env->fpr[FREG].fd;                    \
+            treg = env->fpu->fpr[FREG].fd;               \
         else                                             \
-            treg = (uint64_t)(env->fpr[FREG | 1].fs[FP_ENDIAN_IDX]) << 32 | \
-                   env->fpr[FREG & ~1].fs[FP_ENDIAN_IDX]; \
+            treg = (uint64_t)(env->fpu->fpr[FREG | 1].fs[FP_ENDIAN_IDX]) << 32 | \
+                   env->fpu->fpr[FREG & ~1].fs[FP_ENDIAN_IDX]; \
         RETURN();                                        \
     }
 
@@ -61,10 +61,10 @@ OP_WSTORE_FREG(WT2, WT2_fpr, FREG)
     void glue(glue(op_store_fpr_,tregname), FREG) (void) \
     {                                                    \
         if (env->hflags & MIPS_HFLAG_F64)                \
-            env->fpr[FREG].fd = treg;                    \
+            env->fpu->fpr[FREG].fd = treg;               \
         else {                                           \
-            env->fpr[FREG | 1].fs[FP_ENDIAN_IDX] = treg >> 32; \
-            env->fpr[FREG & ~1].fs[FP_ENDIAN_IDX] = treg; \
+            env->fpu->fpr[FREG | 1].fs[FP_ENDIAN_IDX] = treg >> 32; \
+            env->fpu->fpr[FREG & ~1].fs[FP_ENDIAN_IDX] = treg;      \
         }                                                \
         RETURN();                                        \
     }
@@ -81,14 +81,14 @@ OP_DSTORE_FREG(DT2, DT2_fpr, FREG)
 #define OP_PSLOAD_FREG(treg, tregname, FREG)             \
     void glue(glue(op_load_fpr_,tregname), FREG) (void)  \
     {                                                    \
-        treg = env->fpr[FREG].fs[!FP_ENDIAN_IDX];        \
+        treg = env->fpu->fpr[FREG].fs[!FP_ENDIAN_IDX];   \
         RETURN();                                        \
     }
 
 #define OP_PSSTORE_FREG(treg, tregname, FREG)            \
     void glue(glue(op_store_fpr_,tregname), FREG) (void) \
     {                                                    \
-        env->fpr[FREG].fs[!FP_ENDIAN_IDX] = treg;        \
+        env->fpu->fpr[FREG].fs[!FP_ENDIAN_IDX] = treg;   \
         RETURN();                                        \
     }