diff options
Diffstat (limited to 'src/string')
| -rw-r--r-- | src/string/armel/memcpy.s | 60 | 
1 files changed, 30 insertions, 30 deletions
| diff --git a/src/string/armel/memcpy.s b/src/string/armel/memcpy.s index 9f24a4f3..f05183ad 100644 --- a/src/string/armel/memcpy.s +++ b/src/string/armel/memcpy.s @@ -73,12 +73,12 @@ memcpy:           */          movs	r12, r3, lsl #31          sub	r2, r2, r3		/* we know that r3 <= r2 because r2 >= 4 */ -        ldrmib	r3, [r1], #1 -        ldrcsb	r4, [r1], #1 -        ldrcsb	r12,[r1], #1 -        strmib	r3, [r0], #1 -        strcsb	r4, [r0], #1 -        strcsb	r12,[r0], #1 +        ldrbmi	r3, [r1], #1 +        ldrbcs	r4, [r1], #1 +        ldrbcs	r12,[r1], #1 +        strbmi	r3, [r0], #1 +        strbcs	r4, [r0], #1 +        strbcs	r12,[r0], #1  src_aligned: @@ -101,10 +101,10 @@ src_aligned:          /* conditionnaly copies 0 to 7 words (length in r3) */          movs	r12, r3, lsl #28 -        ldmcsia	r1!, {r4, r5, r6, r7}	/* 16 bytes */ -        ldmmiia	r1!, {r8, r9}			/*  8 bytes */ -        stmcsia	r0!, {r4, r5, r6, r7} -        stmmiia	r0!, {r8, r9} +        ldmiacs	r1!, {r4, r5, r6, r7}	/* 16 bytes */ +        ldmiami	r1!, {r8, r9}			/*  8 bytes */ +        stmiacs	r0!, {r4, r5, r6, r7} +        stmiami	r0!, {r8, r9}          tst    	r3, #0x4          ldrne	r10,[r1], #4			/*  4 bytes */          strne	r10,[r0], #4 @@ -171,18 +171,18 @@ less_than_32_left:          /* conditionnaly copies 0 to 31 bytes */          movs	r12, r2, lsl #28 -        ldmcsia	r1!, {r4, r5, r6, r7}	/* 16 bytes */ -        ldmmiia	r1!, {r8, r9}			/*  8 bytes */ -        stmcsia	r0!, {r4, r5, r6, r7} -        stmmiia	r0!, {r8, r9} +        ldmiacs	r1!, {r4, r5, r6, r7}	/* 16 bytes */ +        ldmiami	r1!, {r8, r9}			/*  8 bytes */ +        stmiacs	r0!, {r4, r5, r6, r7} +        stmiami	r0!, {r8, r9}          movs	r12, r2, lsl #30          ldrcs	r3, [r1], #4			/*  4 bytes */ -        ldrmih	r4, [r1], #2			/*  2 bytes */ +        ldrhmi	r4, [r1], #2			/*  2 bytes */          strcs	r3, [r0], #4 -        strmih	r4, [r0], #2 +        strhmi	r4, [r0], #2          tst    	r2, #0x1 -        ldrneb	r3, [r1]				/*  last byte  */ -        strneb	r3, [r0] +        ldrbne	r3, [r1]				/*  last byte  */ +        strbne	r3, [r0]          /* we're done! restore everything and return */  1:	ldmfd	sp!, {r5-r11} @@ -224,11 +224,11 @@ non_congruent:           * becomes aligned to 32 bits (r5 = nb of words to copy for alignment)           */          movs	r5, r5, lsl #31 -        strmib	r3, [r0], #1 +        strbmi	r3, [r0], #1          movmi	r3, r3, lsr #8 -        strcsb	r3, [r0], #1 +        strbcs	r3, [r0], #1          movcs	r3, r3, lsr #8 -        strcsb	r3, [r0], #1 +        strbcs	r3, [r0], #1          movcs	r3, r3, lsr #8          cmp	r2, #4 @@ -355,23 +355,23 @@ less_than_thirtytwo:  partial_word_tail:  	/* we have a partial word in the input buffer */  	movs	r5, lr, lsl #(31-3) -	strmib	r3, [r0], #1 +	strbmi	r3, [r0], #1          movmi	r3, r3, lsr #8 -        strcsb	r3, [r0], #1 +        strbcs	r3, [r0], #1          movcs	r3, r3, lsr #8 -        strcsb	r3, [r0], #1 +        strbcs	r3, [r0], #1          /* Refill spilled registers from the stack. Don't update sp. */          ldmfd	sp, {r5-r11}  copy_last_3_and_return:  	movs	r2, r2, lsl #31	/* copy remaining 0, 1, 2 or 3 bytes */ -        ldrmib	r2, [r1], #1 -        ldrcsb	r3, [r1], #1 -        ldrcsb	r12,[r1] -        strmib	r2, [r0], #1 -        strcsb	r3, [r0], #1 -        strcsb	r12,[r0] +        ldrbmi	r2, [r1], #1 +        ldrbcs	r3, [r1], #1 +        ldrbcs	r12,[r1] +        strbmi	r2, [r0], #1 +        strbcs	r3, [r0], #1 +        strbcs	r12,[r0]          /* we're done! restore sp and spilled registers and return */          add    	sp,  sp, #28 | 
