提交 9bbc4e5e 编写于 作者: wuyangyong's avatar wuyangyong

update cortex-m libcpu: fixed compile error.

上级 1f45d8c7
...@@ -368,11 +368,12 @@ __asm int __rt_ffs(int value) ...@@ -368,11 +368,12 @@ __asm int __rt_ffs(int value)
{ {
CMP r0, #0x00 CMP r0, #0x00
BEQ exit BEQ exit
RBIT r0, r0 RBIT r0, r0
CLZ r0, r0 CLZ r0, r0
ADDS r0, r0, #0x01 ADDS r0, r0, #0x01
exit exit
BX lr BX lr
} }
#elif defined(__IAR_SYSTEMS_ICC__) #elif defined(__IAR_SYSTEMS_ICC__)
...@@ -380,9 +381,11 @@ int __rt_ffs(int value) ...@@ -380,9 +381,11 @@ int __rt_ffs(int value)
{ {
if (value == 0) return value; if (value == 0) return value;
__ASM("RBIT r0, r0"); asm("RBIT %0, %1" : "=r"(value) : "r"(value));
__ASM("CLZ r0, r0"); asm("CLZ %0, %1" : "=r"(value) : "r"(value));
__ASM("ADDS r0, r0, #0x01"); asm("ADDS %0, %1, #0x01" : "=r"(value) : "r"(value));
return value;
} }
#elif defined(__GNUC__) #elif defined(__GNUC__)
int __rt_ffs(int value) int __rt_ffs(int value)
......
...@@ -238,6 +238,7 @@ __asm int __rt_ffs(int value) ...@@ -238,6 +238,7 @@ __asm int __rt_ffs(int value)
{ {
CMP r0, #0x00 CMP r0, #0x00
BEQ exit BEQ exit
RBIT r0, r0 RBIT r0, r0
CLZ r0, r0 CLZ r0, r0
ADDS r0, r0, #0x01 ADDS r0, r0, #0x01
...@@ -250,9 +251,11 @@ int __rt_ffs(int value) ...@@ -250,9 +251,11 @@ int __rt_ffs(int value)
{ {
if (value == 0) return value; if (value == 0) return value;
__ASM("RBIT r0, r0"); asm("RBIT %0, %1" : "=r"(value) : "r"(value));
__ASM("CLZ r0, r0"); asm("CLZ %0, %1" : "=r"(value) : "r"(value));
__ASM("ADDS r0, r0, #0x01"); asm("ADDS %0, %1, #0x01" : "=r"(value) : "r"(value));
return value;
} }
#elif defined(__GNUC__) #elif defined(__GNUC__)
int __rt_ffs(int value) int __rt_ffs(int value)
......
...@@ -238,6 +238,7 @@ __asm int __rt_ffs(int value) ...@@ -238,6 +238,7 @@ __asm int __rt_ffs(int value)
{ {
CMP r0, #0x00 CMP r0, #0x00
BEQ exit BEQ exit
RBIT r0, r0 RBIT r0, r0
CLZ r0, r0 CLZ r0, r0
ADDS r0, r0, #0x01 ADDS r0, r0, #0x01
...@@ -250,9 +251,11 @@ int __rt_ffs(int value) ...@@ -250,9 +251,11 @@ int __rt_ffs(int value)
{ {
if (value == 0) return value; if (value == 0) return value;
__ASM("RBIT r0, r0"); asm("RBIT %0, %1" : "=r"(value) : "r"(value));
__ASM("CLZ r0, r0"); asm("CLZ %0, %1" : "=r"(value) : "r"(value));
__ASM("ADDS r0, r0, #0x01"); asm("ADDS %0, %1, #0x01" : "=r"(value) : "r"(value));
return value;
} }
#elif defined(__GNUC__) #elif defined(__GNUC__)
int __rt_ffs(int value) int __rt_ffs(int value)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册