From 08bb05cdf30b3177f81909b556234ef8b966508c Mon Sep 17 00:00:00 2001 From: maartenbrock Date: Fri, 27 Aug 2004 13:52:48 +0000 Subject: [PATCH] * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were 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 | 5 +++++ src/hc08/gen.c | 18 +++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index e4f73696..9f5522d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-08-27 Maarten Brock + + * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were + copied and wrong bit got inverted + 2004-08-27 Erik Petrich * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from diff --git a/src/hc08/gen.c b/src/hc08/gen.c index 273a685f..b8721633 100644 --- a/src/hc08/gen.c +++ b/src/hc08/gen.c @@ -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); } /*-----------------------------------------------------------------*/ -- 2.47.2