Played around with byte scatters / gathers
authorBenjamin Segovia <segovia.benjamin@gmail.com>
Wed, 9 May 2012 12:45:00 +0000 (12:45 +0000)
committerKeith Packard <keithp@keithp.com>
Fri, 10 Aug 2012 23:17:16 +0000 (16:17 -0700)
backend/src/backend/gen_context.cpp
backend/src/backend/gen_eu.cpp

index 564b79c..9f8bd8b 100644 (file)
@@ -702,7 +702,7 @@ namespace gbe
         p->MOV(GenReg::ud8grf(113, 0), GenReg::retype(value, GEN_TYPE_UW));
       else if (elemSize == GEN_BYTE_SCATTER_BYTE)
         p->MOV(GenReg::ud8grf(113, 0), GenReg::retype(value, GEN_TYPE_UB));
-      p->BYTE_SCATTER(GenReg::f8grf(112, 0), 0, elemSize);
+      p->BYTE_SCATTER(GenReg::f8grf(112, 0), 1, elemSize);
     } else if (this->simdWidth == 16) {
       p->MOV(GenReg::f16grf(112, 0), GenReg::retype(address, GEN_TYPE_F));
       if (elemSize == GEN_BYTE_SCATTER_DWORD)
@@ -711,7 +711,7 @@ namespace gbe
         p->MOV(GenReg::ud16grf(114, 0), GenReg::retype(value, GEN_TYPE_UW));
       else if (elemSize == GEN_BYTE_SCATTER_BYTE)
         p->MOV(GenReg::ud16grf(114, 0), GenReg::retype(value, GEN_TYPE_UB));
-      p->BYTE_SCATTER(GenReg::f16grf(112, 0), 0, elemSize);
+      p->BYTE_SCATTER(GenReg::f16grf(112, 0), 1, elemSize);
     } else
       NOT_IMPLEMENTED;
   }
@@ -724,7 +724,7 @@ namespace gbe
     const GenReg value = this->genReg(insn.getValue(0));
     if (insn.isAligned() == true)
       this->emitUntypedWrite(insn, address, value);
-    else
+     else
       this->emitByteScatter(insn, address, value);
   }
 
index 1d1b77d..3353388 100644 (file)
@@ -37,6 +37,7 @@ namespace gbe
     this->curr.flag = 0;
     this->curr.subFlag = 0;
     this->curr.predicate = GEN_PREDICATE_NORMAL;
+    //this->curr.predicate = GEN_PREDICATE_NONE;
     this->curr.inversePredicate = 0;
   }