* ppc-instructions (lfsux): Correct XO field of lfsux instruction.
[deliverable/binutils-gdb.git] / sim / ppc / ppc-instructions
index 6ebe0812e7a4003405246f6842cf2b7ac0d217f0..25a9d78c6852f43b6e93155867b0da8346c21348 100644 (file)
@@ -1440,7 +1440,7 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
 *603: PPC_UNIT_BPU,   PPC_UNIT_BPU,   1,  1,  0
 *603e:PPC_UNIT_BPU,   PPC_UNIT_BPU,   1,  1,  0
 *604: PPC_UNIT_BPU,   PPC_UNIT_BPU,   1,  1,  0
-       /* WITH_OPTION_MPC860C0
+       /* option_mpc860c0:
        No problem here because this branch is predicted taken (unconditional). */
        if (AA) NIA = IEA(EXTS(LI_0b00));
        else    NIA = IEA(CIA + EXTS(LI_0b00));
@@ -1469,9 +1469,8 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
        else
          succeed = 0;
        if (LK) LR = (spreg)IEA(CIA + 4);
-       #ifdef WITH_OPTION_MPC860C0
-       if (option_mpc860c0 && (BO{0} && BO{2} || !BO{4})) {
-         /* This branch is predicted as not-taken.
+       if (option_mpc860c0 && (!BO{0} || !BO{2}) && !BO{4}) {
+         /* This branch is predicted as "normal".
          If this is a forward branch and it is near the end of a page,
          we've detected a problematic branch. */
          if (succeed && NIA > CIA) {
@@ -1479,7 +1478,6 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
              program_interrupt(processor, cia, mpc860c0_instruction_program_interrupt);
          }
        }
-       #endif // WITH_OPTION_MPC860C0
        if (CURRENT_MODEL_ISSUE > 0)
          model_branches(cpu_model(processor), succeed, BO);
        if (! BO{0}) {
@@ -1513,8 +1511,7 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
        else
          succeed = 0;
        if (LK) LR = (spreg)IEA(CIA + 4);
-       #ifdef WITH_OPTION_MPC860C0
-       if (option_mpc860c0 && (BO{0} && BO{2} || !BO{4})) {
+       if (option_mpc860c0 && (!BO{0} || !BO{2}) && !BO{4}) {
          /* This branch is predicted as not-taken.
          If this is a forward branch and it is near the end of a page,
          we've detected a problematic branch. */
@@ -1523,7 +1520,6 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
              program_interrupt(processor, cia, mpc860c0_instruction_program_interrupt);
          }
        }
-       #endif // WITH_OPTION_MPC860C0
        if (CURRENT_MODEL_ISSUE > 0) {
          model_branches(cpu_model(processor), succeed, BO);
          if (! BO{0})
@@ -1546,8 +1542,7 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
        else
          succeed = 0;
        if (LK) LR = (spreg)IEA(CIA + 4);
-       #ifdef WITH_OPTION_MPC860C0
-       if (option_mpc860c0 && (BO{0} && BO{2} || !BO{4})) {
+       if (option_mpc860c0 && (!BO{0} || !BO{2}) && !BO{4}) {
          /* This branch is predicted as not-taken.
          If this is a forward branch and it is near the end of a page,
          we've detected a problematic branch. */
@@ -1556,7 +1551,6 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
              program_interrupt(processor, cia, mpc860c0_instruction_program_interrupt);
          }
        }
-       #endif // WITH_OPTION_MPC860C0
        if (CURRENT_MODEL_ISSUE > 0) {
          model_branches(cpu_model(processor), succeed, BO);
          if (! BO{0})
@@ -3432,7 +3426,7 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
        *rA = EA;
        PPC_INSN_INT_FLOAT(RA_BITMASK, FRT_BITMASK, (RA_BITMASK & ~1), 0);
 
-0.31,6.FRT,11.RA,16.RB,21.576,31./:X:f::Load Floating-Point Single with Update Indexed
+0.31,6.FRT,11.RA,16.RB,21.567,31./:X:f::Load Floating-Point Single with Update Indexed
 *601: PPC_UNIT_IU,    PPC_UNIT_IU,    3,  3,  0
 *603: PPC_UNIT_LSU,   PPC_UNIT_LSU,   1,  2,  0
 *603e:PPC_UNIT_LSU,   PPC_UNIT_LSU,   1,  2,  0
@@ -4288,7 +4282,7 @@ void::function::invalid_zero_divide_operation:cpu *processor, unsigned_word cia,
          }
            /* G|R|X == zero from above */
            while (exp < -126) {
-             exp = exp - 1;
+             exp = exp + 1;
              frac_grx = (INSERTED64(EXTRACTED64(frac_grx, 0, 54), 1, 55)
                          | MASKED64(frac_grx, 55, 55));
            }
This page took 0.050131 seconds and 4 git commands to generate.