]> rtime.felk.cvut.cz Git - arc.git/blob - include/ppc/asm_ppc.h
Converted all line endings to Windows (CR LF)
[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 /*\r
49  * -------- botton(high address )\r
50  *  Context\r
51  * --------\r
52  *\r
53  * -------- top\r
54  *\r
55  *  kind of frames...\r
56  * -------------------------------\r
57  *  C_xxxx  - common frame to both large and small context\r
58  *  EXC_xxx - exception frame\r
59  *  SC_xxx  - small context frame\r
60  *  LC_xxx  - large context frame\r
61  *\r
62  *\r
63  *\r
64  *\r
65  */\r
66 \r
67 \r
68 #define SPR_SRR0                26\r
69 #define SPR_SRR1                27\r
70 \r
71 #define SPR_CSRR0               58\r
72 #define SPR_CSRR1               59\r
73 \r
74 #define SPR_SPRG0_RW_S  272\r
75 #define SPR_SPRG1_RW_S  273\r
76 \r
77 #define SPR_DEAR                61\r
78 #define SPR_ESR         62\r
79 #define SPR_TSR         336\r
80 #define SPR_SPEFSCR             512\r
81 #define SPR_MCSR                572\r
82 \r
83 #define ESR_PTR         (1<<(38-32))\r
84 \r
85 #define SPR_XER         1\r
86 #define SPR_CTR         9\r
87 \r
88 \r
89 /*\r
90  * Misc macros\r
91  */\r
92 #define LOAD_IND_32( reg, addr) \\r
93     lis    reg, addr@ha;     \\r
94       lwz    reg, addr@l(reg)\r
95 \r
96 #define LOAD_ADDR_32(reg, addr ) \\r
97         addis   reg, 0, addr@ha; \\r
98         addi    reg, reg, addr@l\r
99 \r
100 \r
101 /* GPRS */\r
102 #define sp          1\r
103 #define r0      0\r
104 #define r1      1\r
105 #define r2      2\r
106 #define r3      3\r
107 #define r4      4\r
108 #define r5      5\r
109 #define r6      6\r
110 #define r7      7\r
111 #define r8          8\r
112 #define r9          9\r
113 #define r10         10\r
114 #define r11     11\r
115 #define r12     12\r
116 #define r13     13\r
117 #define r14     14\r
118 #define r15     15\r
119 #define r16     16\r
120 #define r17     17\r
121 #define r18     18\r
122 #define r19     19\r
123 #define r20     20\r
124 #define r21     21\r
125 #define r22     22\r
126 #define r23     23\r
127 #define r24     24\r
128 #define r25     25\r
129 #define r26     26\r
130 #define r27     27\r
131 #define r28     28\r
132 #define r29     29\r
133 #define r30     30\r
134 #define r31     31\r
135 \r
136 #endif /*PPC_ASM_H_*/\r