summaryrefslogtreecommitdiff
path: root/libcpu/arm/cortex-m4
diff options
context:
space:
mode:
authoraozima <[email protected]>2017-08-23 16:13:51 +0800
committeraozima <[email protected]>2017-08-23 16:13:51 +0800
commit9bbc4e5e6b6d5c6efe24484d9032a8b8da2f1920 (patch)
tree5e988af98b55cb1847729bae16ff0ad35abe1bc3 /libcpu/arm/cortex-m4
parent1f45d8c723cf8fd91a2f0ac6fec5ac9789c4cf66 (diff)
update cortex-m libcpu: fixed compile error.
Diffstat (limited to 'libcpu/arm/cortex-m4')
-rw-r--r--libcpu/arm/cortex-m4/cpuport.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libcpu/arm/cortex-m4/cpuport.c b/libcpu/arm/cortex-m4/cpuport.c
index 47d8473997..e74c337c60 100644
--- a/libcpu/arm/cortex-m4/cpuport.c
+++ b/libcpu/arm/cortex-m4/cpuport.c
@@ -238,6 +238,7 @@ __asm int __rt_ffs(int value)
{
CMP r0, #0x00
BEQ exit
+
RBIT r0, r0
CLZ r0, r0
ADDS r0, r0, #0x01
@@ -250,9 +251,11 @@ int __rt_ffs(int value)
{
if (value == 0) return value;
- __ASM("RBIT r0, r0");
- __ASM("CLZ r0, r0");
- __ASM("ADDS r0, r0, #0x01");
+ asm("RBIT %0, %1" : "=r"(value) : "r"(value));
+ asm("CLZ %0, %1" : "=r"(value) : "r"(value));
+ asm("ADDS %0, %1, #0x01" : "=r"(value) : "r"(value));
+
+ return value;
}
#elif defined(__GNUC__)
int __rt_ffs(int value)