- Timestamp:
- Feb 14, 2024 3:21:40 PM (8 months ago)
- File:
-
- 1 edited
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r103279 r103361 17579 17579 * Valid/Invalid override of comparisons (Table 4-7 from 4.1.6 of SDM). 17580 17580 */ 17581 static const bool g_afCmpOverride[4][ 3] =17582 { 17583 /* xmm1 AND xmm2/m128 invalid xmm1 invalid, xmm2/m128 valid xmm1 valid, xmm2/m128 invalid*/17584 { false, false,false }, /* Imm8[3:2] = 00b (equal any) */17585 { false, false,false }, /* Imm8[3:2] = 01b (ranges) */17586 { true, false,false }, /* Imm8[3:2] = 10b (equal each) */17587 { true, true,false }, /* Imm8[3:2] = 11b (equal ordered) */17581 static const bool g_afCmpOverride[4][4] = 17582 { 17583 /* xmm1 AND xmm2/m128 invalid, xmm1 invalid BUT xmm2/m128 valid, xmm1 valid BUT xmm2/m128 invalid, unused dummy/padding for parfait */ 17584 { false, false, false, false }, /* Imm8[3:2] = 00b (equal any) */ 17585 { false, false, false, false }, /* Imm8[3:2] = 01b (ranges) */ 17586 { true, false, false, false }, /* Imm8[3:2] = 10b (equal each) */ 17587 { true, true, false, false }, /* Imm8[3:2] = 11b (equal ordered) */ 17588 17588 }; 17589 17589 … … 17593 17593 return fCmpRes; 17594 17594 17595 uint8_t bSrc1Valid = fSrc1Valid ? 2 : 0;17596 uint8_t bSrc2Valid = fSrc2Valid ? 1 : 0;17595 uint8_t const bSrc1Valid = fSrc1Valid ? 2 : 0; 17596 uint8_t const bSrc2Valid = fSrc2Valid ? 1 : 0; 17597 17597 return g_afCmpOverride[bAggOp][bSrc1Valid + bSrc2Valid]; 17598 17598 }
Note:
See TracChangeset
for help on using the changeset viewer.

