aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/newlink/testdata/dead.s
blob: 86f31360faebefdae2cb83d5b5babf342e7ead24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Copyright 2014 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.

// Test of dead code removal.
// Symbols with names beginning with dead_ should be discarded.
// Others should be kept.

TEXT start(SB),7,$0	// start symbol
	MOVQ $data1<>(SB), AX
	CALL text1(SB)
	MOVQ $text2(SB), BX
	RET

TEXT text1(SB),7,$0
	FUNCDATA $1, funcdata+4(SB)
	RET

TEXT text2(SB),7,$0
	MOVQ $runtime·edata(SB),BX
	RET

DATA data1<>+0(SB)/8, $data2(SB)
DATA data1<>+8(SB)/8, $data3(SB)
GLOBL data1<>(SB), $16
GLOBL data2(SB), $1
GLOBL data3(SB), $1
GLOBL funcdata(SB), $8

TEXT dead_start(SB),7,$0
	MOVQ $dead_data1(SB), AX
	CALL dead_text1(SB)
	MOVQ $dead_text2(SB), BX
	RET

TEXT dead_text1(SB),7,$0
	FUNCDATA $1, dead_funcdata+4(SB)
	RET

TEXT dead_text2(SB),7,$0
	RET

DATA dead_data1+0(SB)/8, $dead_data2(SB)
DATA dead_data1+8(SB)/8, $dead_data3(SB)
GLOBL dead_data1(SB), $16
GLOBL dead_data2(SB), $1
GLOBL dead_data3(SB), $1
GLOBL dead_funcdata(SB), $8