TIC80 uses little endian doubles, not big endian
authorMichael Meissner <gnu@the-meissners.org>
Sat, 14 Feb 1998 00:59:44 +0000 (00:59 +0000)
committerMichael Meissner <gnu@the-meissners.org>
Sat, 14 Feb 1998 00:59:44 +0000 (00:59 +0000)
sim/tic80/ChangeLog
sim/tic80/insns

index e5d485078c3161ac3b428a6fb53b615f4adc4a52..91d6685be220c25b9f55d498c3273f8745ae7616 100644 (file)
@@ -1,5 +1,8 @@
 Fri Feb 13 17:11:22 1998  Michael Meissner  <meissner@cygnus.com>
 
+       * insns ({get,set}_fp_reg): Tic80 floating point is little endian,
+       not big endian.
+
        * misc.c (tic80_trace_fpu*): Pass address of sim_fpu structure,
        not the structure itself.  Use %g consistantly to print floating
        point.
index 896443fc6de62bffb9595c39d4b8d8b3f244fd21..4ffc6c5c13456e2487219a196aa83903e3ef4159 100644 (file)
@@ -447,7 +447,7 @@ sim_fpu::function::get_fp_reg:int reg, unsigned32 val, int precision
              sim_engine_abort (SD, CPU, cia, "DP FP register must be even");
            if (reg <= 1)
              sim_engine_abort (SD, CPU, cia, "DP FP register must be >= 2");
-           sim_fpu_232to (&ans, GPR (reg), GPR (reg + 1));
+           sim_fpu_232to (&ans, GPR (reg + 1), GPR (reg));
            break;
          case 2: /* 32 bit signed integer */
            sim_fpu_i32to (&ans, val, 0);
@@ -473,7 +473,7 @@ void::function::set_fp_reg:int Dest, sim_fpu val, int PD
                sim_engine_abort (SD, CPU, cia, "DP FP Dest register must be even");
              if (Dest <= 1)
                sim_engine_abort (SD, CPU, cia, "DP FP Dest register must be >= 2");
-             sim_fpu_to232 (&GPR (Dest + 0), &GPR (Dest + 1), &val);
+             sim_fpu_to232 (&GPR (Dest + 1), &GPR (Dest + 0), &val);
              break;
            }
          case 2: /* signed */