On Fri, Sep 01, 2000 at 03:15:27PM +0200, Andi Kleen wrote:
> The previous analysis was not quite right though (%cl is actually loaded,
> just %eax gets bogus input from the long long shift) 

Perhaps, but it's sure not obvious:

        bh->b_blocknr = (long)mp->pbm_bn +
                (mp->pbm_offset >> inode->i_sb->s_blocksize_bits);
        bh->b_blocknr >>= block_bits;

        movl %eax,20(%esp)      ; store shifted pbm_offset to temporary
        movl %edx,24(%esp)      ; "
        movl 20(%esp),%eax      ; load low part
        addl (%esi),%eax        ; b_blocknr = pbm_bn + pbm_offset
        movl %ebp,%ecx          ; load block_bits
        shrl %cl,%eax           ; b_blocknr >> block_bits

I've not got 2.95 handy, and your test case isn't executable,
so its difficult to see exactly what might be wrong here.



r~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to