Changeset 66974 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- May 19, 2017 12:02:17 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66968 r66974 4320 4320 * Decode the instruction. 4321 4321 */ 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; 4328 4329 4329 4330 /* Expand the destiation field (can be escaped). Set fZxVlMax. */ … … 4478 4479 case BS3CG1OPLOC_MEM_WO: 4479 4480 if (pbInstr) 4481 { 4480 4482 PtrField.pu8 = &pThis->pbDataPg[X86_PAGE_SIZE - pThis->aOperands[idxOp].off]; 4483 pbMemCopy = pThis->MemOp.ab; 4484 } 4481 4485 else 4482 4486 PtrField.pu8 = pThis->MemOp.ab; … … 4671 4675 case BS3CG1OPLOC_MEM_WO: 4672 4676 if (pbInstr) 4677 { 4673 4678 PtrField.pu8 = &pThis->pbDataPg[X86_PAGE_SIZE - pThis->aOperands[idxOp].off]; 4679 pbMemCopy = pThis->MemOp.ab; 4680 } 4674 4681 else 4675 4682 PtrField.pu8 = pThis->MemOp.ab; … … 4781 4788 } 4782 4789 } 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); 4783 4797 } 4784 4798 … … 5516 5530 pHdr->cbSelector + pHdr->cbInput, pHdr->cbOutput, 5517 5531 &pThis->TrapFrame.Ctx, NULL /*pbCode*/)) 5518 {5519 5532 Bs3Cg1CheckResult(pThis, bTestXcptExpected, false /*fInvalidEncodingPgFault*/, iEncoding); 5520 } 5521 else if ( !pThis->fInvalidEncoding 5522 && pThis->bAlignmentXcpt == UINT8_MAX 5523 && pThis->bValueXcpt == UINT8_MAX) 5533 else 5524 5534 { 5525 5535 Bs3TestPrintf("Bs3Cg1RunContextModifier(out): iEncoding=%u iTest=%u\n", iEncoding, pThis->iTest);
Note:
See TracChangeset
for help on using the changeset viewer.