summaryrefslogtreecommitdiff
path: root/test/incbin.asm
Commit message (Collapse)AuthorAgeFilesLines
* a) Fix handling of DZ/ZWORD; b) don't crash on TIMES JMPH. Peter Anvin2017-05-011-0/+1
| | | | | | | | | | | | | | | a) Fix a number of missing instances of DZ and ZWORD. b) NASM would crash if TIMES was used on an instruction which varies in size, e.g. JMP. Fix this by moving the handling of TIMES at a higher level, so we generate the instruction "de novo" for each iteration. The exception is INCBIN, so we can avoid reading the included file over and over. c) When using the RESx instructions, just fold TIMES into the reserved space size; there is absolutely no point to iterate over it. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* incbin: if we have to fread(), try to do it only once...H. Peter Anvin2016-09-211-0/+1
| | | | | | | | | | | | | | If we can't mmap a file and instead have to fread(), if the data is small enough that we can reasonably accomodate it in a memory buffer, then just read it once. It seems rather unlikely that very large files would be used with TIMES anyway. Also note: the previous comment about nasm_file_size[_by_path]() being invoked twice was spurious; it does not actually happen. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* file: improve the file access interfaceH. Peter Anvin2016-09-211-0/+5
A number of fairly common operations are invoked way too many times, especially when using incbin. Drastically reduce the number of system calls that need to be executed, and use memory mapping to reduce unnecessary double buffering. We could improve this further by leaving files open once used; however, that might run into file count problems on some systems. Still unclear is why we seem to invoke nasm_file_size() twice per pass for incbin. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>