/[qemu]/qemu/op-i386.c
ViewVC logotype

Diff of /qemu/op-i386.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.38 by bellard, Mon Jun 30 10:11:50 2003 UTC revision 1.39 by bellard, Tue Jul 1 15:07:14 2003 UTC
# Line 1406  void OPPROTO op_fildll_FT0_A0(void) Line 1406  void OPPROTO op_fildll_FT0_A0(void)
1406    
1407  void OPPROTO op_flds_ST0_A0(void)  void OPPROTO op_flds_ST0_A0(void)
1408  {  {
1409        int new_fpstt;
1410        new_fpstt = (env->fpstt - 1) & 7;
1411  #ifdef USE_FP_CONVERT  #ifdef USE_FP_CONVERT
1412      FP_CONVERT.i32 = ldl((void *)A0);      FP_CONVERT.i32 = ldl((void *)A0);
1413      ST0 = FP_CONVERT.f;      env->fpregs[new_fpstt] = FP_CONVERT.f;
1414  #else  #else
1415      ST0 = ldfl((void *)A0);      env->fpregs[new_fpstt] = ldfl((void *)A0);
1416  #endif  #endif
1417        env->fpstt = new_fpstt;
1418        env->fptags[new_fpstt] = 0; /* validate stack entry */
1419  }  }
1420    
1421  void OPPROTO op_fldl_ST0_A0(void)  void OPPROTO op_fldl_ST0_A0(void)
1422  {  {
1423        int new_fpstt;
1424        new_fpstt = (env->fpstt - 1) & 7;
1425  #ifdef USE_FP_CONVERT  #ifdef USE_FP_CONVERT
1426      FP_CONVERT.i64 = ldq((void *)A0);      FP_CONVERT.i64 = ldq((void *)A0);
1427      ST0 = FP_CONVERT.d;      env->fpregs[new_fpstt] = FP_CONVERT.d;
1428  #else  #else
1429      ST0 = ldfq((void *)A0);      env->fpregs[new_fpstt] = ldfq((void *)A0);
1430  #endif  #endif
1431        env->fpstt = new_fpstt;
1432        env->fptags[new_fpstt] = 0; /* validate stack entry */
1433  }  }
1434    
1435  #ifdef USE_X86LDOUBLE  #ifdef USE_X86LDOUBLE
1436  void OPPROTO op_fldt_ST0_A0(void)  void OPPROTO op_fldt_ST0_A0(void)
1437  {  {
1438      ST0 = *(long double *)A0;      int new_fpstt;
1439        new_fpstt = (env->fpstt - 1) & 7;
1440        env->fpregs[new_fpstt] = *(long double *)A0;
1441        env->fpstt = new_fpstt;
1442        env->fptags[new_fpstt] = 0; /* validate stack entry */
1443  }  }
1444  #else  #else
1445  void OPPROTO op_fldt_ST0_A0(void)  void OPPROTO op_fldt_ST0_A0(void)
# Line 1441  void OPPROTO op_fldt_ST0_A0(void) Line 1453  void OPPROTO op_fldt_ST0_A0(void)
1453    
1454  void helper_fild_ST0_A0(void)  void helper_fild_ST0_A0(void)
1455  {  {
1456      ST0 = (CPU86_LDouble)ldsw((void *)A0);      int new_fpstt;
1457        new_fpstt = (env->fpstt - 1) & 7;
1458        env->fpregs[new_fpstt] = (CPU86_LDouble)ldsw((void *)A0);
1459        env->fpstt = new_fpstt;
1460        env->fptags[new_fpstt] = 0; /* validate stack entry */
1461  }  }
1462    
1463  void helper_fildl_ST0_A0(void)  void helper_fildl_ST0_A0(void)
1464  {  {
1465      ST0 = (CPU86_LDouble)((int32_t)ldl((void *)A0));      int new_fpstt;
1466        new_fpstt = (env->fpstt - 1) & 7;
1467        env->fpregs[new_fpstt] = (CPU86_LDouble)((int32_t)ldl((void *)A0));
1468        env->fpstt = new_fpstt;
1469        env->fptags[new_fpstt] = 0; /* validate stack entry */
1470  }  }
1471    
1472  void helper_fildll_ST0_A0(void)  void helper_fildll_ST0_A0(void)
1473  {  {
1474      ST0 = (CPU86_LDouble)((int64_t)ldq((void *)A0));      int new_fpstt;
1475        new_fpstt = (env->fpstt - 1) & 7;
1476        env->fpregs[new_fpstt] = (CPU86_LDouble)((int64_t)ldq((void *)A0));
1477        env->fpstt = new_fpstt;
1478        env->fptags[new_fpstt] = 0; /* validate stack entry */
1479  }  }
1480    
1481  void OPPROTO op_fild_ST0_A0(void)  void OPPROTO op_fild_ST0_A0(void)
# Line 1473  void OPPROTO op_fildll_ST0_A0(void) Line 1497  void OPPROTO op_fildll_ST0_A0(void)
1497    
1498  void OPPROTO op_fild_ST0_A0(void)  void OPPROTO op_fild_ST0_A0(void)
1499  {  {
1500        int new_fpstt;
1501        new_fpstt = (env->fpstt - 1) & 7;
1502  #ifdef USE_FP_CONVERT  #ifdef USE_FP_CONVERT
1503      FP_CONVERT.i32 = ldsw((void *)A0);      FP_CONVERT.i32 = ldsw((void *)A0);
1504      ST0 = (CPU86_LDouble)FP_CONVERT.i32;      env->fpregs[new_fpstt] = (CPU86_LDouble)FP_CONVERT.i32;
1505  #else  #else
1506      ST0 = (CPU86_LDouble)ldsw((void *)A0);      env->fpregs[new_fpstt] = (CPU86_LDouble)ldsw((void *)A0);
1507  #endif  #endif
1508        env->fpstt = new_fpstt;
1509        env->fptags[new_fpstt] = 0; /* validate stack entry */
1510  }  }
1511    
1512  void OPPROTO op_fildl_ST0_A0(void)  void OPPROTO op_fildl_ST0_A0(void)
1513  {  {
1514        int new_fpstt;
1515        new_fpstt = (env->fpstt - 1) & 7;
1516  #ifdef USE_FP_CONVERT  #ifdef USE_FP_CONVERT
1517      FP_CONVERT.i32 = (int32_t) ldl((void *)A0);      FP_CONVERT.i32 = (int32_t) ldl((void *)A0);
1518      ST0 = (CPU86_LDouble)FP_CONVERT.i32;      env->fpregs[new_fpstt] = (CPU86_LDouble)FP_CONVERT.i32;
1519  #else  #else
1520      ST0 = (CPU86_LDouble)((int32_t)ldl((void *)A0));      env->fpregs[new_fpstt] = (CPU86_LDouble)((int32_t)ldl((void *)A0));
1521  #endif  #endif
1522        env->fpstt = new_fpstt;
1523        env->fptags[new_fpstt] = 0; /* validate stack entry */
1524  }  }
1525    
1526  void OPPROTO op_fildll_ST0_A0(void)  void OPPROTO op_fildll_ST0_A0(void)
1527  {  {
1528        int new_fpstt;
1529        new_fpstt = (env->fpstt - 1) & 7;
1530  #ifdef USE_FP_CONVERT  #ifdef USE_FP_CONVERT
1531      FP_CONVERT.i64 = (int64_t) ldq((void *)A0);      FP_CONVERT.i64 = (int64_t) ldq((void *)A0);
1532      ST0 = (CPU86_LDouble)FP_CONVERT.i64;      env->fpregs[new_fpstt] = (CPU86_LDouble)FP_CONVERT.i64;
1533  #else  #else
1534      ST0 = (CPU86_LDouble)((int64_t)ldq((void *)A0));      env->fpregs[new_fpstt] = (CPU86_LDouble)((int64_t)ldq((void *)A0));
1535  #endif  #endif
1536        env->fpstt = new_fpstt;
1537        env->fptags[new_fpstt] = 0; /* validate stack entry */
1538  }  }
1539    
1540  #endif  #endif

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26