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