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