Changeset 103264 in vbox for trunk/src/VBox
- Timestamp:
- Feb 8, 2024 5:20:09 AM (12 months ago)
- svn:sync-xref-src-repo-rev:
- 161555
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r103186 r103264 10141 10141 RTUINT64U uSrc2 = { *puSrc }; 10142 10142 RTUINT64U uDst; 10143 10144 if (uSrc2.au64[0] <= 15) 10145 { 10146 uDst.ai16[0] = uSrc1.ai16[0] >> uSrc2.au8[0]; 10147 uDst.ai16[1] = uSrc1.ai16[1] >> uSrc2.au8[0]; 10148 uDst.ai16[2] = uSrc1.ai16[2] >> uSrc2.au8[0]; 10149 uDst.ai16[3] = uSrc1.ai16[3] >> uSrc2.au8[0]; 10150 } 10151 else 10152 { 10153 uDst.au64[0] = 0; 10154 } 10143 uint8_t uShift; 10144 10145 uShift = RT_MIN(15, uSrc2.au64[0]); 10146 10147 uDst.ai16[0] = uSrc1.ai16[0] >> uShift; 10148 uDst.ai16[1] = uSrc1.ai16[1] >> uShift; 10149 uDst.ai16[2] = uSrc1.ai16[2] >> uShift; 10150 uDst.ai16[3] = uSrc1.ai16[3] >> uShift; 10151 10155 10152 *puDst = uDst.u; 10156 10153 } … … 10162 10159 RTUINT64U uDst; 10163 10160 10164 if (uShift <= 15) 10165 { 10166 uDst.ai16[0] = uSrc1.ai16[0] >> uShift; 10167 uDst.ai16[1] = uSrc1.ai16[1] >> uShift; 10168 uDst.ai16[2] = uSrc1.ai16[2] >> uShift; 10169 uDst.ai16[3] = uSrc1.ai16[3] >> uShift; 10170 } 10171 else 10172 { 10173 uDst.au64[0] = 0; 10174 } 10161 uShift = RT_MIN(15, uShift); 10162 10163 uDst.ai16[0] = uSrc1.ai16[0] >> uShift; 10164 uDst.ai16[1] = uSrc1.ai16[1] >> uShift; 10165 uDst.ai16[2] = uSrc1.ai16[2] >> uShift; 10166 uDst.ai16[3] = uSrc1.ai16[3] >> uShift; 10167 10175 10168 *puDst = uDst.u; 10176 10169 } … … 10180 10173 { 10181 10174 RTUINT128U uSrc1 = *puDst; 10182 10183 if (puSrc->au64[0] <= 15) 10184 { 10185 puDst->ai16[0] = uSrc1.ai16[0] >> puSrc->au8[0]; 10186 puDst->ai16[1] = uSrc1.ai16[1] >> puSrc->au8[0]; 10187 puDst->ai16[2] = uSrc1.ai16[2] >> puSrc->au8[0]; 10188 puDst->ai16[3] = uSrc1.ai16[3] >> puSrc->au8[0]; 10189 puDst->ai16[4] = uSrc1.ai16[4] >> puSrc->au8[0]; 10190 puDst->ai16[5] = uSrc1.ai16[5] >> puSrc->au8[0]; 10191 puDst->ai16[6] = uSrc1.ai16[6] >> puSrc->au8[0]; 10192 puDst->ai16[7] = uSrc1.ai16[7] >> puSrc->au8[0]; 10193 } 10194 else 10195 { 10196 puDst->au64[0] = 0; 10197 puDst->au64[1] = 0; 10198 } 10175 uint8_t uShift; 10176 10177 uShift = RT_MIN(15, puSrc->au64[0]); 10178 10179 puDst->ai16[0] = uSrc1.ai16[0] >> uShift; 10180 puDst->ai16[1] = uSrc1.ai16[1] >> uShift; 10181 puDst->ai16[2] = uSrc1.ai16[2] >> uShift; 10182 puDst->ai16[3] = uSrc1.ai16[3] >> uShift; 10183 puDst->ai16[4] = uSrc1.ai16[4] >> uShift; 10184 puDst->ai16[5] = uSrc1.ai16[5] >> uShift; 10185 puDst->ai16[6] = uSrc1.ai16[6] >> uShift; 10186 puDst->ai16[7] = uSrc1.ai16[7] >> uShift; 10199 10187 } 10200 10188 … … 10203 10191 RTUINT128U uSrc1 = *puDst; 10204 10192 10205 if (uShift <= 15) 10206 { 10207 puDst->ai16[0] = uSrc1.ai16[0] >> uShift; 10208 puDst->ai16[1] = uSrc1.ai16[1] >> uShift; 10209 puDst->ai16[2] = uSrc1.ai16[2] >> uShift; 10210 puDst->ai16[3] = uSrc1.ai16[3] >> uShift; 10211 puDst->ai16[4] = uSrc1.ai16[4] >> uShift; 10212 puDst->ai16[5] = uSrc1.ai16[5] >> uShift; 10213 puDst->ai16[6] = uSrc1.ai16[6] >> uShift; 10214 puDst->ai16[7] = uSrc1.ai16[7] >> uShift; 10215 } 10216 else 10217 { 10218 puDst->au64[0] = 0; 10219 puDst->au64[1] = 0; 10220 } 10193 uShift = RT_MIN(15, uShift); 10194 10195 puDst->ai16[0] = uSrc1.ai16[0] >> uShift; 10196 puDst->ai16[1] = uSrc1.ai16[1] >> uShift; 10197 puDst->ai16[2] = uSrc1.ai16[2] >> uShift; 10198 puDst->ai16[3] = uSrc1.ai16[3] >> uShift; 10199 puDst->ai16[4] = uSrc1.ai16[4] >> uShift; 10200 puDst->ai16[5] = uSrc1.ai16[5] >> uShift; 10201 puDst->ai16[6] = uSrc1.ai16[6] >> uShift; 10202 puDst->ai16[7] = uSrc1.ai16[7] >> uShift; 10221 10203 } 10222 10204 … … 10481 10463 RTUINT64U uSrc2 = { *puSrc }; 10482 10464 RTUINT64U uDst; 10483 10484 if (uSrc2.au64[0] <= 31) 10485 { 10486 uDst.ai32[0] = uSrc1.ai32[0] >> uSrc2.au8[0]; 10487 uDst.ai32[1] = uSrc1.ai32[1] >> uSrc2.au8[0]; 10488 } 10489 else 10490 { 10491 uDst.au64[0] = 0; 10492 } 10465 uint8_t uShift; 10466 10467 uShift = RT_MIN(31, uSrc2.au64[0]); 10468 10469 uDst.ai32[0] = uSrc1.ai32[0] >> uShift; 10470 uDst.ai32[1] = uSrc1.ai32[1] >> uShift; 10471 10493 10472 *puDst = uDst.u; 10494 10473 } … … 10500 10479 RTUINT64U uDst; 10501 10480 10502 if (uShift <= 31) 10503 { 10504 uDst.ai32[0] = uSrc1.ai32[0] >> uShift; 10505 uDst.ai32[1] = uSrc1.ai32[1] >> uShift; 10506 } 10507 else 10508 { 10509 uDst.au64[0] = 0; 10510 } 10481 uShift = RT_MIN(31, uShift); 10482 10483 uDst.ai32[0] = uSrc1.ai32[0] >> uShift; 10484 uDst.ai32[1] = uSrc1.ai32[1] >> uShift; 10485 10511 10486 *puDst = uDst.u; 10512 10487 } … … 10516 10491 { 10517 10492 RTUINT128U uSrc1 = *puDst; 10518 10519 if (puSrc->au64[0] <= 31) 10520 { 10521 puDst->ai32[0] = uSrc1.ai32[0] >> puSrc->au8[0]; 10522 puDst->ai32[1] = uSrc1.ai32[1] >> puSrc->au8[0]; 10523 puDst->ai32[2] = uSrc1.ai32[2] >> puSrc->au8[0]; 10524 puDst->ai32[3] = uSrc1.ai32[3] >> puSrc->au8[0]; 10525 } 10526 else 10527 { 10528 puDst->au64[0] = 0; 10529 puDst->au64[1] = 0; 10530 } 10493 uint8_t uShift; 10494 10495 uShift = RT_MIN(31, puSrc->au64[0]); 10496 10497 puDst->ai32[0] = uSrc1.ai32[0] >> uShift; 10498 puDst->ai32[1] = uSrc1.ai32[1] >> uShift; 10499 puDst->ai32[2] = uSrc1.ai32[2] >> uShift; 10500 puDst->ai32[3] = uSrc1.ai32[3] >> uShift; 10531 10501 } 10532 10502 … … 10535 10505 RTUINT128U uSrc1 = *puDst; 10536 10506 10537 if (uShift <= 31) 10538 { 10539 puDst->ai32[0] = uSrc1.ai32[0] >> uShift; 10540 puDst->ai32[1] = uSrc1.ai32[1] >> uShift; 10541 puDst->ai32[2] = uSrc1.ai32[2] >> uShift; 10542 puDst->ai32[3] = uSrc1.ai32[3] >> uShift; 10543 } 10544 else 10545 { 10546 puDst->au64[0] = 0; 10547 puDst->au64[1] = 0; 10548 } 10507 uShift = RT_MIN(31, uShift); 10508 10509 puDst->ai32[0] = uSrc1.ai32[0] >> uShift; 10510 puDst->ai32[1] = uSrc1.ai32[1] >> uShift; 10511 puDst->ai32[2] = uSrc1.ai32[2] >> uShift; 10512 puDst->ai32[3] = uSrc1.ai32[3] >> uShift; 10549 10513 } 10550 10514
Note:
See TracChangeset
for help on using the changeset viewer.