arm: Fix addressing in optpld macro
In patch b219285f87 you have a syntax
error in the PLD instruction.  The syntax for the pld argument should be
in square brackets as it's a memory address like so: pld [r1].  With
your patch the newlib build fails for armv7-a targets.  This patch fixes
the build failures.
Tested by making sure the newlib build completes successfully.
2016-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    * libc/machine/arm/strcpy.c (strcpy): Fix PLD assembly syntax.
    * libc/machine/arm/strlen-stub.c (strlen): Likewise.
			
			
This commit is contained in:
		
				
					committed by
					
						 Corinna Vinschen
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							3ebc26958e
						
					
				
				
					commit
					52a6da816f
				
			| @@ -45,7 +45,7 @@ strcpy (char* dst, const char* src) | ||||
| #if !(defined(__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ | ||||
|       (defined (__thumb__) && !defined (__thumb2__))) | ||||
| #ifdef _ISA_ARM_7 | ||||
|        "pld	r1\n\t" | ||||
|        "pld	[r1]\n\t" | ||||
| #endif | ||||
|        "eor	r2, r0, r1\n\t" | ||||
|        "mov	ip, r0\n\t" | ||||
| @@ -78,7 +78,7 @@ strcpy (char* dst, const char* src) | ||||
|        ".p2align 2\n" | ||||
|   "2:\n\t" | ||||
| #ifdef _ISA_ARM_7 | ||||
|        "pld	r1, #8\n\t" | ||||
|        "pld	[r1, #8]\n\t" | ||||
| #endif | ||||
|        "ldr	r4, [r1], #4\n\t" | ||||
|        "sub	r2, r3, "magic1(r5)"\n\t" | ||||
|   | ||||
| @@ -59,7 +59,7 @@ strlen (const char* str) | ||||
|        "addr .req r1\n\t" | ||||
|  | ||||
| #ifdef _ISA_ARM_7 | ||||
|        "pld r0\n\t" | ||||
|        "pld [r0]\n\t" | ||||
| #endif | ||||
|        /* Word-align address */ | ||||
|        "bic	addr, r0, #3\n\t" | ||||
| @@ -116,7 +116,7 @@ strlen (const char* str) | ||||
|        /* and 4 more bytes  */ | ||||
|        "addeq	len, len, #4\n\t" | ||||
| 	/* Unroll the loop a bit.  */ | ||||
|        "pld	addr, #8\n\t" | ||||
|        "pld	[addr, #8]\n\t" | ||||
|        /*  test (data - 0x01010101)  */ | ||||
|        "ittt	eq\n\t" | ||||
|        "subeq	r2, data, ip\n\t" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user