アセンブリ吐かせてみると,
! 19 v = vis_pdist( i, j, v ); ldd [%fp+2023],%f0 srl %i4,0,%l0 stx %l0,[%fp+2007] ldd [%fp+2007],%f6 fxtod %f6,%f2 srl %i5,0,%l0 stx %l0,[%fp+2007] ldd [%fp+2007],%f6 fxtod %f6,%f4 nop pdist %f2,%f4,%f0 std %f0,[%fp+2023]
なんで fxtod されてるの? fxtod しないように書き直したら 期待どおりになった。あと,最初に間違ってたのはこれとは関係なくて, *destinationの* freg に予め 0 を詰めてなかったからだった。とりあえず解決?
: fzero %f0 pdist %f2, %f4, %f0 :