GBE: Use varying register to save one instruction
authorRuiling Song <ruiling.song@intel.com>
Mon, 14 Jul 2014 09:24:37 +0000 (17:24 +0800)
committerZhigang Gong <zhigang.gong@intel.com>
Tue, 15 Jul 2014 01:02:35 +0000 (09:02 +0800)
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
backend/src/backend/gen_insn_selection.cpp

index 2a2476e..4d35652 100644 (file)
@@ -2804,12 +2804,11 @@ namespace gbe
         GBE_ASSERT(elemSize == GEN_BYTE_SCATTER_WORD || elemSize == GEN_BYTE_SCATTER_BYTE);
 
         Register tmpReg = sel.reg(FAMILY_DWORD, simdWidth == 1);
-        GenRegister tmpAddr = GenRegister::udxgrf(simdWidth, sel.reg(FAMILY_DWORD, simdWidth == 1));
+        GenRegister tmpAddr = GenRegister::udxgrf(simdWidth, sel.reg(FAMILY_DWORD));
         GenRegister tmpData = GenRegister::udxgrf(simdWidth, tmpReg);
         // Get dword aligned addr
         sel.push();
           if (simdWidth == 1) {
-            sel.curr.execWidth = 1;
             sel.curr.noMask = 1;
           }
           sel.AND(tmpAddr, GenRegister::retype(address,GEN_TYPE_UD), GenRegister::immud(0xfffffffc));