summaryrefslogtreecommitdiff
path: root/meta-xilinx/meta-microblaze/recipes-core/newlib/files/0010-Patch-MicroBlaze-typos-in-string-functions-microblaz.patch
blob: d1f19a74f94aca25742d87efdccc35a16e480661 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
From 70281e45fa433ec854f60b43fef019ebc8ca0649 Mon Sep 17 00:00:00 2001
From: Mahesh Bodapati <mbodapat@xilinx.com>
Date: Wed, 3 Apr 2019 11:52:50 +0530
Subject: [PATCH 10/11] [Patch,MicroBlaze] : typos in string functions
 microblaze 64 bit port.fixed the issues.

---
 newlib/libc/machine/microblaze/strcmp.c | 12 +++++++-----
 newlib/libc/machine/microblaze/strlen.c |  4 ++--
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/newlib/libc/machine/microblaze/strcmp.c b/newlib/libc/machine/microblaze/strcmp.c
index dac64da..acfe4cd 100644
--- a/newlib/libc/machine/microblaze/strcmp.c
+++ b/newlib/libc/machine/microblaze/strcmp.c
@@ -135,7 +135,7 @@ strcmp (const char *s1,
 
 #ifdef __arch64__
     asm volatile ("                                          \n\
-        orl      r9, r0, r0               /* Index register */\n\
+        orl      r9, r0, r0               /* Index register */ \n\
 check_alignment:                                             \n\
         andli    r3, r5, 3                                    \n\
         andli    r4, r6, 3                                    \n\
@@ -161,7 +161,7 @@ end_cmp_loop:
         beaneid   r3, end_cmp_loop        /* If reached null on one string, terminate */  \n\
         nop					                              \n\
 end_cmp_early:                                                                  \n\
-        or   r3, r0, r7               /* delay slot */                        \n\
+        orl   r3, r0, r7               /* delay slot */                        \n\
         rtsd    r15, 8                                                          \n\
         nop		                                                         \n\
 try_align_args:                                                                 \n\
@@ -171,7 +171,7 @@ try_align_args:
 align_loop:                                                                     \n\
         lbu     r3, r5, r9                                                      \n\
         lbu     r4, r6, r9                                                      \n\
-        cmpu    r7, r4, r3                                                      \n\
+        cmplu    r7, r4, r3                                                      \n\
         beanei    r7, end_cmp                                                     \n\
         beaeqi    r3, end_cmp                                                     \n\
         addlik   r10, r10, -1                                                    \n\
@@ -185,10 +185,11 @@ regular_strcmp:
         cmplu    r7, r4, r3                                                      \n\
         beanei    r7, end_cmp                                                     \n\
         beaeqi    r3, end_cmp                                                     \n\
-        breaid    regular_strcmp                                                  \n\
         addlik   r9, r9, 1                                                       \n\
+        breaid    regular_strcmp                                                  \n\
+        nop                                                  \n\
 end_cmp:                                                                        \n\
-        or       r3, r0, r7                                                       \n\
+        orl       r3, r0, r7                                                       \n\
         rtsd    r15, 8                                                          \n\
         nop              /* Return strcmp result */");
 #else
@@ -240,6 +241,7 @@ regular_strcmp:
         bnei    r7, end_cmp                                                     \n\
         beqi    r3, end_cmp                                                     \n\
         brid    regular_strcmp                                                  \n\
+        addik   r9, r9, 1                                                       \n\
 end_cmp:                                                                        \n\
         rtsd    r15, 8                                                          \n\
         or      r3, r0, r7              /* Return strcmp result */");
diff --git a/newlib/libc/machine/microblaze/strlen.c b/newlib/libc/machine/microblaze/strlen.c
index c04fa4f..b6f2d3c 100644
--- a/newlib/libc/machine/microblaze/strlen.c
+++ b/newlib/libc/machine/microblaze/strlen.c
@@ -127,13 +127,13 @@ len_loop:                                                       \n"
 "                                                               \n\
         pcmplbf  r4, r3, r0                                      \n\
         beanei    r4, end_len                                     \n\
-        addik   r9, r9, 4                                       \n\
+        addlik   r9, r9, 4                                       \n\
         breaid    len_loop                                        \n\
         nop		                                        \n\
 end_len:                                                        \n\
         lbu     r3, r5, r9                                      \n\
         beaeqi    r3, done_len                                    \n\
-        addik   r9, r9, 1                                       \n\
+        addlik   r9, r9, 1                                       \n\
         breaid    end_len                                         \n\
         nop		                                       \n\
 done_len:                                                       \n\
-- 
2.7.4