diff options
Diffstat (limited to 'sim/ppc/ppc-instructions')
-rw-r--r-- | sim/ppc/ppc-instructions | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sim/ppc/ppc-instructions b/sim/ppc/ppc-instructions index 9f97734..70aa04e 100644 --- a/sim/ppc/ppc-instructions +++ b/sim/ppc/ppc-instructions @@ -331,7 +331,7 @@ void::model-static::model_trace_release:model_data *model_ptr, model_busy *busy } } if (busy->vscr_busy) - TRACE(trace_model, ("VSCR Register is now available.\n", spr_name(busy->spr_busy))); + TRACE(trace_model, ("VSCR Register %s is now available.\n", spr_name(busy->spr_busy))); # Trace making registers busy void::model-static::model_trace_make_busy:model_data *model_ptr, unsigned32 int_mask, unsigned32 fp_mask, unsigned32 cr_mask @@ -3315,7 +3315,6 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia, unsigned64 mask; int n = MASKED(*rB, 59, 63); signed32 source = (signed32)*rS; /* signed to keep sign bit */ - signed32 shifted = source >> n; int S = (MASKED(*rS,32,32) != 0); signed64 r = ((unsigned64) source); r = ((unsigned64) source) << 32 | (unsigned32) source; @@ -3324,7 +3323,7 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia, mask = (unsigned64) MASK64(n+32,63); else mask = (unsigned64) 0; - *rA = (signed_word) (r & mask | ((signed64) -1*S) & ~mask); /* if 64bit will sign extend */ + *rA = (signed_word) ((r & mask) | (((signed64) -1*S) & ~mask)); /* if 64bit will sign extend */ if (S && (MASKED(r & ~mask,32,63)!=0)) XER |= xer_carry; else |