For the RX port, avoid using string instructions when __RX_DISALLOW_STRING_INSNS__ is defined.
* rx/crt0.S (_start): If string instructions are not allowed, avoid using SMOVF. * libc/machine/rx/memchr.S: Add non-string insn using version. * libc/machine/rx/memcpy.S: Likewise. * libc/machine/rx/memmove.S: Likewise. * libc/machine/rx/mempcpy.S: Likewise. * libc/machine/rx/strcat.S: Likewise. * libc/machine/rx/strcmp.S: Likewise. * libc/machine/rx/strcpy.S: Likewise. * libc/machine/rx/strlen.S: Likewise. * libc/machine/rx/strncat.S: Likewise. * libc/machine/rx/strncmp.S: Likewise. * libc/machine/rx/strncpy.S: Likewise.
This commit is contained in:
		
				
					committed by
					
						
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							45d0b17928
						
					
				
				
					commit
					cd0d459135
				
			@@ -120,6 +120,11 @@ END_RELOC_NUMBERS (R_RX_max)
 | 
			
		||||
#define E_FLAG_RX_PID			(1 << 2) /* Unofficial - DJ */
 | 
			
		||||
#define E_FLAG_RX_ABI			(1 << 3) /* Binary passes stacked arguments using natural alignment.  Unofficial - NC.  */
 | 
			
		||||
 | 
			
		||||
#define E_FLAG_RX_SINSNS_SET		(1 << 6) /* Set if bit-5 is significant.  */
 | 
			
		||||
#define E_FLAG_RX_SINSNS_YES		(1 << 7) /* Set if string instructions are used in the binary.  */
 | 
			
		||||
#define E_FLAG_RX_SINSNS_NO		0        /* Bit-5 if this binary must not be linked with a string instruction using binary.  */
 | 
			
		||||
#define E_FLAG_RX_SINSNS_MASK		(3 << 6) /* Mask of bits used to determine string instruction use.  */
 | 
			
		||||
 | 
			
		||||
/* These define the addend field of R_RX_RH_RELAX relocations.  */
 | 
			
		||||
#define	RX_RELAXA_IMM6	0x00000010	/* Imm8/16/24/32 at bit offset 6.  */
 | 
			
		||||
#define	RX_RELAXA_IMM12	0x00000020	/* Imm8/16/24/32 at bit offset 12.  */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user