Explorar o código

* set mm register subreg properly when cleaning them with xor

git-svn-id: trunk@45721 -
florian %!s(int64=5) %!d(string=hai) anos
pai
achega
b7ef93030a
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  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