------- Comment #1 from rguenth at gcc dot gnu dot org  2007-09-08 20:40 -------
VS seems to dispatch to some other function.  Dependend on whether the method
is virtual or not the code path has to be more complicated.  Of course this is
also dependent on the actual ABI.  That is,

L7:
        leal    (%ebx,%edx), %edx
        movl    %edx, 8(%ebp)
        popl    %ebx
        popl    %ebp
        jmp     *%ecx

is the equivalent to the direct jump, and the rest involves loading the
vtable pointer.

        leal    (%ebx,%edx), %edx
        movl    (%edx), %eax
        movl    -1(%eax,%ecx), %ecx
        movl    %edx, 8(%ebp)
        popl    %ebx
        popl    %ebp
        jmp     *%ecx

and of course the check if this is a virtual method or not.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33358

Reply via email to