summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-11-06 16:22:29 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-11-06 16:22:30 +0000
commit3ed86e4e98dfe1b05c9a03aa2aee42c145a018c3 (patch)
treeff08a90875aae2fc78acc5384b742764787487c3
parenta710c50023cd343d1cf765069426f678cee19eb7 (diff)
parent943826e5b05bc5a41603398193a610cb876c15f3 (diff)
downloadart-3ed86e4e98dfe1b05c9a03aa2aee42c145a018c3.tar.gz
art-3ed86e4e98dfe1b05c9a03aa2aee42c145a018c3.tar.bz2
art-3ed86e4e98dfe1b05c9a03aa2aee42c145a018c3.zip
Merge "ART: Fix warnings in memcmp16 for arm32"
-rw-r--r--runtime/arch/arm/memcmp16_arm.S45
1 files changed, 27 insertions, 18 deletions
diff --git a/runtime/arch/arm/memcmp16_arm.S b/runtime/arch/arm/memcmp16_arm.S
index 37621946ef..b623a2a2cb 100644
--- a/runtime/arch/arm/memcmp16_arm.S
+++ b/runtime/arch/arm/memcmp16_arm.S
@@ -65,7 +65,7 @@ ARM_ENTRY __memcmp16
/* save registers */
-0: stmfd sp!, {r4, lr}
+0: push {r4, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset lr, 4
@@ -79,7 +79,7 @@ ARM_ENTRY __memcmp16
sub r2, r2, #1
subs r0, r0, ip
/* restore registers and return */
- ldmnefd sp!, {r4, lr}
+ popne {r4, lr}
bxne lr
@@ -110,25 +110,25 @@ ARM_ENTRY __memcmp16
eors r0, r0, ip
ldreq r0, [r3], #4
ldreq ip, [r1, #4]!
- eoreqs r0, r0, lr
+ eorseq r0, r0, lr
ldreq r0, [r3], #4
ldreq lr, [r1, #4]!
- eoreqs r0, r0, ip
+ eorseq r0, r0, ip
ldreq r0, [r3], #4
ldreq ip, [r1, #4]!
- eoreqs r0, r0, lr
+ eorseq r0, r0, lr
ldreq r0, [r3], #4
ldreq lr, [r1, #4]!
- eoreqs r0, r0, ip
+ eorseq r0, r0, ip
ldreq r0, [r3], #4
ldreq ip, [r1, #4]!
- eoreqs r0, r0, lr
+ eorseq r0, r0, lr
ldreq r0, [r3], #4
ldreq lr, [r1, #4]!
- eoreqs r0, r0, ip
+ eorseq r0, r0, ip
ldreq r0, [r3], #4
ldreq ip, [r1, #4]!
- eoreqs r0, r0, lr
+ eorseq r0, r0, lr
bne 2f
subs r2, r2, #16
bhs 0b
@@ -150,18 +150,24 @@ ARM_ENTRY __memcmp16
bne 8f
/* restore registers and return */
mov r0, #0
- ldmfd sp!, {r4, lr}
+ pop {r4, lr}
+ .cfi_restore r4
+ .cfi_restore lr
+ .cfi_adjust_cfa_offset -8
bx lr
2: /* the last 2 words are different, restart them */
ldrh r0, [r3, #-4]
ldrh ip, [r1, #-4]
subs r0, r0, ip
- ldreqh r0, [r3, #-2]
- ldreqh ip, [r1, #-2]
- subeqs r0, r0, ip
+ ldrheq r0, [r3, #-2]
+ ldrheq ip, [r1, #-2]
+ subseq r0, r0, ip
/* restore registers and return */
- ldmfd sp!, {r4, lr}
+ pop {r4, lr}
+ .cfi_restore r4
+ .cfi_restore lr
+ .cfi_adjust_cfa_offset -8
bx lr
/* process the last few words */
@@ -173,7 +179,10 @@ ARM_ENTRY __memcmp16
bne 8b
9: /* restore registers and return */
- ldmfd sp!, {r4, lr}
+ pop {r4, lr}
+ .cfi_restore r4
+ .cfi_restore lr
+ .cfi_adjust_cfa_offset -8
bx lr
@@ -196,17 +205,17 @@ ARM_ENTRY __memcmp16
ldreq lr, [r1], #4
ldreq r0, [r3], #4
orreq ip, ip, lr, lsl #16
- eoreqs r0, r0, ip
+ eorseq r0, r0, ip
moveq ip, lr, lsr #16
ldreq lr, [r1], #4
ldreq r0, [r3], #4
orreq ip, ip, lr, lsl #16
- eoreqs r0, r0, ip
+ eorseq r0, r0, ip
moveq ip, lr, lsr #16
ldreq lr, [r1], #4
ldreq r0, [r3], #4
orreq ip, ip, lr, lsl #16
- eoreqs r0, r0, ip
+ eorseq r0, r0, ip
bne 7f
subs r2, r2, #8
bhs 6b