mirror of https://github.com/golang/go.git
42 lines
950 B
ArmAsm
42 lines
950 B
ArmAsm
// Copyright 2022 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.
|
|
|
|
#define NOSPLIT 7
|
|
#define NOFRAME 512
|
|
|
|
TEXT ·asmMain(SB),0,$0-0
|
|
CALL ·startSelf(SB)
|
|
CALL ·startChain(SB)
|
|
CALL ·startRec(SB)
|
|
RET
|
|
|
|
// Test reporting of basic over-the-limit
|
|
TEXT ·startSelf(SB),NOSPLIT,$1000-0
|
|
RET
|
|
|
|
// Test reporting of multiple over-the-limit chains
|
|
TEXT ·startChain(SB),NOSPLIT,$16-0
|
|
CALL ·chain0(SB)
|
|
CALL ·chain1(SB)
|
|
CALL ·chain2(SB)
|
|
RET
|
|
TEXT ·chain0(SB),NOSPLIT,$32-0
|
|
CALL ·chainEnd(SB)
|
|
RET
|
|
TEXT ·chain1(SB),NOSPLIT,$48-0 // Doesn't go over
|
|
RET
|
|
TEXT ·chain2(SB),NOSPLIT,$64-0
|
|
CALL ·chainEnd(SB)
|
|
RET
|
|
TEXT ·chainEnd(SB),NOSPLIT,$1000-0 // Should be reported twice
|
|
RET
|
|
|
|
// Test reporting of rootless recursion
|
|
TEXT ·startRec(SB),NOSPLIT|NOFRAME,$0-0
|
|
CALL ·startRec0(SB)
|
|
RET
|
|
TEXT ·startRec0(SB),NOSPLIT|NOFRAME,$0-0
|
|
CALL ·startRec(SB)
|
|
RET
|