1 return strdup (
2 	"=PC	pc\n"
3 	"=SP	x2\n"
4 	"=BP	x4\n"
5 	"=R0	a10\n"
6 	"=R1	a11\n"
7 	"=A0	a10\n"
8 	"=A1	a11\n"
9 	"=A2	a12\n"
10 	"=A3	a13\n"
11 	"=A4	a14\n"
12 	"gpr	x0	.64	?	0\n" // always zero
13 	"gpr	x1	.64	8	0\n" // RA - return address
14 	"gpr	x2	.64	16	0\n" // SP stack pointer
15 	"gpr	x3	.64	24	0\n" // GP global pointer
16 	"gpr	x4	.64	32	0\n" // TP thread pointer
17 	"gpr	x5	.64	40	0\n" // FP frame pointer -- BP
18 	"gpr	x6	.64	48	0\n"
19 	"gpr	x7	.64	56	0\n"
20 	/* tmp */
21 	"gpr	x8	.64	64	0\n"
22 	"gpr	x9	.64	72	0\n"
23 	"gpr	x10	.64	80	0\n"
24 	"gpr	x11	.64	88	0\n"
25 	"gpr	x12	.64	96	0\n"
26 	"gpr	x13	.64	104	0\n"
27 	"gpr	x14	.64	112	0\n"
28 	"gpr	x15	.64	120	0\n"
29 	/* saved */
30 	"gpr	x16	.64	128	0\n"
31 	"gpr	x17	.64	136	0\n"
32 	"gpr	x18	.64	144	0\n"
33 	"gpr	x19	.64	152	0\n"
34 	"gpr	x20	.64	160	0\n"
35 	"gpr	x21	.64	168	0\n"
36 	"gpr	x22	.64	176	0\n"
37 	"gpr	x23	.64	184	0\n"
38 	/* tmp */
39 	"gpr	x24	.64	192	0\n"
40 	"gpr	x25	.64	200	0\n"
41 	/* special */
42 	"gpr	x26	.64	208	0\n"
43 	"gpr	x27	.64	216	0\n"
44 	"gpr	x28	.64	224	0\n"
45 	"gpr	x29	.64	232	0\n"
46 	"gpr	x30	.64	240	0\n"
47 	"gpr	x31	.64	248	0\n"
48 	);
49