John David Anglin
Mon, 22 Nov 1999 13:11:29 -0500 (EST)
> > I tried this and it didn't work. It looks like __delay() is broken. The
> > ".balignl" is clearly bogus.
> Oh. Why ? The way it is intended is to align the following code to a 64-byte
> boundary (cache lines on current PA2.0 CPUs are 64 bytes, I think) using nops.
Missed this point because of the strange nop. The current addib loop is 3
instructions. Alignment to a multiple of 16 should be good enough to
ensure that the loop lies within a cache line. This would insert a maximum
of 3 nops before the loop. This would provide a slightly more deterministic
Also, re the BogoMIPS number, I think this should be (loops_per_sec*3)/2000000
(i.e., there is one addib and 0.5 nop instructions per loop when the
number of iterations is large. The number that is currently printed is
The simple loop "addib,NUV,n .;nop" is slower but more deterministic. It
only needs an alignment of 8 (at most one nop). The number of instructions
per loop is 2*N-1.
J. David Anglin email@example.com
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)