VirtualBox

Changeset 40162 in vbox


Ignore:
Timestamp:
Feb 16, 2012 7:28:18 PM (13 years ago)
Author:
vboxsync
Message:

fmul st0,m64r

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/x86.h

    r40144 r40162  
    66
    77/*
    8  * Copyright (C) 2006-2011 Oracle Corporation
     8 * Copyright (C) 2006-2012 Oracle Corporation
    99 *
    1010 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r40161 r40162  
    55
    66/*
    7  * Copyright (C) 2011 Oracle Corporation
     7 * Copyright (C) 2011-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r40161 r40162  
    44;
    55
    6 ; Copyright (C) 2011 Oracle Corporation
     6; Copyright (C) 2011-2012 Oracle Corporation
    77;
    88; This file is part of VirtualBox Open Source Edition (OSE), as
     
    13931393ENDPROC iemAImpl_fpu_fdiv_r80_by_r64
    13941394
     1395
     1396;;
     1397; FMUL with 64-bit floating point value.
     1398;
     1399; @param    A0      FPU context (fxsave).
     1400; @param    A1      Pointer to a IEMFPURESULT for the output.
     1401; @param    A2      Pointer to the 80-bit factor.
     1402; @param    A3      Pointer to the 64-bit factor.
     1403;
     1404BEGINPROC_FASTCALL iemAImpl_fpu_fmul_r80_by_r64, 16
     1405        PROLOGUE_4_ARGS
     1406        sub     xSP, 20h
     1407
     1408        fninit
     1409        fld     tword [A2]
     1410        FPU_LD_FXSTATE_FCW_AND_SAFE_FSW A0
     1411        fmul    qword [A3]
     1412
     1413        fnstsw  word  [A1 + IEMFPURESULT.FSW]
     1414        fnclex
     1415        fstp    tword [A1 + IEMFPURESULT.r80Result]
     1416
     1417        add     xSP, 20h
     1418        EPILOGUE_4_ARGS 8
     1419ENDPROC iemAImpl_fpu_fmul_r80_by_r64
     1420
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r40022 r40162  
    55
    66/*
    7  * Copyright (C) 2011 Oracle Corporation
     7 * Copyright (C) 2011-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r40154 r40162  
    55
    66/*
    7  * Copyright (C) 2011 Oracle Corporation
     7 * Copyright (C) 2011-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    1081010810
    1081110811/** Opcode 0xdc !11/1. */
    10812 FNIEMOP_STUB_1(iemOp_fmul_m64r,  uint8_t, bRm);
     10812FNIEMOP_DEF_1(iemOp_fmul_m64r,  uint8_t, bRm)
     10813{
     10814    IEMOP_MNEMONIC("fdiv m64r");
     10815    IEMOP_HLP_NO_LOCK_PREFIX();
     10816
     10817    IEM_MC_BEGIN(3, 3);
     10818    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     10819    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     10820    IEM_MC_LOCAL(RTFLOAT64U,            r64Factor2);
     10821    IEM_MC_ARG_LOCAL_REF(PIEMFPURESULT, pFpuRes,        FpuRes,     0);
     10822    IEM_MC_ARG(PCRTFLOAT80U,            pr80Factor1,                1);
     10823    IEM_MC_ARG_LOCAL_REF(PRTFLOAT64U,   pr64Factor2,    r64Factor2, 2);
     10824
     10825    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm);
     10826    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     10827    IEM_MC_MAYBE_RAISE_FPU_XCPT();
     10828    IEM_MC_FETCH_MEM_R64(r64Factor2, pIemCpu->iEffSeg, GCPtrEffSrc);
     10829    IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80(pr80Factor1, 0)
     10830        IEM_MC_CALL_FPU_AIMPL_3(iemAImpl_fpu_fmul_r80_by_r64, pFpuRes, pr80Factor1, pr64Factor2);
     10831        IEM_MC_STORE_FPU_RESULT_MEM_OP(FpuRes, 0, pIemCpu->iEffSeg, GCPtrEffSrc);
     10832    IEM_MC_ELSE()
     10833        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(0, pIemCpu->iEffSeg, GCPtrEffSrc);
     10834    IEM_MC_ENDIF();
     10835    IEM_MC_ADVANCE_RIP();
     10836
     10837    IEM_MC_END();
     10838    return VINF_SUCCESS;
     10839}
    1081310840
    1081410841/** Opcode 0xdc !11/2. */
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r40143 r40162  
    55
    66/*
    7  * Copyright (C) 2011 Oracle Corporation
     7 * Copyright (C) 2011-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    725725FNIEMAIMPLFPUR64U iemAImpl_fpu_r64_to_r80;
    726726FNIEMAIMPLFPUR64  iemAImpl_fpu_fdiv_r80_by_r64;
     727FNIEMAIMPLFPUR64  iemAImpl_fpu_fmul_r80_by_r64;
    727728
    728729/** @} */
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