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