зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1530844 - Make push/pop pair for ecx conditional on previous ecx content r=mgaudet
The ECX register must contain the SHIFT amount. Before this change, ECX will always be push/pop during a SHIFT operation. However, ECX should only be push/pop if it's original contents are going to be overwritten. We now only push/pop ECX if it contains some arbituary value and hence will be overwritten by the SHIFT operation. Differential Revision: https://phabricator.services.mozilla.com/D22887 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
c92f0d2d4d
Коммит
26d5920802
|
@ -328,7 +328,10 @@ inline void FlexibleShift32(MacroAssembler& masm, Register shift,
|
|||
// Add registers we may clobber and want to ensure are restored as live, and
|
||||
// remove what we definitely clobber (the destination)
|
||||
LiveRegisterSet preserve;
|
||||
|
||||
if (shift != ecx) {
|
||||
preserve.add(ecx);
|
||||
}
|
||||
preserve.add(internalSrcDest);
|
||||
|
||||
preserve.takeUnchecked(srcDest);
|
||||
|
|
Загрузка…
Ссылка в новой задаче