Hi,
Measurements from three older processors. Interesting that
the timings vary less than 0.5% for the second one.
pre-P4 (SSE1)
clearing 81920 local bytes ...
31197 cycles for ZEROLOCALES, eax+ecx+edx trashed
41399 cycles for cll, eax trashed
62224 cycles for ClearLocVars macro, eax trashed
41436 cycles for call ClearLocalsB, eax trashed
41474 cycles for call ClearLocals, ALL regs preserved (old MB)
41589 cycles for ClearLocalVariables, ALL regs preserved (new MB)
31155 cycles for ZEROLOCALES, eax+ecx+edx trashed
41436 cycles for cll, eax trashed
62100 cycles for ClearLocVars macro, eax trashed
41535 cycles for call ClearLocalsB, eax trashed
41452 cycles for call ClearLocals, ALL regs preserved (old MB)
41455 cycles for ClearLocalVariables, ALL regs preserved (new MB)
31256 cycles for ZEROLOCALES, eax+ecx+edx trashed
41477 cycles for cll, eax trashed
62134 cycles for ClearLocVars macro, eax trashed
41688 cycles for call ClearLocalsB, eax trashed
41778 cycles for call ClearLocals, ALL regs preserved (old MB)
41769 cycles for ClearLocalVariables, ALL regs preserved (new MB)
pre-P4clearing 81920 local bytes ...
260560 cycles for ZEROLOCALES, eax+ecx+edx trashed
259603 cycles for cll, eax trashed
259593 cycles for ClearLocVars macro, eax trashed
259489 cycles for call ClearLocalsB, eax trashed
259370 cycles for call ClearLocals, ALL regs preserved (old MB)
259537 cycles for ClearLocalVariables, ALL regs preserved (new MB)
259917 cycles for ZEROLOCALES, eax+ecx+edx trashed
259498 cycles for cll, eax trashed
259613 cycles for ClearLocVars macro, eax trashed
259542 cycles for call ClearLocalsB, eax trashed
259394 cycles for call ClearLocals, ALL regs preserved (old MB)
260441 cycles for ClearLocalVariables, ALL regs preserved (new MB)
259784 cycles for ZEROLOCALES, eax+ecx+edx trashed
259419 cycles for cll, eax trashed
259618 cycles for ClearLocVars macro, eax trashed
259628 cycles for call ClearLocalsB, eax trashed
260104 cycles for call ClearLocals, ALL regs preserved (old MB)
259610 cycles for ClearLocalVariables, ALL regs preserved (new MB)
Intel(R) Pentium(R) M processor 1.70GHz (SSE2)
clearing 81920 local bytes ...
20912 cycles for ZEROLOCALES, eax+ecx+edx trashed
41490 cycles for cll, eax trashed
41619 cycles for ClearLocVars macro, eax trashed
41554 cycles for call ClearLocalsB, eax trashed
41613 cycles for call ClearLocals, ALL regs preserved (old MB)
41542 cycles for ClearLocalVariables, ALL regs preserved (new MB)
20843 cycles for ZEROLOCALES, eax+ecx+edx trashed
41566 cycles for cll, eax trashed
41487 cycles for ClearLocVars macro, eax trashed
41507 cycles for call ClearLocalsB, eax trashed
41530 cycles for call ClearLocals, ALL regs preserved (old MB)
41524 cycles for ClearLocalVariables, ALL regs preserved (new MB)
20849 cycles for ZEROLOCALES, eax+ecx+edx trashed
41524 cycles for cll, eax trashed
41519 cycles for ClearLocVars macro, eax trashed
41546 cycles for call ClearLocalsB, eax trashed
41551 cycles for call ClearLocals, ALL regs preserved (old MB)
41546 cycles for ClearLocalVariables, ALL regs preserved (new MB)
Regards,
Steve N.