]>
Commit | Line | Data |
---|---|---|
76a66253 JM |
1 | /* |
2 | * PowerPC emulation helpers header for qemu. | |
5fafdf24 | 3 | * |
76a66253 JM |
4 | * Copyright (c) 2003-2007 Jocelyn Mayer |
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, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 | */ | |
20 | ||
21 | #if defined(MEMSUFFIX) | |
22 | ||
23 | /* Memory load/store helpers */ | |
24 | void glue(do_lsw, MEMSUFFIX) (int dst); | |
76a66253 | 25 | void glue(do_stsw, MEMSUFFIX) (int src); |
36f69651 | 26 | void glue(do_icbi, MEMSUFFIX) (void); |
d63001d1 | 27 | void glue(do_dcbz, MEMSUFFIX) (void); |
76a66253 JM |
28 | void glue(do_POWER_lscbx, MEMSUFFIX) (int dest, int ra, int rb); |
29 | void glue(do_POWER2_lfq, MEMSUFFIX) (void); | |
30 | void glue(do_POWER2_lfq_le, MEMSUFFIX) (void); | |
31 | void glue(do_POWER2_stfq, MEMSUFFIX) (void); | |
32 | void glue(do_POWER2_stfq_le, MEMSUFFIX) (void); | |
33 | ||
d9bce9d9 JM |
34 | #if defined(TARGET_PPC64) |
35 | void glue(do_lsw_64, MEMSUFFIX) (int dst); | |
d9bce9d9 | 36 | void glue(do_stsw_64, MEMSUFFIX) (int src); |
36f69651 | 37 | void glue(do_icbi_64, MEMSUFFIX) (void); |
d63001d1 | 38 | void glue(do_dcbz_64, MEMSUFFIX) (void); |
d9bce9d9 JM |
39 | #endif |
40 | ||
76a66253 JM |
41 | #else |
42 | ||
a496775f JM |
43 | void do_print_mem_EA (target_ulong EA); |
44 | ||
76a66253 | 45 | /* Registers load and stores */ |
6676f424 | 46 | void do_load_cr (void); |
76a66253 | 47 | void do_store_cr (uint32_t mask); |
c80f84e3 JM |
48 | #if defined(TARGET_PPC64) |
49 | void do_store_pri (int prio); | |
50 | #endif | |
a496775f JM |
51 | target_ulong ppc_load_dump_spr (int sprn); |
52 | void ppc_store_dump_spr (int sprn, target_ulong val); | |
76a66253 | 53 | |
0487d6a8 | 54 | /* Misc */ |
76a66253 | 55 | #if !defined(CONFIG_USER_ONLY) |
6676f424 | 56 | void do_store_msr (void); |
76a66253 | 57 | void do_rfi (void); |
d9bce9d9 | 58 | #if defined(TARGET_PPC64) |
426613db | 59 | void do_rfid (void); |
be147d08 JM |
60 | void do_hrfid (void); |
61 | #endif | |
76a66253 JM |
62 | #endif |
63 | ||
64 | /* POWER / PowerPC 601 specific helpers */ | |
76a66253 JM |
65 | void do_POWER_abso (void); |
66 | void do_POWER_clcs (void); | |
67 | void do_POWER_div (void); | |
68 | void do_POWER_divo (void); | |
69 | void do_POWER_divs (void); | |
70 | void do_POWER_divso (void); | |
71 | void do_POWER_dozo (void); | |
72 | void do_POWER_maskg (void); | |
73 | void do_POWER_mulo (void); | |
74 | #if !defined(CONFIG_USER_ONLY) | |
75 | void do_POWER_rac (void); | |
76 | void do_POWER_rfsvc (void); | |
056401ea | 77 | void do_store_hid0_601 (void); |
76a66253 JM |
78 | #endif |
79 | ||
a4bb6c3e | 80 | /* PowerPC 440 specific helpers */ |
5eb7995e | 81 | #if !defined(CONFIG_USER_ONLY) |
a4bb6c3e | 82 | void do_440_tlbre (int word); |
a4bb6c3e | 83 | void do_440_tlbwe (int word); |
5eb7995e JM |
84 | #endif |
85 | ||
76a66253 | 86 | /* PowerPC 4xx specific helpers */ |
a42bd6cc JM |
87 | void do_load_dcr (void); |
88 | void do_store_dcr (void); | |
a750fc0b | 89 | #if !defined(CONFIG_USER_ONLY) |
a42bd6cc JM |
90 | void do_40x_rfci (void); |
91 | void do_rfci (void); | |
92 | void do_rfdi (void); | |
93 | void do_rfmci (void); | |
76a66253 JM |
94 | void do_4xx_tlbre_lo (void); |
95 | void do_4xx_tlbre_hi (void); | |
76a66253 JM |
96 | void do_4xx_tlbwe_lo (void); |
97 | void do_4xx_tlbwe_hi (void); | |
98 | #endif | |
99 | ||
0487d6a8 | 100 | /* PowerPC 440 specific helpers */ |
76a66253 JM |
101 | void do_440_dlmzb (void); |
102 | ||
0487d6a8 | 103 | /* PowerPC 403 specific helpers */ |
76a66253 JM |
104 | #if !defined(CONFIG_USER_ONLY) |
105 | void do_load_403_pb (int num); | |
106 | void do_store_403_pb (int num); | |
107 | #endif | |
108 | ||
109 | #endif |