]> git.gag.com Git - fw/sdcc/commitdiff
* src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
authormaartenbrock <maartenbrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 27 Aug 2004 13:52:48 +0000 (13:52 +0000)
committermaartenbrock <maartenbrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 27 Aug 2004 13:52:48 +0000 (13:52 +0000)
  copied and wrong bit got inverted

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3451 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/hc08/gen.c

index e4f7369671b6b8cd0e42f3d72e9e93c6210763c8..9f5522d1ee1ec964c0fa0de3f4be4104a3c203b8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
+         copied and wrong bit got inverted
+
 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
 
        * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
index 273a685f0e2a8f247244c9a5d1dc1a7f93cbbda3..b87216333edd0fa3c1811405e649d57db8a1650b 100644 (file)
@@ -2331,20 +2331,16 @@ genUminusFloat (operand * op, operand * result)
 
   while (size--)
     {
-      if (!size)
-        {
-          needpula = pushRegIfUsed (hc08_reg_a);
-          loadRegFromAop (hc08_reg_a, AOP (op), offset);
-          emitcode ("eor", "#0x80");
-          hc08_useReg (hc08_reg_a);
-          storeRegToAop (hc08_reg_a, AOP (result), offset);
-          pullOrFreeReg (hc08_reg_a, needpula);
-        }
-      else
-        transferAopAop (AOP (op), offset, AOP (result), offset);
+      transferAopAop (AOP (op), offset, AOP (result), offset);
       offset++;
     }
 
+  needpula = pushRegIfUsed (hc08_reg_a);
+  loadRegFromAop (hc08_reg_a, AOP (op), offset);
+  emitcode ("eor", "#0x80");
+  hc08_useReg (hc08_reg_a);
+  storeRegToAop (hc08_reg_a, AOP (result), offset);
+  pullOrFreeReg (hc08_reg_a, needpula);
 }
 
 /*-----------------------------------------------------------------*/