>revision 1.2
>date: 2003/10/29 21:25:03; author: mycroft; state: Exp; lines: +40 -11
>As seen on tech-toolchain:
>
>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.
- add GPLUSPLUS_BACKWARD_INCLUDE_DIR to the INCLUDE_DEFAULTS includes
- define GPLUSPLUS_BACKWARD_INCLUDE_DIR, TOOLDIR_BASE_PREFIX,
STANDARD_BINDIR_PREFIX and STANDARD_LIBEXEC_PREFIX
- delete NETBSD_LIBGCC_SPEC
- define LIBGCC_PICSUFFIX as "_pic".
>PR/29832: J.T. Conklin: libstdc++ missing std::wstring support
>This wonderful patch together with yesterdays wcsftime addition, makes
>us able to use wide strings in c++
- add -Wno-attributes -Wno-pointer-sign to CWARNFLAGS.
- add -fno-strict-aliasing to CFLAGS [*]
our kernel again needs a bunch of work for this to be enabled.
- fix a couple of entries in struct lfs lfs_default:
- in a comment, it's called dlfs_freehd now
- dlfs_inodefmt comes after dlfs_tstamp. fortunately for this
one, LFS_44INODEFMT is also 0 so the right thing was happening.
This cuts Var_Parse in half! and allows the modifier logic to
be used recursively - when getting modifiers via variables.
Add new unit-test, to check that certain error cases are handled
correctly.