mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			891 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			891 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* contrib/powerpc-vsx/linux_aux.c
 | 
						|
 *
 | 
						|
 * Copyright (c) 2017 Glenn Randers-Pehrson
 | 
						|
 * Written by Vadim Barkov, 2017.
 | 
						|
 * Last changed in libpng 1.6.29 [March 16, 2017]
 | 
						|
 *
 | 
						|
 * This code is released under the libpng license.
 | 
						|
 * For conditions of distribution and use, see the disclaimer
 | 
						|
 * and license in png.h
 | 
						|
 *
 | 
						|
 * STATUS: TESTED
 | 
						|
 * BUG REPORTS: png-mng-implement@sourceforge.net
 | 
						|
 *
 | 
						|
 * png_have_vsx implemented for Linux by using the auxiliary vector mechanism.
 | 
						|
 *
 | 
						|
 * This code is strict ANSI-C and is probably moderately portable; it does
 | 
						|
 * however use <stdio.h> and it assumes that /proc/cpuinfo is never localized.
 | 
						|
 */
 | 
						|
 | 
						|
#include "sys/auxv.h"
 | 
						|
#include "png.h"
 | 
						|
 | 
						|
static int
 | 
						|
png_have_vsx(png_structp png_ptr)
 | 
						|
{
 | 
						|
 | 
						|
   const unsigned long auxv = getauxval( AT_HWCAP );
 | 
						|
 | 
						|
   PNG_UNUSED(png_ptr)
 | 
						|
 | 
						|
   if(auxv & (PPC_FEATURE_HAS_ALTIVEC|PPC_FEATURE_HAS_VSX ))
 | 
						|
      return 1;
 | 
						|
   else
 | 
						|
      return 0;
 | 
						|
}
 | 
						|
 |