VirtualBox

Changeset 106814 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Nov 1, 2024 2:01:09 AM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165715
Message:

ValidationKit/bootsectors: Implement SIMD FP testcases for cvtpi2pd, cvtpd2pi, cvttpd2pi, and several IEM fixes; bugref:10658; jiraref:VBP-1206

IEM:

  • fix IEM cvttpd2pi, cvttps2pi, cvtps2pi, cvtpd2pi failing to raise x87/MMX exceptions
  • fix IEM cvtpi2ps incorrectly raising x87/MMX exceptions for non-MMX instructions

ValKit bs3-cpu-instr-4 test setup:

  • add FP64_x2 value bar macros
  • fix SDM exception table 23-4/5/6 test cfgs
  • test cvtpi2ps, cvtps2pi, cvttps2pi with correct exceptions: table 23-5
  • test cvtsi2ss, cvtss2si, cvttss2si with correct exceptions: class 3

ValKit bs3-cpu-instr-4 test worker:

  • add ability to mark an instruction test immune to a particular exception

ValKit bs3-cpu-instr-4 tests:

  • add tests for cvtpi2pd, cvtpd2pi, cvttpd2pi
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h

    r106695 r106814  
    36213621        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    36223622        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    3623         IEM_MC_MAYBE_RAISE_FPU_XCPT();
    36243623
    36253624        IEM_MC_PREPARE_FPU_USAGE();
     
    39843983        IEM_MC_ARG_LOCAL_REF(uint64_t *,    pu64Dst, u64Dst,    0);
    39853984        IEM_MC_ARG(uint64_t,                u64Src,             1);
     3985        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    39863986        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    39873987        IEM_MC_PREPARE_FPU_USAGE();
     
    40094009        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    40104010        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
     4011        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    40114012        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    40124013        IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     
    40394040        IEM_MC_ARG_LOCAL_REF(uint64_t *,    pu64Dst, u64Dst,    0);
    40404041        IEM_MC_ARG(PCX86XMMREG,             pSrc,               1);
     4042        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    40414043        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    40424044        IEM_MC_PREPARE_FPU_USAGE();
     
    40654067        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    40664068        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
     4069        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    40674070        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    40684071        IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     
    42904293        IEM_MC_ARG(uint64_t,                u64Src,             1);
    42914294
     4295        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    42924296        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    42934297        IEM_MC_PREPARE_FPU_USAGE();
     
    43154319        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    43164320        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
     4321        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    43174322        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    43184323        IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     
    43464351        IEM_MC_ARG(PCX86XMMREG,             pSrc,               1);
    43474352
     4353        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    43484354        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    43494355        IEM_MC_PREPARE_FPU_USAGE();
     
    43724378        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    43734379        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
     4380        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    43744381        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    43754382        IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
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