VirtualBox

Changeset 40244 in vbox


Ignore:
Timestamp:
Feb 24, 2012 12:48:47 AM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76454
Message:

IEM: Implemented FPU instructions 0xd9 0xf3 thru 0xd9 0xff, completing the 0xd9 prefixed instructions.

Location:
trunk/src/VBox/VMM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r40242 r40244  
    16091609; @param    A0      FPU context (fxsave).
    16101610; @param    A1      Pointer to a IEMFPURESULT for the output.
     1611; @param    A2      Pointer to the first 80-bit value (ST0)
     1612; @param    A3      Pointer to the second 80-bit value (STn).
     1613;
     1614%macro IEMIMPL_FPU_R80_BY_R80 2
     1615BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _r80_by_r80, 16
     1616        PROLOGUE_4_ARGS
     1617        sub     xSP, 20h
     1618
     1619        fninit
     1620        fld     tword [A3]
     1621        fld     tword [A2]
     1622        FPU_LD_FXSTATE_FCW_AND_SAFE_FSW A0
     1623        %1      %2
     1624
     1625        fnstsw  word  [A1 + IEMFPURESULT.FSW]
     1626        fnclex
     1627        fstp    tword [A1 + IEMFPURESULT.r80Result]
     1628
     1629        fninit
     1630        add     xSP, 20h
     1631        EPILOGUE_4_ARGS 8
     1632ENDPROC iemAImpl_ %+ %1 %+ _r80_by_r80
     1633%endmacro
     1634
     1635IEMIMPL_FPU_R80_BY_R80 fadd,   {st0, st1}
     1636IEMIMPL_FPU_R80_BY_R80 fmul,   {st0, st1}
     1637IEMIMPL_FPU_R80_BY_R80 fsub,   {st0, st1}
     1638IEMIMPL_FPU_R80_BY_R80 fsubr,  {st0, st1}
     1639IEMIMPL_FPU_R80_BY_R80 fdiv,   {st0, st1}
     1640IEMIMPL_FPU_R80_BY_R80 fdivr,  {st0, st1}
     1641IEMIMPL_FPU_R80_BY_R80 fprem,  {}
     1642IEMIMPL_FPU_R80_BY_R80 fprem1, {}
     1643IEMIMPL_FPU_R80_BY_R80 fscale, {}
     1644
     1645
     1646;;
     1647; FPU instruction working on two 80-bit floating point values, ST1 and ST0,
     1648; storing the result in ST1 and popping the stack.
     1649;
     1650; @param    1       The instruction
     1651;
     1652; @param    A0      FPU context (fxsave).
     1653; @param    A1      Pointer to a IEMFPURESULT for the output.
     1654; @param    A2      Pointer to the first 80-bit value (ST1).
     1655; @param    A3      Pointer to the second 80-bit value (ST0).
     1656;
     1657%macro IEMIMPL_FPU_R80_BY_R80_ST1_ST0_POP 1
     1658BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _r80_by_r80, 16
     1659        PROLOGUE_4_ARGS
     1660        sub     xSP, 20h
     1661
     1662        fninit
     1663        fld     tword [A2]
     1664        fld     tword [A3]
     1665        FPU_LD_FXSTATE_FCW_AND_SAFE_FSW A0
     1666        %1
     1667
     1668        fnstsw  word  [A1 + IEMFPURESULT.FSW]
     1669        fnclex
     1670        fstp    tword [A1 + IEMFPURESULT.r80Result]
     1671
     1672        fninit
     1673        add     xSP, 20h
     1674        EPILOGUE_4_ARGS 8
     1675ENDPROC iemAImpl_ %+ %1 %+ _r80_by_r80
     1676%endmacro
     1677
     1678IEMIMPL_FPU_R80_BY_R80_ST1_ST0_POP fpatan
     1679IEMIMPL_FPU_R80_BY_R80_ST1_ST0_POP fyl2xp1
     1680
     1681
     1682;;
     1683; FPU instruction working on two 80-bit floating point values, only
     1684; returning FSW.
     1685;
     1686; @param    1       The instruction
     1687;
     1688; @param    A0      FPU context (fxsave).
     1689; @param    A1      Pointer to a uint16_t for the resulting FSW.
    16111690; @param    A2      Pointer to the first 80-bit value.
    16121691; @param    A3      Pointer to the second 80-bit value.
    16131692;
    1614 %macro IEMIMPL_FPU_R80_BY_R80 1
     1693%macro IEMIMPL_FPU_R80_BY_R80_FSW 1
    16151694BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _r80_by_r80, 16
    16161695        PROLOGUE_4_ARGS
     
    16231702        %1      st0, st1
    16241703
    1625         fnstsw  word  [A1 + IEMFPURESULT.FSW]
    1626         fnclex
    1627         fstp    tword [A1 + IEMFPURESULT.r80Result]
    1628 
    1629         fninit
    1630         add     xSP, 20h
    1631         EPILOGUE_4_ARGS 8
    1632 ENDPROC iemAImpl_ %+ %1 %+ _r80_by_r80
    1633 %endmacro
    1634 
    1635 IEMIMPL_FPU_R80_BY_R80 fadd
    1636 IEMIMPL_FPU_R80_BY_R80 fmul
    1637 IEMIMPL_FPU_R80_BY_R80 fsub
    1638 IEMIMPL_FPU_R80_BY_R80 fsubr
    1639 IEMIMPL_FPU_R80_BY_R80 fdiv
    1640 IEMIMPL_FPU_R80_BY_R80 fdivr
    1641 
    1642 
    1643 ;;
    1644 ; FPU instruction working on two 80-bit floating point values, only
    1645 ; returning FSW.
    1646 ;
    1647 ; @param    1       The instruction
    1648 ;
    1649 ; @param    A0      FPU context (fxsave).
    1650 ; @param    A1      Pointer to a uint16_t for the resulting FSW.
    1651 ; @param    A2      Pointer to the first 80-bit value.
    1652 ; @param    A3      Pointer to the second 80-bit value.
    1653 ;
    1654 %macro IEMIMPL_FPU_R80_BY_R80_FSW 1
    1655 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _r80_by_r80, 16
    1656         PROLOGUE_4_ARGS
    1657         sub     xSP, 20h
    1658 
    1659         fninit
    1660         fld     tword [A3]
    1661         fld     tword [A2]
    1662         FPU_LD_FXSTATE_FCW_AND_SAFE_FSW A0
    1663         %1      st0, st1
    1664 
    16651704        fnstsw  word  [A1]
    16661705
     
    17081747IEMIMPL_FPU_R80 f2xm1
    17091748IEMIMPL_FPU_R80 fyl2x
     1749IEMIMPL_FPU_R80 fsqrt
     1750IEMIMPL_FPU_R80 frndint
     1751IEMIMPL_FPU_R80 fsin
     1752IEMIMPL_FPU_R80 fcos
    17101753
    17111754
     
    17881831; @param    A2      Pointer to the 80-bit value.
    17891832;
    1790 BEGINPROC_FASTCALL iemAImpl_fptan_r80_r80, 12
     1833%macro IEMIMPL_FPU_R80_R80 1
     1834BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _r80_r80, 12
    17911835        PROLOGUE_3_ARGS
    17921836        sub     xSP, 20h
     
    17951839        fld     tword [A2]
    17961840        FPU_LD_FXSTATE_FCW_AND_SAFE_FSW A0
    1797         fptan
     1841        %1
    17981842
    17991843        fnstsw  word  [A1 + IEMFPURESULTTWO.FSW]
     
    18061850        add     xSP, 20h
    18071851        EPILOGUE_3_ARGS 4
    1808 ENDPROC iemAImpl_fptan_r80_r80
    1809 
     1852ENDPROC iemAImpl_ %+ %1 %+ _r80_r80
     1853%endmacro
     1854
     1855IEMIMPL_FPU_R80_R80 fptan
     1856IEMIMPL_FPU_R80_R80 fxtract
     1857IEMIMPL_FPU_R80_R80 fsincos
     1858
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r40225 r40244  
    43064306}
    43074307
     4308
     4309/**
     4310 * Implements 'FINCSTP' and 'FDECSTP'.
     4311 *
     4312 * @param   cToAdd              1 or 7.
     4313 */
     4314IEM_CIMPL_DEF_1(iemCImpl_fpu_AddToTop, uint8_t, cToAdd)
     4315{
     4316    PCPUMCTX pCtx = pIemCpu->CTX_SUFF(pCtx);
     4317
     4318    /*
     4319     * Raise exceptions.
     4320     */
     4321    if (pCtx->cr0 & (X86_CR0_EM | X86_CR0_TS))
     4322        return iemRaiseDeviceNotAvailable(pIemCpu);
     4323    uint16_t u16Fsw = pCtx->fpu.FSW;
     4324    if (u16Fsw & X86_FSW_ES)
     4325        return iemRaiseMathFault(pIemCpu);
     4326
     4327    /*
     4328     * Do the job.
     4329     *
     4330     * Note! The instructions are listed as control instructions and should
     4331     *       therefore not update FOP, FPUIP and FPUCS...
     4332     * Note! C0, C2 and C3 are documented as undefined, we clear them.
     4333     */
     4334    /** @todo Testcase: Check whether FOP, FPUIP and FPUCS are affected by
     4335     *        FINCSTP and FDECSTP. */
     4336    uint16_t iTop = X86_FSW_TOP_GET(u16Fsw);
     4337    iTop += cToAdd;
     4338    iTop &= X86_FSW_TOP_SMASK;
     4339    u16Fsw &= ~(X86_FSW_TOP_MASK | X86_FSW_C_MASK);
     4340    u16Fsw |= (iTop << X86_FSW_TOP_SHIFT);
     4341    pCtx->fpu.FSW = u16Fsw;
     4342
     4343    return VINF_SUCCESS;
     4344}
     4345
     4346
    43084347/** @} */
    43094348
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r40243 r40244  
    1106711067
    1106811068
    11069 /** Opcode 0xd9 0xf2. */
    11070 FNIEMOP_DEF(iemOp_fptan)
    11071 {
    11072     IEMOP_MNEMONIC("fptan st0");
     11069/**
     11070 * Common worker for FPU instructions working on ST0 and having two outputs, one
     11071 * replacing ST0 and one pushed onto the stack.
     11072 *
     11073 * @param   pfnAImpl    Pointer to the instruction implementation (assembly).
     11074 */
     11075FNIEMOP_DEF_1(iemOpHlpFpuReplace_st0_push, PFNIEMAIMPLFPUR80UNARYTWO, pfnAImpl)
     11076{
    1107311077    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1107411078
     
    1108111085    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    1108211086    IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80(pr80Value, 0)
    11083         IEM_MC_CALL_FPU_AIMPL_2(iemAImpl_fptan_r80_r80, pFpuResTwo, pr80Value);
     11087        IEM_MC_CALL_FPU_AIMPL_2(pfnAImpl, pFpuResTwo, pr80Value);
    1108411088        IEM_MC_PUSH_FPU_RESULT_TWO(FpuResTwo);
    1108511089    IEM_MC_ELSE()
     
    1109011094    IEM_MC_END();
    1109111095    return VINF_SUCCESS;
    11092 
    11093 }
     11096}
     11097
     11098
     11099/** Opcode 0xd9 0xf2. */
     11100FNIEMOP_DEF(iemOp_fptan)
     11101{
     11102    IEMOP_MNEMONIC("fptan st0");
     11103    return FNIEMOP_CALL_1(iemOpHlpFpuReplace_st0_push, iemAImpl_fptan_r80_r80);
     11104}
     11105
     11106
     11107/**
     11108 * Common worker for FPU instructions working on STn and ST0, storing the result
     11109 * in STn, and popping the stack unless IE, DE or ZE was raised.
     11110 *
     11111 * @param   pfnAImpl    Pointer to the instruction implementation (assembly).
     11112 */
     11113FNIEMOP_DEF_2(iemOpHlpFpu_stN_st0_pop, uint8_t, bRm, PFNIEMAIMPLFPUR80, pfnAImpl)
     11114{
     11115    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     11116
     11117    IEM_MC_BEGIN(3, 1);
     11118    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     11119    IEM_MC_ARG_LOCAL_REF(PIEMFPURESULT, pFpuRes,        FpuRes,     0);
     11120    IEM_MC_ARG(PCRTFLOAT80U,            pr80Value1,                 1);
     11121    IEM_MC_ARG(PCRTFLOAT80U,            pr80Value2,                 2);
     11122
     11123    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     11124    IEM_MC_MAYBE_RAISE_FPU_XCPT();
     11125
     11126    IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80(pr80Value1, bRm & X86_MODRM_RM_MASK, pr80Value2, 0)
     11127        IEM_MC_CALL_FPU_AIMPL_3(pfnAImpl, pFpuRes, pr80Value1, pr80Value2);
     11128        IEM_MC_STORE_FPU_RESULT_THEN_POP(FpuRes, bRm & X86_MODRM_RM_MASK);
     11129    IEM_MC_ELSE()
     11130        IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP(bRm & X86_MODRM_RM_MASK);
     11131    IEM_MC_ENDIF();
     11132    IEM_MC_ADVANCE_RIP();
     11133
     11134    IEM_MC_END();
     11135    return VINF_SUCCESS;
     11136}
     11137
    1109411138
    1109511139/** Opcode 0xd9 0xf3. */
    11096 FNIEMOP_STUB(iemOp_fpatan);
     11140FNIEMOP_DEF(iemOp_fpatan)
     11141{
     11142    IEMOP_MNEMONIC("fpatan st1,st0");
     11143    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, 1, iemAImpl_fpatan_r80_by_r80);
     11144}
     11145
    1109711146
    1109811147/** Opcode 0xd9 0xf4. */
    11099 FNIEMOP_STUB(iemOp_fxtract);
     11148FNIEMOP_DEF(iemOp_fxtract)
     11149{
     11150    IEMOP_MNEMONIC("fxtract st0");
     11151    return FNIEMOP_CALL_1(iemOpHlpFpuReplace_st0_push, iemAImpl_fxtract_r80_r80);
     11152}
     11153
    1110011154
    1110111155/** Opcode 0xd9 0xf5. */
    11102 FNIEMOP_STUB(iemOp_fprem1);
     11156FNIEMOP_DEF(iemOp_fprem1)
     11157{
     11158    IEMOP_MNEMONIC("fprem1 st0, st1");
     11159    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, 1, iemAImpl_fprem1_r80_by_r80);
     11160}
     11161
    1110311162
    1110411163/** Opcode 0xd9 0xf6. */
    11105 FNIEMOP_STUB(iemOp_fdecstp);
     11164FNIEMOP_DEF(iemOp_fdecstp)
     11165{
     11166    IEMOP_MNEMONIC("fdecstp");
     11167    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     11168    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_fpu_AddToTop, 7);
     11169}
     11170
    1110611171
    1110711172/** Opcode 0xd9 0xf7. */
    11108 FNIEMOP_STUB(iemOp_fincstp);
     11173FNIEMOP_DEF(iemOp_fincstp)
     11174{
     11175    IEMOP_MNEMONIC("fincstp");
     11176    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     11177    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_fpu_AddToTop, 1);
     11178}
     11179
    1110911180
    1111011181/** Opcode 0xd9 0xf8. */
    11111 FNIEMOP_STUB(iemOp_fprem);
     11182FNIEMOP_DEF(iemOp_fprem)
     11183{
     11184    IEMOP_MNEMONIC("fprem st0, st1");
     11185    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, 1, iemAImpl_fprem_r80_by_r80);
     11186}
     11187
    1111211188
    1111311189/** Opcode 0xd9 0xf9. */
    11114 FNIEMOP_STUB(iemOp_fyl2xp1);
     11190FNIEMOP_DEF(iemOp_fyl2xp1)
     11191{
     11192    IEMOP_MNEMONIC("fyl2xp1 st1,st0");
     11193    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, 1, iemAImpl_fyl2xp1_r80_by_r80);
     11194}
     11195
    1111511196
    1111611197/** Opcode 0xd9 0xfa. */
    11117 FNIEMOP_STUB(iemOp_fsqrt);
     11198FNIEMOP_DEF(iemOp_fsqrt)
     11199{
     11200    IEMOP_MNEMONIC("fsqrt st0");
     11201    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fsqrt_r80);
     11202}
     11203
    1111811204
    1111911205/** Opcode 0xd9 0xfb. */
    11120 FNIEMOP_STUB(iemOp_fsincos);
     11206FNIEMOP_DEF(iemOp_fsincos)
     11207{
     11208    IEMOP_MNEMONIC("fsincos st0");
     11209    return FNIEMOP_CALL_1(iemOpHlpFpuReplace_st0_push, iemAImpl_fsincos_r80_r80);
     11210}
     11211
    1112111212
    1112211213/** Opcode 0xd9 0xfc. */
    11123 FNIEMOP_STUB(iemOp_frndint);
     11214FNIEMOP_DEF(iemOp_frndint)
     11215{
     11216    IEMOP_MNEMONIC("frndint st0");
     11217    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_frndint_r80);
     11218}
     11219
    1112411220
    1112511221/** Opcode 0xd9 0xfd. */
    11126 FNIEMOP_STUB(iemOp_fscale);
     11222FNIEMOP_DEF(iemOp_fscale)
     11223{
     11224    IEMOP_MNEMONIC("fscale st0, st1");
     11225    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, 1, iemAImpl_fscale_r80_by_r80);
     11226}
     11227
    1112711228
    1112811229/** Opcode 0xd9 0xfe. */
    11129 FNIEMOP_STUB(iemOp_fsin);
     11230FNIEMOP_DEF(iemOp_fsin)
     11231{
     11232    IEMOP_MNEMONIC("fsin st0");
     11233    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fsin_r80);
     11234}
     11235
    1113011236
    1113111237/** Opcode 0xd9 0xff. */
    11132 FNIEMOP_STUB(iemOp_fcos);
     11238FNIEMOP_DEF(iemOp_fcos)
     11239{
     11240    IEMOP_MNEMONIC("fcos st0");
     11241    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fcos_r80);
     11242}
    1113311243
    1113411244
     
    1178711897        }
    1178811898    }
    11789 }
    11790 
    11791 
    11792 /**
    11793  * Common worker for FPU instructions working on STn and ST0, storing the result
    11794  * in STn, and poping the stack unless IE, DE or ZE was raised.
    11795  *
    11796  * @param   pfnAImpl    Pointer to the instruction implementation (assembly).
    11797  */
    11798 FNIEMOP_DEF_2(iemOpHlpFpu_stN_st0_pop, uint8_t, bRm, PFNIEMAIMPLFPUR80, pfnAImpl)
    11799 {
    11800     IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    11801 
    11802     IEM_MC_BEGIN(3, 1);
    11803     IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
    11804     IEM_MC_ARG_LOCAL_REF(PIEMFPURESULT, pFpuRes,        FpuRes,     0);
    11805     IEM_MC_ARG(PCRTFLOAT80U,            pr80Value1,                 1);
    11806     IEM_MC_ARG(PCRTFLOAT80U,            pr80Value2,                 2);
    11807 
    11808     IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    11809     IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11810 
    11811     IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80(pr80Value1, bRm & X86_MODRM_RM_MASK, pr80Value2, 0)
    11812         IEM_MC_CALL_FPU_AIMPL_3(pfnAImpl, pFpuRes, pr80Value1, pr80Value2);
    11813         IEM_MC_STORE_FPU_RESULT_THEN_POP(FpuRes, bRm & X86_MODRM_RM_MASK);
    11814     IEM_MC_ELSE()
    11815         IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP(bRm & X86_MODRM_RM_MASK);
    11816     IEM_MC_ENDIF();
    11817     IEM_MC_ADVANCE_RIP();
    11818 
    11819     IEM_MC_END();
    11820     return VINF_SUCCESS;
    1182111899}
    1182211900
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r40243 r40244  
    799799FNIEMAIMPLFPUR80            iemAImpl_fdiv_r80_by_r80;
    800800FNIEMAIMPLFPUR80            iemAImpl_fdivr_r80_by_r80;
     801FNIEMAIMPLFPUR80            iemAImpl_fprem_r80_by_r80;
     802FNIEMAIMPLFPUR80            iemAImpl_fprem1_r80_by_r80;
     803FNIEMAIMPLFPUR80            iemAImpl_fscale_r80_by_r80;
     804
     805FNIEMAIMPLFPUR80            iemAImpl_fpatan_r80_by_r80;
     806FNIEMAIMPLFPUR80            iemAImpl_fyl2xp1_r80_by_r80;
    801807
    802808typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUR80FSW,(PCX86FXSTATE pFpuState, uint16_t *pFSW,
     
    811817FNIEMAIMPLFPUR80UNARY       iemAImpl_f2xm1_r80;
    812818FNIEMAIMPLFPUR80UNARY       iemAImpl_fyl2x_r80;
     819FNIEMAIMPLFPUR80UNARY       iemAImpl_fsqrt_r80;
     820FNIEMAIMPLFPUR80UNARY       iemAImpl_frndint_r80;
     821FNIEMAIMPLFPUR80UNARY       iemAImpl_fsin_r80;
     822FNIEMAIMPLFPUR80UNARY       iemAImpl_fcos_r80;
    813823
    814824typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUR80UNARYFSW,(PCX86FXSTATE pFpuState, uint16_t *pu16Fsw, PCRTFLOAT80U pr80Val));
     
    827837FNIEMAIMPLFPUR80LDCONST     iemAImpl_fldz;
    828838
    829 IEM_DECL_IMPL_DEF(void, iemAImpl_fptan_r80_r80,(PCX86FXSTATE pFpuState, PIEMFPURESULTTWO pFpuResTwo, PCRTFLOAT80U pr80Val));
     839typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLFPUR80UNARYTWO,(PCX86FXSTATE pFpuState, PIEMFPURESULTTWO pFpuResTwo,
     840                                                           PCRTFLOAT80U pr80Val));
     841typedef FNIEMAIMPLFPUR80UNARYTWO *PFNIEMAIMPLFPUR80UNARYTWO;
     842FNIEMAIMPLFPUR80UNARYTWO    iemAImpl_fptan_r80_r80;
     843FNIEMAIMPLFPUR80UNARYTWO    iemAImpl_fxtract_r80_r80;
     844FNIEMAIMPLFPUR80UNARYTWO    iemAImpl_fsincos_r80_r80;
    830845
    831846/** @} */
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r40243 r40244  
    185185#define iemAImpl_fdiv_r80_by_r80        NULL
    186186#define iemAImpl_fdivr_r80_by_r80       NULL
     187#define iemAImpl_fprem_r80_by_r80       NULL
     188#define iemAImpl_fprem1_r80_by_r80      NULL
     189#define iemAImpl_fscale_r80_by_r80      NULL
     190
     191#define iemAImpl_fpatan_r80_by_r80      NULL
     192#define iemAImpl_fyl2xp1_r80_by_r80     NULL
     193
    187194#define iemAImpl_fcom_r80_by_r80        NULL
    188195#define iemAImpl_fabs_r80               NULL
     
    192199#define iemAImpl_f2xm1_r80              NULL
    193200#define iemAImpl_fyl2x_r80              NULL
     201#define iemAImpl_fsqrt_r80              NULL
     202#define iemAImpl_frndint_r80            NULL
     203#define iemAImpl_fsin_r80               NULL
     204#define iemAImpl_fcos_r80               NULL
     205
    194206#define iemAImpl_fld1                   NULL
    195207#define iemAImpl_fldl2t                 NULL
     
    199211#define iemAImpl_fldln2                 NULL
    200212#define iemAImpl_fldz                   NULL
     213
     214#define iemAImpl_fptan_r80_r80          NULL
     215#define iemAImpl_fxtract_r80_r80        NULL
     216#define iemAImpl_fsincos_r80_r80        NULL
    201217
    202218#define iemCImpl_callf                  NULL
Note: See TracChangeset for help on using the changeset viewer.

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