]>
Commit | Line | Data |
---|---|---|
7180e3e6 SR |
1 | #ifndef _ASM_POWERPC_ISERIES_EXCEPTION_H |
2 | #define _ASM_POWERPC_ISERIES_EXCEPTION_H | |
3 | /* | |
4 | * Extracted from head_64.S | |
5 | * | |
6 | * PowerPC version | |
7 | * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) | |
8 | * | |
9 | * Rewritten by Cort Dougan (cort@cs.nmt.edu) for PReP | |
10 | * Copyright (C) 1996 Cort Dougan <cort@cs.nmt.edu> | |
11 | * Adapted for Power Macintosh by Paul Mackerras. | |
12 | * Low-level exception handlers and MMU support | |
13 | * rewritten by Paul Mackerras. | |
14 | * Copyright (C) 1996 Paul Mackerras. | |
15 | * | |
16 | * Adapted for 64bit PowerPC by Dave Engebretsen, Peter Bergner, and | |
17 | * Mike Corrigan {engebret|bergner|mikejc}@us.ibm.com | |
18 | * | |
19 | * This file contains the low-level support and setup for the | |
20 | * PowerPC-64 platform, including trap and interrupt dispatch. | |
21 | * | |
22 | * This program is free software; you can redistribute it and/or | |
23 | * modify it under the terms of the GNU General Public License | |
24 | * as published by the Free Software Foundation; either version | |
25 | * 2 of the License, or (at your option) any later version. | |
26 | */ | |
8aa34ab8 | 27 | #include <asm/exception-64s.h> |
7180e3e6 SR |
28 | |
29 | #define EXCEPTION_PROLOG_ISERIES_1 \ | |
30 | mfmsr r10; \ | |
31 | ld r12,PACALPPACAPTR(r13); \ | |
32 | ld r11,LPPACASRR0(r12); \ | |
33 | ld r12,LPPACASRR1(r12); \ | |
34 | ori r10,r10,MSR_RI; \ | |
35 | mtmsrd r10,1 | |
36 | ||
5b072ba4 | 37 | #define STD_EXCEPTION_ISERIES(label, area) \ |
7180e3e6 SR |
38 | .globl label##_iSeries; \ |
39 | label##_iSeries: \ | |
40 | HMT_MEDIUM; \ | |
41 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | |
42 | EXCEPTION_PROLOG_1(area); \ | |
43 | EXCEPTION_PROLOG_ISERIES_1; \ | |
44 | b label##_common | |
45 | ||
5b072ba4 | 46 | #define MASKABLE_EXCEPTION_ISERIES(label) \ |
7180e3e6 SR |
47 | .globl label##_iSeries; \ |
48 | label##_iSeries: \ | |
49 | HMT_MEDIUM; \ | |
50 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | |
51 | EXCEPTION_PROLOG_1(PACA_EXGEN); \ | |
52 | lbz r10,PACASOFTIRQEN(r13); \ | |
53 | cmpwi 0,r10,0; \ | |
54 | beq- label##_iSeries_masked; \ | |
55 | EXCEPTION_PROLOG_ISERIES_1; \ | |
56 | b label##_common; \ | |
57 | ||
58 | #endif /* _ASM_POWERPC_ISERIES_EXCEPTION_H */ |