aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op.c
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-03-30 10:22:46 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-03-30 10:22:46 +0000
commita42bd6ccdfefbadfc34d381c42d64a78f532df63 (patch)
tree0b6566dae1d57359b5e106a9dba199693ff89f9f /target-ppc/op.c
parent363be49c86af1ebe423df4087c7b021459ecd8cc (diff)
Fix rfi instruction: do not depend on current execution mode
but on the execution mode that will be effective after the return. Add rfci, rfdi and rfmci for BookE PowerPC. Extend mfdcr / mtdcr and implement mfdrcx / mtdcrx. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2544 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r--target-ppc/op.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 8bbbd62d47..b284798dc7 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -1821,23 +1821,11 @@ void OPPROTO op_rfi (void)
}
#if defined(TARGET_PPC64)
-void OPPROTO op_rfi_32 (void)
-{
- do_rfi_32();
- RETURN();
-}
-
void OPPROTO op_rfid (void)
{
do_rfid();
RETURN();
}
-
-void OPPROTO op_rfid_32 (void)
-{
- do_rfid_32();
- RETURN();
-}
#endif
#endif
@@ -2309,28 +2297,46 @@ void OPPROTO op_405_check_satu (void)
}
#if !defined(CONFIG_USER_ONLY)
-void OPPROTO op_4xx_load_dcr (void)
+void OPPROTO op_load_dcr (void)
{
- do_4xx_load_dcr(PARAM1);
+ do_load_dcr();
RETURN();
}
-void OPPROTO op_4xx_store_dcr (void)
+void OPPROTO op_store_dcr (void)
{
- do_4xx_store_dcr(PARAM1);
+ do_store_dcr();
RETURN();
}
/* Return from critical interrupt :
* same as rfi, except nip & MSR are loaded from SRR2/3 instead of SRR0/1
*/
-void OPPROTO op_4xx_rfci (void)
+void OPPROTO op_40x_rfci (void)
+{
+ do_40x_rfci();
+ RETURN();
+}
+
+void OPPROTO op_rfci (void)
+{
+ do_rfci();
+ RETURN();
+}
+
+void OPPROTO op_rfdi (void)
+{
+ do_rfdi();
+ RETURN();
+}
+
+void OPPROTO op_rfmci (void)
{
- do_4xx_rfci();
+ do_rfmci();
RETURN();
}
-void OPPROTO op_4xx_wrte (void)
+void OPPROTO op_wrte (void)
{
msr_ee = T0 >> 16;
RETURN();