b9c785bd44
So the problem is thus: * The {u,}mulsidi3 generate two parallel sets which modify the upper and lower halves of the target register. * life_analysis() does not track subregister modifications -- if you don't modify the whole register with a single set, it considers the register unused. The simple, if klugy, solution to this is to stick an explicit clobber in. It seems to work. While doing this, I noticed that constant folding was not happening for 32x32->64 multiplies. This is because the parallel set generated by {u,}mulsidi3 cannot be folded at all. To solve this, I first expand to a normal multiply, and then use a define_insn_and_split to convert it to the parallel set after CSE and constant folding. This patch has also been submitted to GCC bugzilla, but who knows if I'll get a reply to that. |
||
---|---|---|
.. | ||
dist | ||
lib | ||
libexec | ||
usr.bin | ||
usr.sbin | ||
Makefile | ||
README |
$NetBSD: README,v 1.4 2002/09/22 09:47:56 wiz Exp $ Organization of Sources: This directory hierarchy is using a new organization that separates the GNU sources from the BSD-style infrastructure used to build the GNU sources. The GNU sources are kept in the standard GNU source tree layout under: dist/* The build infrastructure uses the normal BSD way under: lib/* usr.bin/* The makefiles in the above hierarchy will "reach over" into the GNU sources (src/gnu/dist) for everything they need. Maintenance Strategy: The sources under src/gnu/dist are generally a combination of some published distribution plus changes that we submit to the maintainers and that are not yet published by them. There are a few files that are never expected to be submitted to the FSF, (i.e. BSD-style makefiles and such) and those generally should stay in src/gnu/lib or src/gnu/usr.bin (the BSD build areas). Make sure all changes made to the GNU sources are submitted to the appropriate maintainer, but only after coordinating with the NetBSD maintainers by sending your proposed submission to the <tech-toolchain@netbsd.org> mailing list. Only send the changes to the third-party maintainers after consensus has been reached.