freebsd-dev/sys/amd64
Mateusz Guzik f0ddecd745 amd64: revamp memcmp
Borrow the trick from memset and memmove and use the scale/index/base addressing
to avoid branches.

If a mismatch is found, the routine has to calculate the difference. Make sure
there is always up to 8 bytes to inspect. This replaces the previous loop which
would operate over up to 16 bytes with an unrolled list of 8 tests.

Speed varies a lot, but this is a net win over the previous routine with probably
a lot more to gain.

Validated with glibc test suite.
2020-01-28 17:48:17 +00:00
..
acpica Merge ACPICA 20190329. 2019-03-29 20:21:28 +00:00
amd64 amd64: revamp memcmp 2020-01-28 17:48:17 +00:00
cloudabi32 Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
cloudabi64 Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
conf Remove the trm(4) driver 2019-11-28 02:32:17 +00:00
ia32 Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
include bhyve: terminate waiting loops if thread suspension is requested. 2020-01-02 22:37:04 +00:00
linux sysent targets: further cleanup and deduplication 2020-01-18 20:37:45 +00:00
linux32 Regen. 2020-01-21 17:28:36 +00:00
pci pci_cfgreg.c: Use io port config access for early boot time. 2019-04-09 18:07:17 +00:00
sgx Fix a few places that free a page from an object without busy held. This is 2019-12-02 22:42:05 +00:00
vmm bhyve: terminate waiting loops if thread suspension is requested. 2020-01-02 22:37:04 +00:00
Makefile Bring the tags and links entries for amd64 up to date. 2015-10-27 22:59:24 +00:00