2000-12-04 Ben Elliston <bje@redhat.com>
+ * cgen-ops.h (SUBWORDSIQI): Mask off top bits.
+ (SUBWORDSIUQI): Likewise.
+ (SUBWORDDIHI): Likewise.
+ (SUBWORDDIQI): New function.
+
* cgen-trace.c (disassemble_insn): Remove unused declaration.
* cgen-scache.c (scache_option_handler): Remove unused local var.
SUBWORDSIQI (SI in, int byte)
{
assert (byte >= 0 && byte <= 3);
- return (UQI) (in >> (8 * (3 - byte)));
+ return (UQI) (in >> (8 * (3 - byte))) & 0xFF;
}
SEMOPS_INLINE UQI
SUBWORDSIUQI (SI in, int byte)
{
assert (byte >= 0 && byte <= 3);
- return (UQI) (in >> (8 * (3 - byte)));
+ return (UQI) (in >> (8 * (3 - byte))) & 0xFF;
+}
+
+SEMOPS_INLINE QI
+SUBWORDDIQI (DI in, int byte)
+{
+ assert (byte >= 0 && byte <= 7);
+ return (UQI) (in >> (8 * (7 - byte))) & 0xFF;
}
SEMOPS_INLINE HI
SUBWORDDIHI (DI in, int word)
{
assert (word >= 0 && word <= 3);
- return (UHI) (in >> (16 * (3 - word)));
+ return (UHI) (in >> (16 * (3 - word))) & 0xFFFF;
}
SEMOPS_INLINE HI
SI SUBWORDSFSI (SF);
SF SUBWORDSISF (SI);
DF SUBWORDDIDF (DI);
+QI SUBWORDDIQI (DI, int);
HI SUBWORDDIHI (DI, int);
SI SUBWORDDISI (DI, int);
SI SUBWORDDFSI (DF, int);