]> rtime.felk.cvut.cz Git - arc.git/blob - include/ppc/asm_ppc.h
Cleanup of makefiles. Cleanup of merge.
[arc.git] / include / ppc / asm_ppc.h
1 /* -------------------------------- Arctic Core ------------------------------\r
2  * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
3  *\r
4  * Copyright (C) 2009  ArcCore AB <contact@arccore.com>\r
5  *\r
6  * This source code is free software; you can redistribute it and/or modify it\r
7  * under the terms of the GNU General Public License version 2 as published by the\r
8  * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
9  *\r
10  * This program is distributed in the hope that it will be useful, but\r
11  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
13  * for more details.\r
14  * -------------------------------- Arctic Core ------------------------------*/\r
15 \r
16 \r
17 \r
18 \r
19 \r
20 \r
21 \r
22 \r
23 #ifndef PPC_ASM_H_\r
24 #define PPC_ASM_H\r
25 \r
26 /* Context\r
27  * =================================================\r
28  * We have two context's large and small. Large is saved on\r
29  * interrupt and small is saved for everything else.\r
30  *\r
31  * Layout:\r
32  *\r
33  * offset\r
34  * -------------------------------\r
35  *   0--1    : context indicator, 0xde - small, 0xad - large\r
36  *   4       : lr\r
37  *   8       : cr\r
38  *  12       : sp\r
39  *\r
40  * small layout\r
41  *   16--    : General regs r14--r31\r
42  *\r
43  *  large layout\r
44  *   16--    : General regs r0--r31\r
45  *\r
46  */\r
47 \r
48 #define SPR_SRR0                26\r
49 #define SPR_SRR1                27\r
50 \r
51 #define SPR_CSRR0               58\r
52 #define SPR_CSRR1               59\r
53 \r
54 #define SPR_SPRG0_RW_S  272\r
55 #define SPR_SPRG1_RW_S  273\r
56 \r
57 #define SPR_DEAR                61\r
58 #define SPR_ESR         62\r
59 #define SPR_TSR         336\r
60 #define SPR_SPEFSCR             512\r
61 #define SPR_MCSR                572\r
62 \r
63 #define ESR_PTR         (1<<(38-32))\r
64 \r
65 #define SPR_XER         1\r
66 #define SPR_CTR         9\r
67 \r
68 #define INTC_SSCIR7 0xFFF48027\r
69 \r
70 #if defined(_ASSEMBLER_)\r
71 /*\r
72  * Misc macros\r
73  */\r
74 #define LOAD_IND_32( reg, addr) \\r
75     lis    reg, addr@ha;     \\r
76       lwz    reg, addr@l(reg)\r
77 \r
78 #define LOAD_ADDR_32(reg, addr ) \\r
79         addis   reg, 0, addr@ha; \\r
80         addi    reg, reg, addr@l\r
81 \r
82 \r
83 \r
84 /* GPRS */\r
85 #define sp          1\r
86 #define r0      0\r
87 #define r1      1\r
88 #define r2      2\r
89 #define r3      3\r
90 #define r4      4\r
91 #define r5      5\r
92 #define r6      6\r
93 #define r7      7\r
94 #define r8          8\r
95 #define r9          9\r
96 #define r10         10\r
97 #define r11     11\r
98 #define r12     12\r
99 #define r13     13\r
100 #define r14     14\r
101 #define r15     15\r
102 #define r16     16\r
103 #define r17     17\r
104 #define r18     18\r
105 #define r19     19\r
106 #define r20     20\r
107 #define r21     21\r
108 #define r22     22\r
109 #define r23     23\r
110 #define r24     24\r
111 #define r25     25\r
112 #define r26     26\r
113 #define r27     27\r
114 #define r28     28\r
115 #define r29     29\r
116 #define r30     30\r
117 #define r31     31\r
118 #endif\r
119 \r
120 #endif /*PPC_ASM_H_*/\r