aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/ppc-instructions
diff options
context:
space:
mode:
Diffstat (limited to 'sim/ppc/ppc-instructions')
-rw-r--r--sim/ppc/ppc-instructions5
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