
Specification: https://developer.arm.com/documentation/dui0472/k/C-and-C---Implementation-Details/Basic-data-types-in-ARM-C-and-C-- There are multiple types that have an 8-byte alignment (long long, double) so we need to use the same maximum alignment in TinyGo. Fixing this is necessary for the precise GC.
19 строки
394 Б
Go
19 строки
394 Б
Go
//go:build (arm && !baremetal && !tinygo.wasm) || (arm && arm7tdmi)
|
|
|
|
package runtime
|
|
|
|
const GOARCH = "arm"
|
|
|
|
// The bitness of the CPU (e.g. 8, 32, 64).
|
|
const TargetBits = 32
|
|
|
|
const deferExtraRegs = 0
|
|
|
|
// Align on the maximum alignment for this platform (double).
|
|
func align(ptr uintptr) uintptr {
|
|
return (ptr + 7) &^ 7
|
|
}
|
|
|
|
func getCurrentStackPointer() uintptr {
|
|
return uintptr(stacksave())
|
|
}
|