OSDN Git Service

writemem.c: big-endian shifted one too many. Bug report by Snowel Xue
authorrfhh <rfhh@b68d4a1b-bc3d-0410-92ed-d4ac073336b7>
Tue, 17 Nov 2009 09:05:28 +0000 (09:05 +0000)
committerMasaki Muranaka <monaka at monami-software.com>
Thu, 17 Dec 2009 03:19:59 +0000 (12:19 +0900)
git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@1683 b68d4a1b-bc3d-0410-92ed-d4ac073336b7

urjtag/ChangeLog
urjtag/src/bus/writemem.c

index 8050492..83b7548 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-17  Rutger Hofman <rfhh>
+
+  * src/bus/writemem.c: big-endian write shifts one too much. Patch by
+    Snowel Xue
+
 2009-11-10  Arnim Laeuger  <arniml>
 
   * src/svf/svf.c: use urj_tap_chain_defer_clock() for state traversals
index 6f400b5..b0cc50c 100644 (file)
@@ -130,8 +130,8 @@ urj_bus_writemem (urj_bus_t *bus, FILE *f, uint32_t addr, uint32_t len)
         {
             if (urj_big_endian)
             {
+                data <<= 8;    /* first shift doesn't matter: data = 0 */
                 data |= b[bidx++];
-                data <<= 8;
             }
             else
                 data |= (b[bidx++] << ((step - j) * 8));