mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-04 11:07:46 +00:00
riscv: use 16-byte alignment everywhere
Source: https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf
This commit is contained in:
@@ -6,6 +6,12 @@ import "device/riscv"
|
||||
|
||||
const deferExtraRegs = 0
|
||||
|
||||
// RISC-V has a maximum alignment of 16 bytes (both for RV32 and for RV64).
|
||||
// Source: https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf
|
||||
func align(ptr uintptr) uintptr {
|
||||
return (ptr + 15) &^ 15
|
||||
}
|
||||
|
||||
func getCurrentStackPointer() uintptr {
|
||||
return uintptr(stacksave())
|
||||
}
|
||||
|
||||
@@ -6,8 +6,3 @@ const GOARCH = "arm" // riscv pretends to be arm
|
||||
|
||||
// The bitness of the CPU (e.g. 8, 32, 64).
|
||||
const TargetBits = 32
|
||||
|
||||
// Align on word boundary.
|
||||
func align(ptr uintptr) uintptr {
|
||||
return (ptr + 3) &^ 3
|
||||
}
|
||||
|
||||
@@ -6,8 +6,3 @@ const GOARCH = "arm64" // riscv pretends to be arm
|
||||
|
||||
// The bitness of the CPU (e.g. 8, 32, 64).
|
||||
const TargetBits = 64
|
||||
|
||||
// Align on word boundary.
|
||||
func align(ptr uintptr) uintptr {
|
||||
return (ptr + 7) &^ 7
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user