// asmcheck // Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package codegen import "runtime" // This file contains code generation tests related to the use of the // stack. // check that stack stores are optimized away // 386:"TEXT\t.*, [$]0-4" // amd64:"TEXT\t.*, [$]0-8" // arm:"TEXT\t.*, [$]-4-4" // arm64:"TEXT\t.*, [$]-8-8" // s390x:"TEXT\t.*, [$]0-8" // ppc64le:"TEXT\t.*, [$]0-8" // mips:"TEXT\t.*, [$]-4-4" func StackStore() int { var x int return *(&x) } // Check that assembly output has matching offset and base register // (Issue #21064). // amd64:`.*b\+24\(SP\)` // arm:`.*b\+4\(FP\)` func check_asmout(a, b int) int { runtime.GC() // use some frame return b }