Quoting David Kastrup <d...@gnu.org>:

That would have been my most likely guess.  Probably the "min" function
call.

You are absolultely right! I was able to work around the gcc bug by making a separate function for Moment comparison and using it instead of min():

Moment
min_moment (Moment m1, Moment m2)
{
  return min (m1, m2);
}

That's x64_64 assembly.  Please let me know if you want i386 assembly.

Would definitely help with my limited vocabulary.  This is enough of a
headacher without secondguessing the instruction set.

OK, I made files with -O1 and -O2 from the files that only differ in that the "original" uses min() and the "workaround" uses min_moment(). Of the four files, simultaneous-music-iterator-O2-original.s is the only one broken (I tested).

Please let me know it you need anything else.

--
Regards,
Pavel Roskin

Attachment: simultaneous-music-iterator.tar.bz2
Description: application/bzip

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to