2006-11-22 Tom Marn <tom.marn@telargo.com>
authorAndrew Cagney <cagney@redhat.com>
Wed, 29 Nov 2006 15:20:55 +0000 (15:20 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 29 Nov 2006 15:20:55 +0000 (15:20 +0000)
Committed by Andrew Cagney.
* ppc-instructions: Implement optional PowerPC stfiwx instruction.

sim/ppc/ChangeLog
sim/ppc/ppc-instructions

index 8915bea733d9a89efa234444e0dc9245e13e753d..5e17b8c98b56a4dca6ee070ad086830875b430e0 100644 (file)
@@ -1,3 +1,8 @@
+2006-11-22  Tom Marn <tom.marn@telargo.com>
+
+       Committed by Andrew Cagney.
+       * ppc-instructions: Implement optional PowerPC stfiwx instruction.
+       
 2006-07-12  Fred Fish  <fnf@specifix.com>
 
        * sim-endian.h (asm/byteorder.h): Don't include private kernel
index 1991c49309c785f39100a08399220dbc6836e356..5f3e13319f63cfb0e2d2a840154d55d34896ff20 100644 (file)
@@ -3644,6 +3644,18 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
        STORE(EA, 8, *frS);
        PPC_INSN_INT_FLOAT(0, 0, (RA_BITMASK & ~1) | RB_BITMASK, FRS_BITMASK);
 
+0.31,6.FRS,11.RA,16.RB,21.983,31./:X:f::Store Floating-Point Integer Word Indexed
+*603: PPC_UNIT_LSU,   PPC_UNIT_LSU,   1,  2,  0
+*603e:PPC_UNIT_LSU,   PPC_UNIT_LSU,   1,  2,  0
+*604: PPC_UNIT_LSU,   PPC_UNIT_LSU,   1,  3,  0
+       unsigned_word b;
+       unsigned_word EA;
+       if (RA_is_0) b = 0;
+       else         b = *rA;
+       EA = b + *rB;
+       STORE(EA, 4, *frS);
+       PPC_INSN_INT_FLOAT(0, 0, (RA_BITMASK & ~1) | RB_BITMASK, FRS_BITMASK);
+
 0.55,6.FRS,11.RA,16.D:D:f::Store Floating-Point Double with Update
 *601: PPC_UNIT_IU,    PPC_UNIT_IU,    1,  1,  0
 *603: PPC_UNIT_LSU,   PPC_UNIT_LSU,   1,  2,  0
@@ -4682,13 +4694,6 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
        FPSCR |= bit;
        FPSCR_END(Rc);
 
-
-#
-# I.A.1.1 Floating-Point Store Instruction
-#
-0.31,6.FRS,11.RA,16.RB,21.983,31./:X:f,o::Store Floating-Point as Integer Word Indexed
-       program_interrupt(processor, cia, optional_instruction_program_interrupt);
-
 #
 # I.A.1.2 Floating-Point Arithmetic Instructions
 #