VirtualBox

Ignore:
Timestamp:
Mar 31, 2022 12:20:53 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
150741
Message:

VMM/IEM,tstIEMAImpl: A handful of FPU instructions produces different results on AMD, it seems. bugref:9898

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r94402 r94413  
    13991399FNIEMAIMPLFPUR80            iemAImpl_fscale_r80_by_r80;
    14001400
    1401 FNIEMAIMPLFPUR80            iemAImpl_fpatan_r80_by_r80;
    1402 FNIEMAIMPLFPUR80            iemAImpl_fyl2x_r80_by_r80;
    1403 FNIEMAIMPLFPUR80            iemAImpl_fyl2xp1_r80_by_r80;
     1401FNIEMAIMPLFPUR80            iemAImpl_fpatan_r80_by_r80,  iemAImpl_fpatan_r80_by_r80_amd,  iemAImpl_fpatan_r80_by_r80_intel;
     1402FNIEMAIMPLFPUR80            iemAImpl_fyl2x_r80_by_r80,   iemAImpl_fyl2x_r80_by_r80_amd,   iemAImpl_fyl2x_r80_by_r80_intel;
     1403FNIEMAIMPLFPUR80            iemAImpl_fyl2xp1_r80_by_r80, iemAImpl_fyl2xp1_r80_by_r80_amd, iemAImpl_fyl2xp1_r80_by_r80_intel;
    14041404
    14051405typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUR80FSW,(PCX86FXSTATE pFpuState, uint16_t *pFSW,
     
    14611461typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUI16,(PCX86FXSTATE pFpuState, PIEMFPURESULT pFpuRes,
    14621462                                                   PCRTFLOAT80U pr80Val1, int16_t const *pi16Val2));
    1463 typedef FNIEMAIMPLFPUI16    *PFNIEMAIMPLFPUI16;
     1463typedef FNIEMAIMPLFPUI16 *PFNIEMAIMPLFPUI16;
     1464typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUSTR80TOI16,(PCX86FXSTATE pFpuState, uint16_t *pFpuRes,
     1465                                                          int16_t *pi16Dst, PCRTFLOAT80U pr80Src));
     1466typedef FNIEMAIMPLFPUSTR80TOI16 *PFNIEMAIMPLFPUSTR80TOI16;
    14641467
    14651468FNIEMAIMPLFPUI16    iemAImpl_fiadd_r80_by_i16;
     
    14741477
    14751478IEM_DECL_IMPL_DEF(void, iemAImpl_fild_r80_from_i16,(PCX86FXSTATE pFpuState, PIEMFPURESULT pFpuRes, int16_t const *pi16Val));
    1476 IEM_DECL_IMPL_DEF(void, iemAImpl_fist_r80_to_i16,(PCX86FXSTATE pFpuState, uint16_t *pu16FSW,
    1477                                                   int16_t *pi16Val, PCRTFLOAT80U pr80Val));
    1478 IEM_DECL_IMPL_DEF(void, iemAImpl_fistt_r80_to_i16,(PCX86FXSTATE pFpuState, uint16_t *pu16FSW,
    1479                                                    int16_t *pi16Val, PCRTFLOAT80U pr80Val));
     1479FNIEMAIMPLFPUSTR80TOI16 iemAImpl_fist_r80_to_i16;
     1480FNIEMAIMPLFPUSTR80TOI16 iemAImpl_fistt_r80_to_i16, iemAImpl_fistt_r80_to_i16_amd, iemAImpl_fistt_r80_to_i16_intel;
    14801481/** @}  */
    14811482
     
    14841485typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUI32,(PCX86FXSTATE pFpuState, PIEMFPURESULT pFpuRes,
    14851486                                                   PCRTFLOAT80U pr80Val1, int32_t const *pi32Val2));
    1486 typedef FNIEMAIMPLFPUI32    *PFNIEMAIMPLFPUI32;
     1487typedef FNIEMAIMPLFPUI32 *PFNIEMAIMPLFPUI32;
     1488typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUSTR80TOI32,(PCX86FXSTATE pFpuState, uint16_t *pFpuRes,
     1489                                                          int32_t *pi32Dst, PCRTFLOAT80U pr80Src));
     1490typedef FNIEMAIMPLFPUSTR80TOI32 *PFNIEMAIMPLFPUSTR80TOI32;
    14871491
    14881492FNIEMAIMPLFPUI32    iemAImpl_fiadd_r80_by_i32;
     
    14971501
    14981502IEM_DECL_IMPL_DEF(void, iemAImpl_fild_r80_from_i32,(PCX86FXSTATE pFpuState, PIEMFPURESULT pFpuRes, int32_t const *pi32Val));
    1499 IEM_DECL_IMPL_DEF(void, iemAImpl_fist_r80_to_i32,(PCX86FXSTATE pFpuState, uint16_t *pu16FSW,
    1500                                                   int32_t *pi32Val, PCRTFLOAT80U pr80Val));
    1501 IEM_DECL_IMPL_DEF(void, iemAImpl_fistt_r80_to_i32,(PCX86FXSTATE pFpuState, uint16_t *pu16FSW,
    1502                                                    int32_t *pi32Val, PCRTFLOAT80U pr80Val));
     1503FNIEMAIMPLFPUSTR80TOI32 iemAImpl_fist_r80_to_i32;
     1504FNIEMAIMPLFPUSTR80TOI32 iemAImpl_fistt_r80_to_i32;
    15031505/** @}  */
    15041506
     
    15071509typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUI64,(PCX86FXSTATE pFpuState, PIEMFPURESULT pFpuRes,
    15081510                                                   PCRTFLOAT80U pr80Val1, int64_t const *pi64Val2));
    1509 typedef FNIEMAIMPLFPUI64    *PFNIEMAIMPLFPUI64;
     1511typedef FNIEMAIMPLFPUI64 *PFNIEMAIMPLFPUI64;
     1512typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUSTR80TOI64,(PCX86FXSTATE pFpuState, uint16_t *pFpuRes,
     1513                                                          int64_t *pi64Dst, PCRTFLOAT80U pr80Src));
     1514typedef FNIEMAIMPLFPUSTR80TOI64 *PFNIEMAIMPLFPUSTR80TOI64;
    15101515
    15111516FNIEMAIMPLFPUI64    iemAImpl_fiadd_r80_by_i64;
     
    15201525
    15211526IEM_DECL_IMPL_DEF(void, iemAImpl_fild_r80_from_i64,(PCX86FXSTATE pFpuState, PIEMFPURESULT pFpuRes, int64_t const *pi64Val));
    1522 IEM_DECL_IMPL_DEF(void, iemAImpl_fist_r80_to_i64,(PCX86FXSTATE pFpuState, uint16_t *pu16FSW,
    1523                                                   int64_t *pi64Val, PCRTFLOAT80U pr80Val));
    1524 IEM_DECL_IMPL_DEF(void, iemAImpl_fistt_r80_to_i64,(PCX86FXSTATE pFpuState, uint16_t *pu16FSW,
    1525                                                    int64_t *pi32Val, PCRTFLOAT80U pr80Val));
     1527FNIEMAIMPLFPUSTR80TOI64 iemAImpl_fist_r80_to_i64;
     1528FNIEMAIMPLFPUSTR80TOI64 iemAImpl_fistt_r80_to_i64;
    15261529/** @} */
    15271530
    15281531
    15291532/** Temporary type representing a 256-bit vector register. */
    1530 typedef struct {uint64_t au64[4]; } IEMVMM256;
     1533typedef struct { uint64_t au64[4]; } IEMVMM256;
    15311534/** Temporary type pointing to a 256-bit vector register. */
    15321535typedef IEMVMM256 *PIEMVMM256;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette