freebsd-dev/sys/conf
Conrad Meyer 6be2ff7d3e calculate_crc32c: Add SSE4.2 implementation on x86
Derived from an implementation by Mark Adler.

The fast loop performs three simultaneous CRCs over subsets of the data
before composing them.  This takes advantage of certain properties of
the CRC32 implementation in Intel hardware.  (The CRC instruction takes 1
cycle but has 2-3 cycles of latency.)

The CRC32 instruction does not manipulate FPU state.

i386 does not have the crc32q instruction, so avoid it there.  Otherwise
the implementation is identical to amd64.

Add basic userland tests to verify correctness on a variety of inputs.

PR:		216467
Reported by:	Ben RUBSON <ben.rubson at gmail.com>
Reviewed by:	kib@, markj@ (earlier version)
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D9342
2017-01-31 03:26:32 +00:00
..
config.mk Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
dtb.mk Honor LINKS=x y in dtb modules. We need this for compatibility links 2017-01-28 05:07:53 +00:00
files Remove non-existent ct(4) dependency for scsi_low.c 2017-01-29 00:12:06 +00:00
files.amd64 calculate_crc32c: Add SSE4.2 implementation on x86 2017-01-31 03:26:32 +00:00
files.arm Split the DesignWare HDMI-specific code from imx6_hdmi.c into a separate 2016-12-20 01:34:29 +00:00
files.arm64 Add an ACPI attachment to the existing ahci_generic driver. This is used 2017-01-10 10:56:33 +00:00
files.i386 calculate_crc32c: Add SSE4.2 implementation on x86 2017-01-31 03:26:32 +00:00
files.mips Restore status quo: mips64 does not need subr_sfbuf.c 2016-12-30 17:12:41 +00:00
files.powerpc Merge i.MX and PowerPC SDHCI drivers 2016-11-02 00:57:04 +00:00
files.riscv o Remove operation in machine mode. 2016-08-10 12:41:36 +00:00
files.sparc64 simplify compile-time default keyboard map generation 2016-03-28 19:51:45 +00:00
kern.mk Update CFLAGS for clang compatibility 2017-01-31 01:55:29 +00:00
kern.opts.mk Implement kernel support for hardware rate limited sockets. 2017-01-18 13:31:17 +00:00
kern.post.mk Use ${.OBJDIR} to refer to the kernel build object dir, instead of trying 2016-12-22 21:11:42 +00:00
kern.pre.mk Don't compute MPATH during install. 2017-01-17 21:12:21 +00:00
kmod_syms.awk
kmod.mk Always pass -m to ld for converting binary files to kernel ELF objects 2016-09-20 17:07:14 +00:00
ldscript.amd64 Introduce __read_mostly and __exclusive_cache_line macros. 2017-01-27 14:53:09 +00:00
ldscript.arm remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.arm64 Explicitly include all .rodata.* sections in the kernel .rodata. This 2016-09-03 17:23:24 +00:00
ldscript.i386 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.cfe remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.mips64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.octeon1 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpc remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpc64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpcspe Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
ldscript.riscv o Remove operation in machine mode. 2016-08-10 12:41:36 +00:00
ldscript.sparc64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
Makefile.amd64 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.arm Use MACHINE_ARCH rather than TARGET_ARCH which has no meaning outside 2016-10-20 20:12:34 +00:00
Makefile.arm64 Build changes that allow the modules on arm64. 2015-10-08 17:42:08 +00:00
Makefile.i386 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.mips Compile trampoline with soft-float on MIPS, to match the rest of the kernel 2016-11-16 03:24:20 +00:00
Makefile.powerpc Don't pass -Wa,-many through clang, the integrated as doesn't support it. 2017-01-22 06:00:05 +00:00
Makefile.riscv Set dependencies for genassym.c. 2016-05-24 16:30:05 +00:00
Makefile.sparc64 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
makeLINT.mk Migrate e1000 to the IFLIB framework: 2017-01-10 03:23:22 +00:00
makeLINT.sed
newvers.sh newvers.sh: consider as modified SVN mixed revision and other cases 2016-12-19 17:31:34 +00:00
NOTES Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
options Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
options.amd64 Add kernel interfaces to call EFI Runtime Services. 2016-09-21 11:31:58 +00:00
options.arm Allwinner: Add A33 support 2017-01-04 03:35:39 +00:00
options.arm64 Make BRCM2837 port conform FreeBSD/ARM64 guidelines 2016-10-14 22:23:03 +00:00
options.i386 hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus 2016-04-15 02:20:18 +00:00
options.mips Support mips[*]hf variants in config files 2016-12-30 00:34:52 +00:00
options.powerpc Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
options.riscv Add full softfloat and hardfloat support for RISC-V. 2016-11-16 15:21:32 +00:00
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA 2014-02-16 12:22:43 +00:00
WITHOUT_SOURCELESS_UCODE rtwn(4), urtwn(4): merge common code, add support for 11ac devices. 2016-10-17 20:38:24 +00:00