* 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
 | |
| 	
 |