wutdevoptab: check size of a read/write before checking the buffer alignment to reduce the read/write calls #273
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the size is < 0x40 we need to use the aligned buffer anyway, so we check this first to avoid splitting the call up into multiple calls.
Example:
With the previous implementation writing 26 bytes from buffer 0x10000038, will result two write calls.
First call writes 8 bytes (buffer not aligned =>
MIN(size, 0x40 - ((uintptr_t) ptr & 0x3F)
), the other one the remaining 18 bytes (buffer is now aligned, but size is now < 0x40).With the new implementation the same operation (write 26 bytes from 0x10000038) would just result in one single 26 bytes (because
size < 0x40
is checked first) call.