This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -mpower4 sched2 bug miscompiles linux kernel


>>>>> Alan Modra writes:

Alan> Works OK, but tends to use more registers.  eg. the testcase code I
Alan> posted compiled with "-O2 -mstring" gives:

	Well, copy means copy. :-)

	To some extent this degradation is artificial because the PowerPC
string instructions treat the GPRs as 32-bit words, not 64-bit doublewords
(there are no ldsi and stdsi instructions).  And store_on_arg demands that
expand_block_move handle the size of the parameter area, whether that is
efficient or not, which means 64 bytes in 64-bit mode.

	In 32-bit mode, one will never call movstrsi more than once and
never allocate more registers than before.  64-bit mode normally does not
enable string instructions.  I don't think this is a real problem.  I am
more confident that this version always produces correct results and uses
the GCC internals correctly so that the block move code no longer is lying
to the backend.

	I would go ahead and check this version in.

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]