| // 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 |