VirtualBox

Ignore:
Timestamp:
May 19, 2017 12:02:17 PM (8 years ago)
Author:
vboxsync
Message:

IEM: Added docs and tests to movaps and movapd.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r66968 r66974  
    43204320         * Decode the instruction.
    43214321         */
    4322         uint8_t const   bOpcode = *pbCode++;
    4323         unsigned        cbValue;
    4324         unsigned        cbDst;
    4325         BS3CG1DST       idxField;
    4326         BS3PTRUNION     PtrField;
    4327         bool            fZxVlMax;
     4322        uint8_t const       bOpcode = *pbCode++;
     4323        unsigned            cbValue;
     4324        unsigned            cbDst;
     4325        BS3CG1DST           idxField;
     4326        BS3PTRUNION         PtrField;
     4327        uint8_t BS3_FAR    *pbMemCopy = NULL;
     4328        bool                fZxVlMax;
    43284329
    43294330        /* Expand the destiation field (can be escaped). Set fZxVlMax. */
     
    44784479                    case BS3CG1OPLOC_MEM_WO:
    44794480                        if (pbInstr)
     4481                        {
    44804482                            PtrField.pu8 = &pThis->pbDataPg[X86_PAGE_SIZE - pThis->aOperands[idxOp].off];
     4483                            pbMemCopy    = pThis->MemOp.ab;
     4484                        }
    44814485                        else
    44824486                            PtrField.pu8 = pThis->MemOp.ab;
     
    46714675                    case BS3CG1OPLOC_MEM_WO:
    46724676                        if (pbInstr)
     4677                        {
    46734678                            PtrField.pu8 = &pThis->pbDataPg[X86_PAGE_SIZE - pThis->aOperands[idxOp].off];
     4679                            pbMemCopy    = pThis->MemOp.ab;
     4680                        }
    46744681                        else
    46754682                            PtrField.pu8 = pThis->MemOp.ab;
     
    47814788                }
    47824789            }
     4790
     4791            /*
     4792             * Hack! Update pThis->MemOp when setting up the inputs so we can
     4793             *       correctly validate value and alignment exceptions.
     4794             */
     4795            if (pbMemCopy && PtrField.pv)
     4796                Bs3MemCpy(pbMemCopy, PtrField.pv, cbDst);
    47834797        }
    47844798
     
    55165530                                                                pHdr->cbSelector + pHdr->cbInput, pHdr->cbOutput,
    55175531                                                                &pThis->TrapFrame.Ctx, NULL /*pbCode*/))
    5518                                 {
    55195532                                    Bs3Cg1CheckResult(pThis, bTestXcptExpected, false /*fInvalidEncodingPgFault*/, iEncoding);
    5520                                 }
    5521                                 else if (   !pThis->fInvalidEncoding
    5522                                          && pThis->bAlignmentXcpt == UINT8_MAX
    5523                                          && pThis->bValueXcpt     == UINT8_MAX)
     5533                                else
    55245534                                {
    55255535                                    Bs3TestPrintf("Bs3Cg1RunContextModifier(out): iEncoding=%u iTest=%u\n", iEncoding, pThis->iTest);
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