[parisc-linux] Re: schedule_tail

Matthew Wilcox matthew@wil.cx
Thu, 22 Feb 2001 11:24:41 -0700


On Thu, Feb 22, 2001 at 02:43:31PM +0000, Richard Hirst wrote:
> On Fri, Feb 23, 2001 at 01:28:36AM +1100, Alan Modra wrote:
> > This is really crazy (or I am).  I replaced the calls to schedule_tail
> 
> This helps for me.  b,l disassembles as call, not b,l ...,rp:
> 
> ===================================================================
> RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/entry.S,v
> retrieving revision 1.72
> diff -u -r1.72 entry.S
> --- entry.S     2001/02/20 02:19:52     1.72
> +++ entry.S     2001/02/22 14:33:43
> @@ -509,7 +509,7 @@
>  
>         /* Call schedule_tail first though */
>  
> -       b,l     schedule_tail, %r2
> +       bl      schedule_tail, %r2

This is crazy.  entry.S is .level 2.0.  bl is not a pa2.0 opcode, b,l is!
What is going on?!

Wait.  Is it...

`The word displacement is assembled from the w, w1, w2, and (when the
,L completer is specified with GR 2 as the link register) w3 fields in
the instruction.''

which, iirc is not available on pa1.1 processors.  So here's the crucial
difference.  Not 32-bit vs 64-bit.  Not SMP vs UP.  But pa1.1 vs 2.0.

-- 
Revolutions do not require corporate support.