// Copyright 2020 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. TEXT ·bad1(SB), 0, $0 MOVQ $0, BP // want `frame pointer is clobbered before saving` RET TEXT ·bad2(SB), 0, $0 MOVQ AX, BP // want `frame pointer is clobbered before saving` RET TEXT ·bad3(SB), 0, $0 MOVQ 6(AX), BP // want `frame pointer is clobbered before saving` RET TEXT ·good1(SB), 0, $0 PUSHQ BP MOVQ $0, BP // this is ok POPQ BP RET TEXT ·good2(SB), 0, $0 MOVQ BP, BX MOVQ $0, BP // this is ok MOVQ BX, BP RET TEXT ·good3(SB), 0, $0 CMPQ AX, BX JEQ skip MOVQ $0, BP // this is ok skip: RET TEXT ·good4(SB), 0, $0 RET MOVQ $0, BP // this is ok RET TEXT ·good5(SB), 0, $8 MOVQ $0, BP // this is ok RET