aboutsummaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-01-07 14:33:55 -0800
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-01-07 14:33:55 -0800
commit6d26f1b730caf0e2e8b25aa008372f99480bd13a (patch)
tree643fc8af16fac630344c280691d114de3021753a /newlib
parentdc664851c8c3c71902eb181c0186bbb496280b51 (diff)
downloadriscv-gnu-toolchain-6d26f1b730caf0e2e8b25aa008372f99480bd13a.zip
riscv-gnu-toolchain-6d26f1b730caf0e2e8b25aa008372f99480bd13a.tar.gz
riscv-gnu-toolchain-6d26f1b730caf0e2e8b25aa008372f99480bd13a.tar.bz2
newlib, glibc: fix strcmp regression
I screwed up when porting it to the new calling convention.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/newlib/libc/machine/riscv/strcmp.S46
1 files changed, 23 insertions, 23 deletions
diff --git a/newlib/newlib/libc/machine/riscv/strcmp.S b/newlib/newlib/libc/machine/riscv/strcmp.S
index 6004d9b..edcc611 100644
--- a/newlib/newlib/libc/machine/riscv/strcmp.S
+++ b/newlib/newlib/libc/machine/riscv/strcmp.S
@@ -64,35 +64,35 @@ strcmp:
.Lmismatch:
# words don't match, but a2 has no null byte.
#ifdef __riscv64
- sll a0, a2, 48
- sll a1, a3, 48
- bne a0, a1, .Lmismatch_upper
- sll a0, a2, 32
- sll a1, a3, 32
- bne a0, a1, .Lmismatch_upper
+ sll a4, a2, 48
+ sll a5, a3, 48
+ bne a4, a5, .Lmismatch_upper
+ sll a4, a2, 32
+ sll a5, a3, 32
+ bne a4, a5, .Lmismatch_upper
#endif
- sll a0, a2, 16
- sll a1, a3, 16
- bne a0, a1, .Lmismatch_upper
-
- srl a0, a2, 8*SZREG-16
- srl a1, a3, 8*SZREG-16
- sub a0, a0, a1
- and a4, a0, 0xff
- bnez a4, 1f
+ sll a4, a2, 16
+ sll a5, a3, 16
+ bne a4, a5, .Lmismatch_upper
+
+ srl a4, a2, 8*SZREG-16
+ srl a5, a3, 8*SZREG-16
+ sub a0, a4, a5
+ and a1, a0, 0xff
+ bnez a1, 1f
ret
.Lmismatch_upper:
- srl a0, a0, 8*SZREG-16
- srl a1, a1, 8*SZREG-16
- sub a2, a0, a1
- and a3, a2, 0xff
- bnez a3, 1f
+ srl a4, a4, 8*SZREG-16
+ srl a5, a5, 8*SZREG-16
+ sub a0, a4, a5
+ and a1, a0, 0xff
+ bnez a1, 1f
ret
-1:and a0, a0, 0xff
- and a1, a1, 0xff
- sub a0, a0, a1
+1:and a4, a4, 0xff
+ and a5, a5, 0xff
+ sub a0, a4, a5
ret
.Lmisaligned: