Revision 1d7d4034
b/target-openrisc/Makefile.objs | ||
---|---|---|
1 | 1 |
obj-$(CONFIG_SOFTMMU) += machine.o |
2 |
obj-y += cpu.o interrupt.o mmu.o translate.o |
|
3 |
obj-y += interrupt_helper.o mmu_helper.o |
|
2 |
obj-y += cpu.o exception.o interrupt.o mmu.o translate.o |
|
3 |
obj-y += exception_helper.o interrupt_helper.o mmu_helper.o |
b/target-openrisc/exception.c | ||
---|---|---|
1 |
/* |
|
2 |
* OpenRISC exception. |
|
3 |
* |
|
4 |
* Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com> |
|
5 |
* |
|
6 |
* This library is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU Lesser General Public |
|
8 |
* License as published by the Free Software Foundation; either |
|
9 |
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This library is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
* Lesser General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU Lesser General Public |
|
17 |
* License along with this library; if not, see <http://www.gnu.org/licenses/>. |
|
18 |
*/ |
|
19 |
|
|
20 |
#include "cpu.h" |
|
21 |
#include "exception.h" |
|
22 |
|
|
23 |
void QEMU_NORETURN raise_exception(OpenRISCCPU *cpu, uint32_t excp) |
|
24 |
{ |
|
25 |
cpu->env.exception_index = excp; |
|
26 |
cpu_loop_exit(&cpu->env); |
|
27 |
} |
b/target-openrisc/exception.h | ||
---|---|---|
1 |
/* |
|
2 |
* OpenRISC exception header. |
|
3 |
* |
|
4 |
* Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com> |
|
5 |
* |
|
6 |
* This library is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU Lesser General Public |
|
8 |
* License as published by the Free Software Foundation; either |
|
9 |
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This library is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
* Lesser General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU Lesser General Public |
|
17 |
* License along with this library; if not, see <http://www.gnu.org/licenses/>. |
|
18 |
*/ |
|
19 |
|
|
20 |
#ifndef QEMU_OPENRISC_EXCP_H |
|
21 |
#define QEMU_OPENRISC_EXCP_H |
|
22 |
|
|
23 |
#include "cpu.h" |
|
24 |
#include "qemu-common.h" |
|
25 |
|
|
26 |
void QEMU_NORETURN raise_exception(OpenRISCCPU *cpu, uint32_t excp); |
|
27 |
|
|
28 |
#endif /* QEMU_OPENRISC_EXCP_H */ |
b/target-openrisc/exception_helper.c | ||
---|---|---|
1 |
/* |
|
2 |
* OpenRISC exception helper routines |
|
3 |
* |
|
4 |
* Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com> |
|
5 |
* |
|
6 |
* This library is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU Lesser General Public |
|
8 |
* License as published by the Free Software Foundation; either |
|
9 |
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This library is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
* Lesser General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU Lesser General Public |
|
17 |
* License along with this library; if not, see <http://www.gnu.org/licenses/>. |
|
18 |
*/ |
|
19 |
|
|
20 |
#include "cpu.h" |
|
21 |
#include "helper.h" |
|
22 |
#include "exception.h" |
|
23 |
|
|
24 |
void HELPER(exception)(CPUOpenRISCState *env, uint32_t excp) |
|
25 |
{ |
|
26 |
OpenRISCCPU *cpu = OPENRISC_CPU(ENV_GET_CPU(env)); |
|
27 |
|
|
28 |
raise_exception(cpu, excp); |
|
29 |
} |
b/target-openrisc/helper.h | ||
---|---|---|
19 | 19 |
|
20 | 20 |
#include "def-helper.h" |
21 | 21 |
|
22 |
/* exception */ |
|
23 |
DEF_HELPER_FLAGS_2(exception, 0, void, env, i32) |
|
24 |
|
|
22 | 25 |
/* interrupt */ |
23 | 26 |
DEF_HELPER_FLAGS_1(rfe, 0, void, env) |
24 | 27 |
|
Also available in: Unified diff