Hi Will,

On Wed, 25 Jul 2007 11:55:31 -0500 Will Schmidt <[EMAIL PROTECTED]> wrote:
>
> >     cmpwi   0,r24,0                 /* Are we processor 0? */
> > -   beq     .__start_initialization_iSeries /* Start up the first processor 
> > */
> > -   mfspr   r4,SPRN_CTRLF
> > +   bne     1f
> > +   b       .__start_initialization_iSeries /* Start up the first processor 
> > */
> > +1: mfspr   r4,SPRN_CTRLF
> >     li      r5,CTRL_RUNLATCH        /* Turn off the run light */
> 
> This part isnt clicking for me.. 
> How does changing a "beq" to a "bne" over a "b" fit into changing
> __start_initialization_iSeries static?  

Because I moved __start_initialization_iSeries into another section, it
ends up too far away for a conditional branch so something adds a jump
table to the .text section and changes this branch to be via that table.
Unfortunately, the jump table ends up at the start of the .text and ruins
our carefully laid out kernel image.  By inverting the test I can turn
the branch into an unconditional one which has a larger possible offse
(effectively building the jump table manually).

-- 
Cheers,
Stephen Rothwell                    [EMAIL PROTECTED]
http://www.canb.auug.org.au/~sfr/

Attachment: pgp3RK5JIJWjN.pgp
Description: PGP signature

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to