FPU Bounds [Was: Re: openssh4.0 upgrade]

Matthew Dillon dillon at apollo.backplane.com
Wed Mar 23 01:56:13 PST 2005

    This is what GCC-3.4 generates with the stdarg.h commit you made
    (noting here that all you really did was replace our manual va_arg
    with GCC's internal one).  Notice something odd at offset +139 ?

    The word 'broken' doesn't even begin to describe the complete 
    !@#$up gcc-3.4 generated.  

    In anycase, it looks like GCC just breaks when you use the internal
    va_arg with a 'char' type.  It is supposed to promote the argument
    to an int and then cast it to a char.  Instead it generates, well, 
    what you see.

    I recommend that for now you revert the stdarg.h changes.


0xc01be7ee <ppb_MS_init_msq+90>:        je     0xc01be81f <ppb_MS_init_msq+139>
0xc01be7f0 <ppb_MS_init_msq+92>:        cmp    $0x1,%eax
0xc01be7f3 <ppb_MS_init_msq+95>:        jg     0xc01be7fb <ppb_MS_init_msq+103>
0xc01be7f5 <ppb_MS_init_msq+97>:        test   %eax,%eax
0xc01be7f7 <ppb_MS_init_msq+99>:        je     0xc01be807 <ppb_MS_init_msq+115>
0xc01be7f9 <ppb_MS_init_msq+101>:       jmp    0xc01be851 <ppb_MS_init_msq+189>
0xc01be7fb <ppb_MS_init_msq+103>:       cmp    $0x2,%eax
0xc01be7fe <ppb_MS_init_msq+106>:       je     0xc01be821 <ppb_MS_init_msq+141>
0xc01be800 <ppb_MS_init_msq+108>:       cmp    $0x3,%eax
0xc01be803 <ppb_MS_init_msq+111>:       je     0xc01be839 <ppb_MS_init_msq+165>
0xc01be805 <ppb_MS_init_msq+113>:       jmp    0xc01be851 <ppb_MS_init_msq+189>
0xc01be807 <ppb_MS_init_msq+115>:       mov    %ebx,%eax
0xc01be809 <ppb_MS_init_msq+117>:       shl    $0x4,%eax
0xc01be80c <ppb_MS_init_msq+120>:       lea    (%eax,%ecx,4),%edx
0xc01be80f <ppb_MS_init_msq+123>:       mov    %esi,%eax
0xc01be811 <ppb_MS_init_msq+125>:       lea    0x4(%esi),%esi
0xc01be814 <ppb_MS_init_msq+128>:       mov    (%eax),%eax
0xc01be816 <ppb_MS_init_msq+130>:       mov    0x8(%ebp),%ecx
0xc01be819 <ppb_MS_init_msq+133>:       mov    %eax,0x4(%edx,%ecx,1)
0xc01be81d <ppb_MS_init_msq+137>:       jmp    0xc01be869 <ppb_MS_init_msq+213>
0xc01be81f <ppb_MS_init_msq+139>:       int    $0x5
0xc01be821 <ppb_MS_init_msq+141>:       mov    %ebx,%eax
0xc01be823 <ppb_MS_init_msq+143>:       shl    $0x4,%eax

More information about the Submit mailing list