mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
[libpng16] Added ".align 2" to arm/filter_neon.S to support old GAS assemblers
that don't do alignment correctly.
This commit is contained in:
parent
2d24cbdd98
commit
ee16fc4a6f
7
ANNOUNCE
7
ANNOUNCE
@ -1,4 +1,4 @@
|
|||||||
Libpng 1.6.16beta01 - November 21, 2014
|
Libpng 1.6.16beta01 - November 29, 2014
|
||||||
|
|
||||||
This is not intended to be a public release. It will be replaced
|
This is not intended to be a public release. It will be replaced
|
||||||
within a few weeks by a public version or by another test version.
|
within a few weeks by a public version or by another test version.
|
||||||
@ -25,8 +25,9 @@ Other information:
|
|||||||
|
|
||||||
Changes since the last public release (1.6.15):
|
Changes since the last public release (1.6.15):
|
||||||
|
|
||||||
Version 1.6.16beta01 [November 21, 2014]
|
Version 1.6.16beta01 [November 29, 2014]
|
||||||
No changes.
|
Added ".align 2" to arm/filter_neon.S to support old GAS assemblers that
|
||||||
|
don't do alignment correctly.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
|
5
CHANGES
5
CHANGES
@ -5099,8 +5099,9 @@ Version 1.6.15rc03 [November 16, 2014]
|
|||||||
Version 1.6.15 [November 20, 2014]
|
Version 1.6.15 [November 20, 2014]
|
||||||
No changes.
|
No changes.
|
||||||
|
|
||||||
Version 1.6.16beta01 [November 21, 2014]
|
Version 1.6.16beta01 [November 29, 2014]
|
||||||
No changes.
|
Added ".align 2" to arm/filter_neon.S to support old GAS assemblers that
|
||||||
|
don't do alignment correctly.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
|
@ -130,4 +130,4 @@ png_init_filter_functions_neon(png_structp pp, unsigned int bpp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* PNG_ARM_NEON_OPT > 0 */
|
#endif /* PNG_ARM_NEON_OPT > 0 */
|
||||||
#endif /* PNG_READ_SUPPORTED */
|
#endif /* READ */
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
|
|
||||||
/* filter_neon.S - NEON optimised filter functions
|
/* filter_neon.S - NEON optimised filter functions
|
||||||
*
|
*
|
||||||
* Copyright (c) 2013 Glenn Randers-Pehrson
|
* Copyright (c) 2014 Glenn Randers-Pehrson
|
||||||
* Written by Mans Rullgard, 2011.
|
* Written by Mans Rullgard, 2011.
|
||||||
* Last changed in libpng 1.6.8 [December 19, 2013]
|
* Last changed in libpng 1.6.16 [(PENDING RELEASE)]
|
||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
* For conditions of distribution and use, see the disclaimer
|
* For conditions of distribution and use, see the disclaimer
|
||||||
* and license in png.h
|
* and license in png.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* This is required to get the symbol renames, which are #defines, and also
|
/* This is required to get the symbol renames, which are #defines, and the
|
||||||
* includes the definition (or not) of PNG_ARM_NEON_OPT and
|
* definitions (or not) of PNG_ARM_NEON_OPT and PNG_ARM_NEON_IMPLEMENTATION.
|
||||||
* PNG_ARM_NEON_IMPLEMENTATION.
|
|
||||||
*/
|
*/
|
||||||
#define PNG_VERSION_INFO_ONLY
|
#define PNG_VERSION_INFO_ONLY
|
||||||
#include "../pngpriv.h"
|
#include "../pngpriv.h"
|
||||||
@ -21,6 +20,8 @@
|
|||||||
.section .note.GNU-stack,"",%progbits /* mark stack as non-executable */
|
.section .note.GNU-stack,"",%progbits /* mark stack as non-executable */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PNG_READ_SUPPORTED
|
||||||
|
|
||||||
/* Assembler NEON support - only works for 32-bit ARM (i.e. it does not work for
|
/* Assembler NEON support - only works for 32-bit ARM (i.e. it does not work for
|
||||||
* ARM64). The code in arm/filter_neon_intrinsics.c supports ARM64, however it
|
* ARM64). The code in arm/filter_neon_intrinsics.c supports ARM64, however it
|
||||||
* only works if -mfpu=neon is specified on the GCC command line. See pngpriv.h
|
* only works if -mfpu=neon is specified on the GCC command line. See pngpriv.h
|
||||||
@ -28,7 +29,6 @@
|
|||||||
*/
|
*/
|
||||||
#if PNG_ARM_NEON_IMPLEMENTATION == 2 /* hand-coded assembler */
|
#if PNG_ARM_NEON_IMPLEMENTATION == 2 /* hand-coded assembler */
|
||||||
|
|
||||||
#ifdef PNG_READ_SUPPORTED
|
|
||||||
#if PNG_ARM_NEON_OPT > 0
|
#if PNG_ARM_NEON_OPT > 0
|
||||||
|
|
||||||
#ifdef __ELF__
|
#ifdef __ELF__
|
||||||
@ -47,6 +47,13 @@ ELF .size \name, . - \name
|
|||||||
.purgem endfunc
|
.purgem endfunc
|
||||||
.endm
|
.endm
|
||||||
.text
|
.text
|
||||||
|
|
||||||
|
/* Explicitly specifying alignment here because some versions of
|
||||||
|
* GAS don't align code correctly. This is harmless in correctly
|
||||||
|
* written versions of GAS.
|
||||||
|
*/
|
||||||
|
.align 2
|
||||||
|
|
||||||
.if \export
|
.if \export
|
||||||
.global \name
|
.global \name
|
||||||
.endif
|
.endif
|
||||||
@ -242,5 +249,5 @@ func png_read_filter_row_paeth3_neon, export=1
|
|||||||
pop {r4,pc}
|
pop {r4,pc}
|
||||||
endfunc
|
endfunc
|
||||||
#endif /* PNG_ARM_NEON_OPT > 0 */
|
#endif /* PNG_ARM_NEON_OPT > 0 */
|
||||||
#endif /* PNG_READ_SUPPORTED */
|
|
||||||
#endif /* PNG_ARM_NEON_IMPLEMENTATION == 2 (assembler) */
|
#endif /* PNG_ARM_NEON_IMPLEMENTATION == 2 (assembler) */
|
||||||
|
#endif /* READ */
|
||||||
|
@ -368,5 +368,5 @@ png_read_filter_row_paeth4_neon(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif /* PNG_ARM_NEON_OPT > 0 */
|
#endif /* PNG_ARM_NEON_OPT > 0 */
|
||||||
#endif /* PNG_READ_SUPPORTED */
|
#endif /* READ */
|
||||||
#endif /* PNG_ARM_NEON_IMPLEMENTATION == 1 (intrinsics) */
|
#endif /* PNG_ARM_NEON_IMPLEMENTATION == 1 (intrinsics) */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user