File: mips16-local-stubs-1.s

package info (click to toggle)
binutils-djgpp 2.35.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 321,228 kB
  • sloc: ansic: 1,162,947; asm: 671,219; cpp: 134,012; exp: 70,783; makefile: 55,860; sh: 22,254; yacc: 14,459; lisp: 13,806; perl: 2,008; lex: 1,649; pascal: 307; sed: 195; awk: 25
file content (49 lines) | stat: -rw-r--r-- 726 bytes parent folder | download | duplicates (23)
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