• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * linux/arch/blackfin/mcount.S
3 *
4 * Copyright (C) 2006 Analog Devices Inc.
5 *
6 * 2007/04/12 Save index, length, modify and base registers. --rpm
7 */
8
9#include <linux/linkage.h>
10#include <asm/blackfin.h>
11
12.text
13
14.align 4 	/* just in case */
15
16ENTRY(__mcount)
17	[--sp] = i0;
18	[--sp] = i1;
19	[--sp] = i2;
20	[--sp] = i3;
21	[--sp] = l0;
22	[--sp] = l1;
23	[--sp] = l2;
24	[--sp] = l3;
25	[--sp] = m0;
26	[--sp] = m1;
27	[--sp] = m2;
28	[--sp] = m3;
29	[--sp] = b0;
30	[--sp] = b1;
31	[--sp] = b2;
32	[--sp] = b3;
33	[--sp] = ( r7:0, p5:0 );
34	[--sp] = ASTAT;
35
36	p1.L = _ipipe_trace_enable;
37	p1.H = _ipipe_trace_enable;
38	r7 = [p1];
39	CC = r7 == 0;
40	if CC jump out;
41	link 0x10;
42	r0 = 0x0;
43	[sp + 0xc] = r0; /* v */
44	r0 = 0x0;	/* type: IPIPE_TRACE_FN */
45	r1 = rets;
46	p0 = [fp];	/* p0: Prior FP */
47	r2 = [p0 + 4];	/* r2: Prior RETS */
48	call ___ipipe_trace;
49	unlink;
50out:
51	ASTAT = [sp++];
52	( r7:0, p5:0 ) = [sp++];
53	b3 = [sp++];
54	b2 = [sp++];
55	b1 = [sp++];
56	b0 = [sp++];
57	m3 = [sp++];
58	m2 = [sp++];
59	m1 = [sp++];
60	m0 = [sp++];
61	l3 = [sp++];
62	l2 = [sp++];
63	l1 = [sp++];
64	l0 = [sp++];
65	i3 = [sp++];
66	i2 = [sp++];
67	i1 = [sp++];
68	i0 = [sp++];
69	rts;
70ENDPROC(__mcount)
71