On Wed, 2 Mar 2016 17:24:12 +0100
Peter Zijlstra <pet...@infradead.org> wrote:

> On Wed, Mar 02, 2016 at 04:53:36PM +0100, Sedat Dilek wrote:
> > ffffffff8110f570 <del_timer_sync>:
> > ffffffff8110f570:   55                      push   %rbp
> > ffffffff8110f571:   48 89 e5                mov    %rsp,%rbp
> > ffffffff8110f574:   41 57                   push   %r15
> > ffffffff8110f576:   41 56                   push   %r14
> > ffffffff8110f578:   53                      push   %rbx
> > ffffffff8110f579:   48 83 ec 28             sub    $0x28,%rsp  
> 
> stack offset is 0x28 bytes [*]

Actually, isn't it really 0x40 bytes? The stack pushed 3 words (8 bytes
each) before doing the subtract. 0x28 == 40 bytes, 3 * 8 = 24,
40 + 24 = 64 == 0x40.

> 
> > ffffffff8110f57d:   48 89 fb                mov    %rdi,%rbx
> > ffffffff8110f580:   e8 6b 6e 80 00          callq  ffffffff819163f0 <mcount>
> > ffffffff8110f585:   e8 66 6e 80 00          callq  ffffffff819163f0 <mcount>
> > ffffffff8110f58a:   e8 61 6e 80 00          callq  ffffffff819163f0 <mcount>
> > ffffffff8110f58f:   e8 5c 6e 80 00          callq  ffffffff819163f0 
> > <mcount>  
> 
> Your compiler is on drugs!

Totally agree!


[..]

> 
> > ffffffff8110f5fd:   4c 89 75 d0             mov    %r14,-0x30(%rbp)
> > ffffffff8110f601:   ff 75 d0                pushq  -0x30(%rbp)
> > ffffffff8110f604:   9d                      popfq    
> 
> put r14 into -0x30(rbp) and pushes/pops that, see [*] this is 8 bytes
> over stack ?!

But from rbp, the stack is 0x40 bytes. This may be fine.

-- Steve

Reply via email to