Selaa lähdekoodia

* set mm register subreg properly when cleaning them with xor

git-svn-id: trunk@45721 -
florian 5 vuotta sitten
vanhempi
commit
b7ef93030a
1 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 3 2
      compiler/hlcgobj.pas

+ 3 - 2
compiler/hlcgobj.pas

@@ -4924,8 +4924,9 @@ implementation
            LOC_CMMREGISTER :
            LOC_CMMREGISTER :
              { clear the whole register }
              { clear the whole register }
              a_opmm_reg_reg(TAsmList(arg),OP_XOR,tstaticvarsym(p).vardef,
              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);
                nil);
            LOC_CFPUREGISTER :
            LOC_CFPUREGISTER :
              begin
              begin