mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-03 10:37:46 +00:00
Refactor SystemStack function for arm targets.
Removing usage of AsmFull in favor of writing inline assembly in C.
This commit is contained in:
committed by
Ron Evans
parent
360f6904f5
commit
a3fdbec13d
@@ -0,0 +1,12 @@
|
||||
#include <stdint.h>
|
||||
|
||||
uintptr_t SystemStack() {
|
||||
uintptr_t sp;
|
||||
asm volatile(
|
||||
"mrs %0, MSP"
|
||||
: "=r"(sp)
|
||||
:
|
||||
: "memory"
|
||||
);
|
||||
return sp;
|
||||
}
|
||||
@@ -8,8 +8,8 @@ package task
|
||||
// PSP, which is used for goroutines) so that goroutines do not need extra stack
|
||||
// space for interrupts.
|
||||
|
||||
import "C"
|
||||
import (
|
||||
"device/arm"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
@@ -67,6 +67,6 @@ func (s *state) pause() {
|
||||
|
||||
// SystemStack returns the system stack pointer. On Cortex-M, it is always
|
||||
// available.
|
||||
func SystemStack() uintptr {
|
||||
return arm.AsmFull("mrs {}, MSP", nil)
|
||||
}
|
||||
//
|
||||
//export SystemStack
|
||||
func SystemStack() uintptr
|
||||
|
||||
Reference in New Issue
Block a user