aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s
blob: 990440258427695e8cf1a08879161b3b50ab92df (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
49
	.macro	makestub,type,func,section
	.text
	.set	\type
	.type	\func,@function
	.ent	\func
\func:
	jr	$31
	.end	\func

	.section \section,"ax",@progbits
	.set	nomips16
	.type	stub_for_\func,@function
	.ent	stub_for_\func
stub_for_\func:
	.set	noat
	la	$1,\func
	jr	$1
	.set	at
	.end	stub_for_\func
	.endm

	.macro	makestubs,id
	makestub nomips16,f\id,.mips16.call.F\id
	makestub nomips16,g\id,.mips16.call.fp.G\id
	makestub mips16,h\id,.mips16.fn.H\id
	.endm

	.macro	makecaller,type,func
	.text
	.set	\type
	.globl	\func
	.type	\func,@function
	.ent	\func
\func:
	jal	f1
	jal	f2
	jal	g1
	jal	g2
	jal	h1
	jal	h2
	.end	\func
	.endm

	makestubs 1
	makestubs 2
	makestubs 3

	makecaller nomips16,caller1
	makecaller mips16,caller2