[parisc-linux] Need help to improve uaccess.h patch

John David Anglin dave@hiauly1.hia.nrc.ca
Sat, 5 Oct 2002 18:10:12 -0400 (EDT)


> >>+                "\t.section __ex_table,\"a\"\n"             \
> >>+                 "\t.word\t1b\n"                            \
> >>+                 "\t.word\t(3b-1b)+1\n"                     \
> >>+                 "\t.word\t2b\n"                            \
> >>+                 "\t.word\t(3b-2b)+1\n"                     \
> > 
> > 
> > what's with the +1?
> 
> That is my main doubt :(
> In this uaccess.h, I read (but i am not quit sure to have understand all 
>   fine aspect) that we have to 'jump' after the erronious code (for me 
> 3b-[12]b + 1 ? am i wrong? ). And understand +3 in get_user_asm because 
> we would have to jump after the cast "(x) = (__typeof__(*(ptr))) 
> __gu_val;". Is it wrong?

I may be wrong but I think the code is trying to build a PLABEL.  In
which case, the value should be 2 or 3.  The least significant bit is
not used.  See the runtime architecture manual for more info on PLABELs.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)