diff options
-rw-r--r-- | sim/ChangeLog | 4 | ||||
-rw-r--r-- | sim/ppc/ppc-instructions | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/sim/ChangeLog b/sim/ChangeLog index bc3c894..b0a75b7 100644 --- a/sim/ChangeLog +++ b/sim/ChangeLog @@ -1,3 +1,7 @@ +2013-04-19 Nathan Froyd <froydnj@codesourcery.com> + + * ppc-instructions (isel): New instruction. + 2013-03-15 Steve Ellcey <sellcey@mips.com> * arm/wrapper.c (sim_complete_command): Make char arguments const. diff --git a/sim/ppc/ppc-instructions b/sim/ppc/ppc-instructions index 1b8fd89..d76a765 100644 --- a/sim/ppc/ppc-instructions +++ b/sim/ppc/ppc-instructions @@ -3455,6 +3455,19 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia, PPC_INSN_MFCR(RT_BITMASK); # +# I.3.3.15 Fixed-Point Select +# + +0.31,6.RT,11.RA,16.RB,21.BF,26.15,31./:A::isel:Integer Select + unsigned_word a; + if (RA_is_0) a = 0; + else a = *rA; + if (CR & (1 << (31 - BF))) + *rT = a; + else + *rT = *rB; + +# # I.4.6.2 Floating-Point Load Instructions # |