From 55f5e3a41bef7d1016c507529057e46d9151d914 Mon Sep 17 00:00:00 2001 From: gbeauche <> Date: Thu, 30 Jun 2005 07:34:17 +0000 Subject: [PATCH] Fix CR save/restore in EmulOp thunk. I don't know what it fixes for real but that was definitely wrong to only preserve CR2 there. --- SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp b/SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp index 81ca17ed..65c71209 100644 --- a/SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp +++ b/SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp @@ -269,7 +269,7 @@ void sheepshaver_cpu::execute_emul_op(uint32 emul_op) for (int i = 0; i < 7; i++) r68.a[i] = gpr(16 + i); r68.a[7] = gpr(1); - uint32 saved_cr = get_cr() & CR_field<2>::mask(); + uint32 saved_cr = get_cr() & 0xff9fffff; // mask_operand::compute(11, 8) uint32 saved_xer = get_xer(); EmulOp(&r68, gpr(24), emul_op); set_cr(saved_cr);