123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- OPERATING SYSTEM SPECIFIC ARM NEON DETECTION
- --------------------------------------------
- Detection of the ability to execute ARM NEON on an ARM processor requires
- operating system support. (The information is not available in user mode.)
- HOW TO USE THIS
- ---------------
- This directory contains C code fragments that can be included in arm/arm_init.c
- by setting the macro PNG_ARM_NEON_FILE to the file name in "" or <> at build
- time. This setting is not recorded in pnglibconf.h and can be changed simply by
- rebuilding arm/arm_init.o with the required macro definition.
- For any of this code to be used the ARM NEON code must be enabled and run time
- checks must be supported. I.e.:
- #if PNG_ARM_NEON_OPT > 0
- #ifdef PNG_ARM_NEON_CHECK_SUPPORTED
- This is done in a 'configure' build by passing configure the argument:
- --enable-arm-neon=check
- Apart from the basic Linux implementation in contrib/arm-neon/linux.c this code
- is unsupported. That means that it is not even compiled on a regular basis and
- may be broken in any given minor release.
- FILE FORMAT
- -----------
- Each file documents its testing status as of the last time it was tested (which
- may have been a long time ago):
- STATUS: one of:
- SUPPORTED: This indicates that the file is included in the regularly
- performed test builds and bugs are fixed when discovered.
- COMPILED: This indicates that the code did compile at least once. See the
- more detailed description for the extent to which the result was
- successful.
- TESTED: This means the code was fully compiled into the libpng test programs
- and these were run at least once.
- BUG REPORTS: an email address to which to send reports of problems
- The file is a fragment of C code. It should not define any 'extern' symbols;
- everything should be static. It must define the function:
- static int png_have_neon(png_structp png_ptr);
- That function must return 1 if ARM NEON instructions are supported, 0 if not.
- It must not execute png_error unless it detects a bug. A png_error will prevent
- the reading of the PNG and in the future, writing too.
- BUG REPORTS
- -----------
- If you mail a bug report for any file that is not SUPPORTED there may only be
- limited response. Consider fixing it and sending a patch to fix the problem -
- this is more likely to result in action.
- CONTRIBUTIONS
- -------------
- You may send contributions of new implementations to
- [email protected]. Please write code in strict C90 C where
- possible. Obviously OS dependencies are to be expected. If you submit code you
- must have the authors permission and it must have a license that is acceptable
- to the current maintainer; in particular that license must permit modification
- and redistribution.
- Please try to make the contribution a single file and give the file a clear and
- unambiguous name that identifies the target OS. If multiple files really are
- required put them all in a sub-directory.
- You must also be prepared to handle bug reports from users of the code, either
- by joining the png-mng-implement mailing list or by providing an email for the
- "BUG REPORTS" entry or both. Please make sure that the header of the file
- contains the STATUS and BUG REPORTS fields as above.
- Please list the OS requirements as precisely as possible. Ideally you should
- also list the environment in which the code has been tested and certainly list
- any environments where you suspect it might not work.
|