瀏覽代碼

* set mm register subreg properly when cleaning them with xor

git-svn-id: trunk@45721 -
florian 5 年之前
父節點
當前提交
b7ef93030a
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      compiler/hlcgobj.pas

+ 3 - 2
compiler/hlcgobj.pas

@@ -4924,8 +4924,9 @@ implementation
            LOC_CMMREGISTER :
              { clear the whole register }
              a_opmm_reg_reg(TAsmList(arg),OP_XOR,tstaticvarsym(p).vardef,
-               tstaticvarsym(p).initialloc.register,
-               tstaticvarsym(p).initialloc.register,
+               { as we pass shuffle=nil, we have to pass a full register }
+               newreg(R_MMREGISTER,getsupreg(tstaticvarsym(p).initialloc.register),R_SUBMMWHOLE),
+               newreg(R_MMREGISTER,getsupreg(tstaticvarsym(p).initialloc.register),R_SUBMMWHOLE),
                nil);
            LOC_CFPUREGISTER :
              begin