aboutsummaryrefslogtreecommitdiffstats
path: root/lib/pico-sdk/rp2040/pico
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pico-sdk/rp2040/pico')
-rw-r--r--lib/pico-sdk/rp2040/pico/asm_helper.S52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/pico-sdk/rp2040/pico/asm_helper.S b/lib/pico-sdk/rp2040/pico/asm_helper.S
new file mode 100644
index 00000000..59c67db1
--- /dev/null
+++ b/lib/pico-sdk/rp2040/pico/asm_helper.S
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+//#include "pico.h"
+
+# note we don't do this by default in this file for backwards comaptibility with user code
+# that may include this file, but not use unified syntax. Note that this macro does equivalent
+# setup to the pico_default_asm macro for inline assembly in C code.
+.macro pico_default_asm_setup
+.syntax unified
+.cpu cortex-m0plus
+.thumb
+.endm
+
+// do not put align in here as it is used mid function sometimes
+.macro regular_func x
+.global \x
+.type \x,%function
+.thumb_func
+\x:
+.endm
+
+.macro weak_func x
+.weak \x
+.type \x,%function
+.thumb_func
+\x:
+.endm
+
+.macro regular_func_with_section x
+.section .text.\x
+regular_func \x
+.endm
+
+// do not put align in here as it is used mid function sometimes
+.macro wrapper_func x
+regular_func WRAPPER_FUNC_NAME(\x)
+.endm
+
+.macro weak_wrapper_func x
+weak_func WRAPPER_FUNC_NAME(\x)
+.endm
+
+# backwards compatibility
+.macro __pre_init func, priority_string
+.section .preinit_array.\priority_string
+.p2align 2
+.word \func
+.endm