Here's some samples from quatern.i from stress-1.17 compiled with
-O2 -m4 -fnew-ra:
_Normal_Calc_z3:
...
mov.l r3,@-r15
mov.l r2,@-r15
...
fmov.s @r15+,fr2
fmov.s @r15+,fr3
...
mov.l r3,@-r15
mov.l r2,@-r15
...
fmov.s @r15+,fr6
fmov.s @r15+,fr7
...
mov.l r3,@-r15
mov.l r2,@-r15
fmov.s @r15+,fr14
fmov.s @r15+,fr15
...
fmov.s fr7,@-r15
fmov.s fr6,@-r15
mov.l @r15+,r10
mov.l @r15+,r11
...
fmov.s fr7,@-r15
fmov.s fr6,@-r15
mov.l @r15+,r2
mov.l @r15+,r3
...
fmov.s fr3,@-r15 <- do 16 memory load/stores to execute one
fmov.s fr2,@-r15 <- floating-point multiply
mov.l @r15+,r10
mov.l @r15+,r11
mov.l r11,@-r15
mov.l r10,@-r15
fmov.s @r15+,fr14
fmov.s @r15+,fr15
mov.l r3,@-r15
mov.l r2,@-r15
fmov.s @r15+,fr2
fmov.s @r15+,fr3
fmul dr2,dr14
fmov.s fr15,@-r15
fmov.s fr14,@-r15
mov.l @r15+,r10
mov.l @r15+,r11
,,,
mov.l @r15+,r2 <- load r2/r3...
mov.l @r15+,r3
fmov.s @r0,fr3
mov #8,r0
mov.l r3,@-r15 <- save back r2/r3 unchanged!!!
mov.l r2,@-r15
...
mov.l @r15+,r2 <- load r2/r3...
mov.l @r15+,r3
fmov.s @r0,fr7
mov #24,r0
mov.l r3,@-r15 <- save back r2/r3 unchanged!!!
mov.l r2,@-r15
...
mov.l @r15+,r2 <- load r2/r3...
mov.l @r15+,r3
mov.l r3,@-r15 <- save back r2/r3 unchanged!!!
mov.l r2,@-r15
...
mov.l @r15+,r10
mov.l @r15+,r11
mov.l r11,@-r15
mov.l r10,@-r15
...
mov.l @r15+,r2 <- load r2/r3
mov.l @r15+,r3
fmov.s @r0,fr3
mov #48,r0
mov.l r3,@-r15 <- save back r2/r3 unchanged!!!
mov.l r2,@-r15
...
mov.l @r15+,r2
mov.l @r15+,r3
fmov.s @r0,fr3
mov #48,r0
mov.l r3,@-r15
mov.l r2,@-r15
...
mov.l @r15+,r2
mov.l @r15+,r3
fmov.s @r0,fr7
mov #72,r0
mov.l r3,@-r15
mov.l r2,@-r15
...
Have any idea what's going on?
Toshi