I wrote:
> I'm forced to the conclusion that the important difference between
> snapper and skate is that the latter uses --enable-cassert and the
> former doesn't, because that's the only remaining difference between
> how I built a working version before and the not-working version
> I have right now.

Confirmed: building gistget with --enable-cassert, and all of snapper's
compile/link options, produces something that passes regression.

The generated asm differs in a whole lot of details, but it looks like
the compiler remembers to annul the branch delay slot in all the
relevant places:

        .loc 1 163 0
        addcc   %l7, -1, %l7
.L186:
        be,pn   %icc, .L80
         add    %l6, 48, %l6
...
        .loc 1 189 0
        be,a,pt %icc, .L186
         addcc  %l7, -1, %l7
...
        .loc 1 183 0
        lduh    [%g4+12], %g4
        andcc   %g4, 1, %g0
        be,a,pt %icc, .L186
         addcc  %l7, -1, %l7
        andcc   %o7, 0xff, %g0
        bne,a,pt %icc, .L186
         addcc  %l7, -1, %l7


                        regards, tom lane


Reply via email to