Changeset 59747 in vbox for trunk/src/VBox/Runtime/common/misc
- Timestamp:
- Feb 19, 2016 11:18:18 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 105617
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/misc/sg.cpp
r59745 r59747 407 407 } 408 408 409 409 410 RTDECL(bool) RTSgBufIsZero(PRTSGBUF pSgBuf, size_t cbCheck) 410 411 { … … 420 421 if (!cbThisCheck) 421 422 break; 422 423 /** @todo fix this after asm.h gets updated. */ 424 /* Use optimized inline assembler if possible. */ 425 if ( !(cbThisCheck % 4) 426 && cbThisCheck * 8 <= UINT32_MAX) 427 { 428 if (ASMBitFirstSet((volatile void *)pvBuf, (uint32_t)cbThisCheck * 8) != -1) 429 { 430 fIsZero = false; 431 break; 432 } 433 } 434 else 435 { 436 for (size_t i = 0; i < cbThisCheck; i++) 437 { 438 char *pbBuf = (char *)pvBuf; 439 if (*pbBuf) 440 { 441 fIsZero = false; 442 break; 443 } 444 pvBuf = pbBuf + 1; 445 } 446 447 if (!fIsZero) 448 break; 449 } 450 423 fIsZero = ASMMemIsZero(pvBuf, cbThisCheck); 424 if (!fIsZero) 425 break; 451 426 cbLeft -= cbThisCheck; 452 427 }
Note:
See TracChangeset
for help on using the changeset viewer.