Browse Source

Merge pull request #3700 from geniusgogo/master

[libcpu/arm/*/cpuport.c]fixed __rt_ffs bug on account of armclang LTO.
Bernard Xiong 4 years ago
parent
commit
2d2c20cd45

+ 2 - 2
libcpu/arm/cortex-m3/cpuport.c

@@ -388,13 +388,13 @@ int __rt_ffs(int value)
 {
     __asm volatile(
         "CMP     r0, #0x00            \n"
-        "BEQ     exit                 \n"
+        "BEQ     1f                   \n"
 
         "RBIT    r0, r0               \n"
         "CLZ     r0, r0               \n"
         "ADDS    r0, r0, #0x01        \n"
 
-        "exit:                        \n"
+        "1:                           \n"
 
         : "=r"(value)
         : "r"(value)

+ 2 - 2
libcpu/arm/cortex-m33/cpuport.c

@@ -475,13 +475,13 @@ int __rt_ffs(int value)
 {
     __asm volatile(
         "CMP     r0, #0x00            \n"
-        "BEQ     exit                 \n"
+        "BEQ     1f                   \n"
 
         "RBIT    r0, r0               \n"
         "CLZ     r0, r0               \n"
         "ADDS    r0, r0, #0x01        \n"
 
-        "exit:                        \n"
+        "1:                           \n"
         "BX      lr                   \n"
 
         : "=r"(value)

+ 2 - 2
libcpu/arm/cortex-m4/cpuport.c

@@ -472,13 +472,13 @@ int __rt_ffs(int value)
 {
     __asm volatile(
         "CMP     r0, #0x00            \n"
-        "BEQ     exit                 \n"
+        "BEQ     1f                   \n"
 
         "RBIT    r0, r0               \n"
         "CLZ     r0, r0               \n"
         "ADDS    r0, r0, #0x01        \n"
 
-        "exit:                        \n"
+        "1:                           \n"
 
         : "=r"(value)
         : "r"(value)

+ 2 - 2
libcpu/arm/cortex-m7/cpuport.c

@@ -472,13 +472,13 @@ int __rt_ffs(int value)
 {
     __asm volatile(
         "CMP     r0, #0x00            \n"
-        "BEQ     exit                 \n"
+        "BEQ     1f                   \n"
 
         "RBIT    r0, r0               \n"
         "CLZ     r0, r0               \n"
         "ADDS    r0, r0, #0x01        \n"
 
-        "exit:                        \n"
+        "1:                           \n"
 
         : "=r"(value)
         : "r"(value)