Changeset 46995 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jul 5, 2013 9:34:17 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 87011
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r46992 r46995 1342 1342 %else 1343 1343 mov T0_16, [A0] ; T0 = dividend 1344 mov T1 _8, A1_8 ; T1 = divisor1345 test T1_16, T1_161344 mov T1, A1 ; T1 = saved divisor (because of missing T1_8 in 32-bit) 1345 test A1_8, A1_8 1346 1346 js .divisor_negative 1347 1347 test T0_16, T0_16 … … 1351 1351 push T0 ; Start off like unsigned below. 1352 1352 shr T0_16, 7 1353 cmp T0_8, T1_81353 cmp T0_8, A1_8 1354 1354 pop T0 1355 1355 jb .div_no_overflow 1356 1356 ja .div_overflow 1357 1357 and T0_8, 0x7f ; Special case for covering (divisor - 1). 1358 cmp T0_8, T1_81358 cmp T0_8, A1_8 1359 1359 jae .div_overflow 1360 1360 jmp .div_no_overflow 1361 1361 1362 1362 .divisor_negative: 1363 neg T1_81363 neg A1_8 1364 1364 test T0_16, T0_16 1365 1365 jns .one_of_each … … 1367 1367 .both_positive: ; Same as unsigned shifted by sign indicator bit. 1368 1368 shr T0_16, 7 1369 cmp T0_8, T1_81369 cmp T0_8, A1_8 1370 1370 jae .div_overflow 1371 1371 .div_no_overflow: 1372 mov A1, T1 ; restore divisor 1372 1373 %endif 1373 1374
Note:
See TracChangeset
for help on using the changeset viewer.