github.com/tinygo-org/tinygo@v0.31.3-0.20240404173401-90b0bf646c27/src/runtime/arch_amd64.go (about)

     1  package runtime
     2  
     3  const GOARCH = "amd64"
     4  
     5  // The bitness of the CPU (e.g. 8, 32, 64).
     6  const TargetBits = 64
     7  
     8  const deferExtraRegs = 0
     9  
    10  const callInstSize = 5 // "call someFunction" is 5 bytes
    11  
    12  // Align a pointer.
    13  // Note that some amd64 instructions (like movaps) expect 16-byte aligned
    14  // memory, thus the result must be 16-byte aligned.
    15  func align(ptr uintptr) uintptr {
    16  	return (ptr + 15) &^ 15
    17  }
    18  
    19  func getCurrentStackPointer() uintptr {
    20  	return uintptr(stacksave())
    21  }