2000-12-04 Ben Elliston <bje@redhat.com>
[deliverable/binutils-gdb.git] / sim / common / cgen-ops.h
index 83f4459242f1f94c8eca1555eca53965e3306e94..d829e930e757d8954b5fdfa9ce7ff383940df540 100644 (file)
@@ -323,21 +323,28 @@ SEMOPS_INLINE QI
 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
@@ -450,6 +457,7 @@ HI SUBWORDSIHI (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);
This page took 0.025991 seconds and 4 git commands to generate.