diff options
| -rw-r--r-- | embassy-rp/src/intrinsics.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/embassy-rp/src/intrinsics.rs b/embassy-rp/src/intrinsics.rs index 3b63846d4..3baabb287 100644 --- a/embassy-rp/src/intrinsics.rs +++ b/embassy-rp/src/intrinsics.rs | |||
| @@ -361,10 +361,11 @@ macro_rules! division_function { | |||
| 361 | #[cfg(all(target_arch = "arm", feature = "intrinsics"))] | 361 | #[cfg(all(target_arch = "arm", feature = "intrinsics"))] |
| 362 | core::arch::global_asm!( | 362 | core::arch::global_asm!( |
| 363 | // Mangle the name slightly, since this is a global symbol. | 363 | // Mangle the name slightly, since this is a global symbol. |
| 364 | concat!(".global _rphal_", stringify!($name)), | 364 | concat!(".section .text._erphal_", stringify!($name)), |
| 365 | concat!(".type _rphal_", stringify!($name), ", %function"), | 365 | concat!(".global _erphal_", stringify!($name)), |
| 366 | concat!(".type _erphal_", stringify!($name), ", %function"), | ||
| 366 | ".align 2", | 367 | ".align 2", |
| 367 | concat!("_rphal_", stringify!($name), ":"), | 368 | concat!("_erphal_", stringify!($name), ":"), |
| 368 | $( | 369 | $( |
| 369 | concat!(".global ", stringify!($intrinsic)), | 370 | concat!(".global ", stringify!($intrinsic)), |
| 370 | concat!(".type ", stringify!($intrinsic), ", %function"), | 371 | concat!(".type ", stringify!($intrinsic), ", %function"), |
| @@ -379,10 +380,11 @@ macro_rules! division_function { | |||
| 379 | #[cfg(all(target_arch = "arm", not(feature = "intrinsics")))] | 380 | #[cfg(all(target_arch = "arm", not(feature = "intrinsics")))] |
| 380 | core::arch::global_asm!( | 381 | core::arch::global_asm!( |
| 381 | // Mangle the name slightly, since this is a global symbol. | 382 | // Mangle the name slightly, since this is a global symbol. |
| 382 | concat!(".global _rphal_", stringify!($name)), | 383 | concat!(".section .text._erphal_", stringify!($name)), |
| 383 | concat!(".type _rphal_", stringify!($name), ", %function"), | 384 | concat!(".global _erphal_", stringify!($name)), |
| 385 | concat!(".type _erphal_", stringify!($name), ", %function"), | ||
| 384 | ".align 2", | 386 | ".align 2", |
| 385 | concat!("_rphal_", stringify!($name), ":"), | 387 | concat!("_erphal_", stringify!($name), ":"), |
| 386 | 388 | ||
| 387 | "hwdivider_head", | 389 | "hwdivider_head", |
| 388 | $($begin),+ , | 390 | $($begin),+ , |
| @@ -392,7 +394,7 @@ macro_rules! division_function { | |||
| 392 | #[cfg(target_arch = "arm")] | 394 | #[cfg(target_arch = "arm")] |
| 393 | extern "aapcs" { | 395 | extern "aapcs" { |
| 394 | // Connect a local name to global symbol above through FFI. | 396 | // Connect a local name to global symbol above through FFI. |
| 395 | #[link_name = concat!("_rphal_", stringify!($name)) ] | 397 | #[link_name = concat!("_erphal_", stringify!($name)) ] |
| 396 | fn $name(n: $argty, d: $argty) -> u64; | 398 | fn $name(n: $argty, d: $argty) -> u64; |
| 397 | } | 399 | } |
| 398 | 400 | ||
