* configure.host: Add support for RX architecture.
        * libc/include/machine/ieeefp.h: Likewise.
        * libc/include/machine/setjmp.h: Likewise.
        * libc/include/machine/configure.in: Likewise.
        * libc/include/machine/configure: Regenerate.
        * libc/machine/rx: New directory.
        * libc/machine/rx/*: New files to support RX architecture.
libgloss:
        * configure.in: Add support for RX sub-directory.
        * configure: Regenerate.
        * rx: New directory.
        * rx/*: New files to support RX architecture.
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			696 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			696 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
#define PROFILE_SUPPORT 1
 | 
						|
 | 
						|
#include "crt0.S"
 | 
						|
 | 
						|
	.global __mcount						
 | 
						|
__mcount:								
 | 
						|
	;; When a function is compiled for profiling, gcc creates code	
 | 
						|
	;; like this at the start of each profiled function:		
 | 
						|
	;;								
 | 
						|
	;;      .global <func_name>					
 | 
						|
	;; <func_name>:							
 | 
						|
	;;      bsr __mcount						
 | 
						|
	;;	<...function's prologue...>				
 | 
						|
	;; 	<...function's body...>					
 | 
						|
	;;								
 | 
						|
	;; We must save all of the argument registers, extract the	
 | 
						|
	;; address of <func_name>, call _mcount_internal to do the	
 | 
						|
	;; real work and then restore the argument registers before	
 | 
						|
	;; returning.							
 | 
						|
									
 | 
						|
	pushm	r1-r4							
 | 
						|
	mov.l	16[r0], r1						
 | 
						|
	bsr	__mcount_internal					
 | 
						|
	rtsd	#16, r1-r4
 | 
						|
	
 |