diff --git a/libcpu/arm/cortex-m3/cpuport.c b/libcpu/arm/cortex-m3/cpuport.c index 66e2aa48093727858812aca7442968a7fc12b4ac..0f09930554aba1c879d88d2c215bf86288fb5580 100644 --- a/libcpu/arm/cortex-m3/cpuport.c +++ b/libcpu/arm/cortex-m3/cpuport.c @@ -389,12 +389,12 @@ exit int __rt_ffs(int value) { __asm volatile( - "CMP r0, #0x00 \n" + "CMP %1, #0x00 \n" "BEQ 1f \n" - "RBIT r0, r0 \n" - "CLZ r0, r0 \n" - "ADDS r0, r0, #0x01 \n" + "RBIT %1, %1 \n" + "CLZ %0, %1 \n" + "ADDS %0, %0, #0x01 \n" "1: \n" diff --git a/libcpu/arm/cortex-m4/cpuport.c b/libcpu/arm/cortex-m4/cpuport.c index f060fa122d3cbd0545035bd43d5377777331c1f8..717b4ba3df903b81aa73106741f4e3d51c2bfcbb 100644 --- a/libcpu/arm/cortex-m4/cpuport.c +++ b/libcpu/arm/cortex-m4/cpuport.c @@ -474,11 +474,11 @@ exit int __rt_ffs(int value) { __asm volatile( - "CMP %0, #0x00 \n" + "CMP %1, #0x00 \n" "BEQ 1f \n" - "RBIT %0, %0 \n" - "CLZ %0, %0 \n" + "RBIT %1, %1 \n" + "CLZ %0, %1 \n" "ADDS %0, %0, #0x01 \n" "1: \n" diff --git a/libcpu/arm/cortex-m7/cpuport.c b/libcpu/arm/cortex-m7/cpuport.c index 6b748255c594f376a5472c909c3a0df5e6c72c21..274cc19c8805be1deb8362a66748b71710a8a164 100644 --- a/libcpu/arm/cortex-m7/cpuport.c +++ b/libcpu/arm/cortex-m7/cpuport.c @@ -473,12 +473,12 @@ exit int __rt_ffs(int value) { __asm volatile( - "CMP r0, #0x00 \n" + "CMP %1, #0x00 \n" "BEQ 1f \n" - "RBIT r0, r0 \n" - "CLZ r0, r0 \n" - "ADDS r0, r0, #0x01 \n" + "RBIT %1, %1 \n" + "CLZ %0, %1 \n" + "ADDS %0, %0, #0x01 \n" "1: \n"