|  | @@ -19,8 +19,19 @@ FILE_LICENCE ( GPL2_OR_LATER );
 | 
		
	
		
			
			| 19 | 19 |   * The implicit calls to memcpy() and memset() which gcc can generate
 | 
		
	
		
			
			| 20 | 20 |   * do not seem to have this inconsistency; -mregparm and -mrtd affect
 | 
		
	
		
			
			| 21 | 21 |   * them in the same way as any other function.
 | 
		
	
		
			
			|  | 22 | + *
 | 
		
	
		
			
			|  | 23 | + * Update (25/4/14): it appears that more recent gcc versions do allow
 | 
		
	
		
			
			|  | 24 | + * -mrtd to affect calls to the implicit arithmetic functions.  There
 | 
		
	
		
			
			|  | 25 | + * is nothing obvious in the gcc changelogs to indicate precisely when
 | 
		
	
		
			
			|  | 26 | + * this happened.  From experimentation with available gcc versions,
 | 
		
	
		
			
			|  | 27 | + * the change occurred sometime between v4.6.3 and v4.7.2.  We assume
 | 
		
	
		
			
			|  | 28 | + * that only versions up to v4.6.x require the special treatment.
 | 
		
	
		
			
			| 22 | 29 |   */
 | 
		
	
		
			
			|  | 30 | +#if ( __GNUC__ < 4 ) || ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ <= 6 ) )
 | 
		
	
		
			
			| 23 | 31 |  #define __libgcc __attribute__ (( cdecl ))
 | 
		
	
		
			
			|  | 32 | +#else
 | 
		
	
		
			
			|  | 33 | +#define __libgcc
 | 
		
	
		
			
			|  | 34 | +#endif
 | 
		
	
		
			
			| 24 | 35 |  
 | 
		
	
		
			
			| 25 | 36 |  #endif /* ASSEMBLY */
 | 
		
	
		
			
			| 26 | 37 |  
 |