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 majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:11 EST