https://bugs.kde.org/show_bug.cgi?id=385843

--- Comment #5 from Ivo Raisr <iv...@ivosh.net> ---
Your fix touches register allocation. It is crucial that both ARMInstr_Call()
and  getRRegUniverse_ARM() are kept in sync (hinted in getRRegUniverse_ARM as
well)
and that register allocator is presented with the workable set of registers.

By marking all Q ones as caller saved (trashed for call), register allocator
would need to spill them all before the call. This creates a performance
penalty and bloats the generated r-code.

Would you try running Memcheck on a program which uses 128-bit VFP (q)
registers  with '--stats=yes' and note the difference on 'ratio' reported?

How prevalent are programs utilizing 128-bit VFP registers compared to 64-bit
ones? In other words, are compilers (gcc) likely to utilize those registers a
lot?


A clue for your answer might lie in the document you cited first:
"Registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine calls;
registers s0-s15 (d0-d7, q0-q3) do not need to be preserved (and can be used
for passing arguments or returning results in standard procedure-call
variants). Registers d16-d31 (q8-q15), if present, do not need to be
preserved."

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to