[commit] Fix some word ordering bugs in sim/common/cgen-ops.h
Doug Evans
dje@sebabeach.org
Fri Jan 22 08:25:00 GMT 2010
Hi.
fyi, I checked this in.
2010-01-22 Doug Evans <dje@sebabeach.org>
* cgen-ops.h (SUBWORDXFSI): Fix word ordering.
(SUBWORDTFSI, JOINSIDI): Ditto.
Index: cgen-ops.h
===================================================================
RCS file: /cvs/src/src/sim/common/cgen-ops.h,v
retrieving revision 1.12
diff -u -p -r1.12 cgen-ops.h
--- cgen-ops.h 1 Jan 2010 10:03:27 -0000 1.12
+++ cgen-ops.h 22 Jan 2010 08:20:24 -0000
@@ -404,7 +404,10 @@ SUBWORDXFSI (XF in, int word)
/* Note: typedef struct { SI parts[3]; } XF; */
union { XF in; SI out[3]; } x;
x.in = in;
- return x.out[word];
+ if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)
+ return x.out[word];
+ else
+ return x.out[2 - word];
}
SEMOPS_INLINE SI
@@ -413,16 +416,16 @@ SUBWORDTFSI (TF in, int word)
/* Note: typedef struct { SI parts[4]; } TF; */
union { TF in; SI out[4]; } x;
x.in = in;
- return x.out[word];
+ if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)
+ return x.out[word];
+ else
+ return x.out[3 - word];
}
SEMOPS_INLINE DI
JOINSIDI (SI x0, SI x1)
{
- if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)
- return MAKEDI (x0, x1);
- else
- return MAKEDI (x1, x0);
+ return MAKEDI (x0, x1);
}
SEMOPS_INLINE DF
More information about the Gdb-patches
mailing list