Bladeren bron

* set mm register subreg properly when cleaning them with xor

git-svn-id: trunk@45721 -
florian 5 jaren geleden
bovenliggende
commit
b7ef93030a
1 gewijzigde bestanden met toevoegingen van 3 en 2 verwijderingen
  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