i386 SSE2 Huffman: Fix pointer arithmetic issue

Splitting the pointer arithmetic in GET_SYM() into a separate add and
sub instruction was an attempt to work around an error ("invalid operand
type") that occurred when assembling the file with NASM.  However, this
created a link error on macOS ("ld: illegal text-relocation to
'_jconst_huff_encode_one_block' in
simd/CMakeFiles/simd.dir/i386/jchuff-sse2.asm.o from
'_jsimd_huff_encode_one_block_sse2' in
simd/CMakeFiles/simd.dir/i386/jchuff-sse2.asm.o for architecture i386")
and also changed the alignment of the code in ways that might have
affected the previous benchmark results (which took a great deal of time
to obtain.)  Ultimately, the path of least resistance is just to
require NASM 2.13 or later.
This commit is contained in:
DRC
2019-11-05 11:56:06 -06:00
parent bbedb4b564
commit cbf0fcc8b7
2 changed files with 2 additions and 6 deletions

View File

@@ -12,10 +12,7 @@ Build Requirements
- [NASM](http://www.nasm.us) or [YASM](http://yasm.tortall.net) - [NASM](http://www.nasm.us) or [YASM](http://yasm.tortall.net)
(if building x86 or x86-64 SIMD extensions) (if building x86 or x86-64 SIMD extensions)
* If using NASM, 2.10 or later is required. * If using NASM, 2.13 or later is required.
* If using NASM, 2.10 or later (except 2.11.08) is required for an x86-64 Mac
build (2.11.08 does not work properly with libjpeg-turbo's x86-64 SIMD code
when building macho64 objects.)
* If using YASM, 1.2.0 or later is required. * If using YASM, 1.2.0 or later is required.
* If building on macOS, NASM or YASM can be obtained from * If building on macOS, NASM or YASM can be obtained from
[MacPorts](http://www.macports.org/) or [Homebrew](http://brew.sh/). [MacPorts](http://www.macports.org/) or [Homebrew](http://brew.sh/).

View File

@@ -252,8 +252,7 @@ times 1 << 14 db 15
call %%.geteip call %%.geteip
%%.ref: %%.ref:
%4 %4
add %1, %2 add %1, %2 - %%.ref
sub %1, %%.ref
jmp short %%.done jmp short %%.done
align 32 align 32
%%.geteip: %%.geteip: