qemu-patch-raspberry4/util
Peter Lieven 41a259bd2b cutils: add a function to find non-zero content in a buffer
this adds buffer_find_nonzero_offset() which is a SSE2/Altivec
optimized function that searches for non-zero content in a
buffer.

the function starts full unrolling only after the first few chunks have
been checked one by one. analyzing real memory page data has revealed
that non-zero pages are non-zero within the first 256-512 bits in
most cases. as this function is also heavily used to check for zero memory
pages this tweak has been made to avoid the high setup costs of the fully
unrolled check for non-zero pages.

due to the optimizations used in the function there are restrictions
on buffer address and search length. the function
can_use_buffer_find_nonzero_content() can be used to check if
the function can be used safely.

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2013-03-26 13:32:28 +01:00
..
acl.c acl: Free memory allocated with g_malloc() with g_free() 2013-01-15 18:25:41 -06:00
aes.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
bitmap.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
bitops.c bitops: Replace bitops_ctol with ctzl 2013-02-16 11:12:45 +00:00
cache-utils.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
compatfd.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
cutils.c cutils: add a function to find non-zero content in a buffer 2013-03-26 13:32:28 +01:00
envlist.c util: Fix compilation of envlist.c for MinGW 2013-02-02 20:13:19 +00:00
error.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
event_notifier-posix.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
event_notifier-win32.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
fifo8.c hw: move fifo.[ch] to libqemuutil 2013-03-01 13:53:10 +01:00
hbitmap.c hbitmap: Use non-bitops ctzl 2013-02-16 11:11:34 +00:00
hexdump.c iov: Factor out hexdumper 2013-03-15 16:41:58 +00:00
host-utils.c host-utils: Improve mulu64 and muls64 2013-02-17 14:28:58 +00:00
iov.c iov: Factor out hexdumper 2013-03-15 16:41:58 +00:00
Makefile.objs iov: Factor out hexdumper 2013-03-15 16:41:58 +00:00
module.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
notify.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
osdep.c osdep: replace setsockopt by qemu_setsockopt 2013-03-08 10:22:14 +01:00
oslib-posix.c oslib-posix: Align to permit transparent hugepages on ARM Linux 2013-03-05 00:34:40 +00:00
oslib-win32.c w32: Make qemu_vfree() accept NULL like the POSIX implementation 2013-01-15 16:46:50 +01:00
path.c Replace non-portable asprintf by g_strdup_printf 2013-01-19 10:24:43 +00:00
qemu-config.c hw: move qdev-monitor.o to toplevel directory 2013-03-01 13:54:10 +01:00
qemu-error.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
qemu-option.c qemu-option: Add qemu_opts_absorb_qdict() 2013-03-15 16:07:49 +01:00
qemu-progress.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
qemu-sockets.c Merge remote-tracking branch 'kwolf/for-anthony' into staging 2013-03-22 13:08:01 -05:00
qemu-thread-posix.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
qemu-thread-win32.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
qemu-timer-common.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
uri.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00