No description
Find a file
Colin Ian King d6dc97dfc0 Add prefetching on strings before hashing
Turns out that the hotspots of nasm are mainly on string hashing
when accessing memory. A simple performance improvement is to
prefetch the first cacheline of a string to be hashed. Ran 50 tests
on an i9-12900 building intel-ipsec-mb that heavily uses nasm and
improved wall clock build times from 56.1 seconds to 53.2 seconds or
around 5% speed improvement.

Signed-off-by: Colin Ian King <colin.i.king@intel.com>
2025-10-03 10:31:27 -07:00
asm Support nested response files. 2025-10-03 10:31:12 -07:00
autoconf autoconf: more autoconf library macro updates 2025-09-22 17:02:58 -07:00
common treewide: replace verbose copyright headers with SPDX tags 2025-10-01 11:45:31 -07:00
config treewide: replace verbose copyright headers with SPDX tags 2025-10-01 11:45:31 -07:00
contrib contrib/MSVC6.txt: Add guide how to use nasm in MSVC6 2010-01-24 23:17:55 +03:00
disasm treewide: replace verbose copyright headers with SPDX tags 2025-10-01 11:45:31 -07:00
doc changes.src: document FLAT obj changes. 2025-10-03 10:29:08 -07:00
editors Build: update various build installation directories 2025-10-02 16:08:04 -07:00
headers Fix more license headers 2025-10-01 12:05:34 -07:00
include portability: "const macros_t" is redundant 2025-10-01 13:55:38 -07:00
macros Disable other warnings in endstruc 2025-10-03 10:30:33 -07:00
misc Move editor help files to editors/, add NASM version number 2025-10-02 13:49:43 -07:00
Mkfiles openwcom.mak: use %null instead of @rem for $(SIDE) 2025-10-03 10:23:11 -07:00
nasmlib Add prefetching on strings before hashing 2025-10-03 10:31:27 -07:00
nsis nsis: remove references to RDOFF tools 2022-11-08 18:22:25 -08:00
output elf: change form for DW_AT_frame_base to DW_form_exprloc 2025-10-03 10:30:55 -07:00
perllib Fix some typos 2022-01-09 17:34:35 +01:00
stdlib treewide: replace verbose copyright headers with SPDX tags 2025-10-01 11:45:31 -07:00
test ffmpegtest: save the results in a file 2025-09-30 15:19:56 -07:00
tools tools/release: unset ACLOCAL_PATH 2025-10-02 17:12:45 -07:00
travis add few more avx10.2 convert instructions 2025-09-30 23:29:30 +08:00
win windows host: add embedded manifest file 2024-01-29 17:19:32 -08:00
x86 Merge branch 'netwide-assembler:master' into master 2025-10-01 23:04:07 +03:00
zlib zlib: yet one more portability hack 2025-09-05 20:08:18 -07:00
.editorconfig .editorconfig: hard tabs are still 8 spaces 2024-06-10 21:12:52 -07:00
.gitattributes gitattributes: don't try to merge the version file 2020-06-30 13:48:13 -07:00
.gitignore Build: update various build installation directories 2025-10-02 16:08:04 -07:00
.travis.yml travis: Disable osx for a while 2018-10-17 21:40:14 +03:00
AUTHORS Correct name spelling and email address 2015-01-18 20:21:14 +02:00
autogen.sh autogen.sh: Use $PATH_SEPARATOR as a path separator of ACLOCAL_PATH 2025-10-03 10:29:57 -07:00
ChangeLog Fix some typos 2022-01-09 17:34:35 +01:00
CHANGES Move the revision history into the documentation 2008-07-14 02:45:57 -04:00
configure.ac Build: update various build installation directories 2025-10-02 16:08:04 -07:00
INSTALL Fix some typos 2022-01-09 17:34:35 +01:00
LICENSE treewide: replace verbose copyright headers with SPDX tags 2025-10-01 11:45:31 -07:00
Makefile.in install: add option for installing .pdf.xz; fix RPMs 2025-10-02 17:11:52 -07:00
nasm.spec.in Even more path hacks for the rpm build 2025-10-02 17:31:58 -07:00
nasm.spec.sed nasm.spec: use a sed file to insert perl dependencies 2017-04-23 18:54:23 -07:00
nasm.txt Fix some typos 2022-01-09 17:34:35 +01:00
ndisasm.txt ndisasm: man -- Add missing -p option 2013-04-20 20:18:46 +04:00
README.md doc: remove references to sourceforge 2020-07-01 21:48:44 -07:00
SubmittingPatches Add SubmittingPatches file 2010-10-03 21:02:08 +04:00
version NASM 3.00rc19 2025-10-02 17:37:09 -07:00
version.pl Move editor help files to editors/, add NASM version number 2025-10-02 13:49:43 -07:00

NASM, the Netwide Assembler

master

Many many developers all over the net respect NASM for what it is: a widespread (thus netwide), portable (thus netwide!), very flexible and mature assembler tool with support for many output formats (thus netwide!!).

Now we have good news for you: NASM is licensed under the "simplified" (2-clause) BSD license. This means its development is open to even wider society of programmers wishing to improve their lovely assembler.

Visit our nasm.us website for more details.

With best regards, the NASM crew.