mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-05-29 02:28:35 +08:00
update cortex-m libcpu: fixed compile error.
This commit is contained in:
@@ -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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user