writing usb drivers under 8.x

Jim Bryant kc5vdj.freebsd at gmail.com
Mon Aug 30 02:02:36 UTC 2010


ummmm.. you were saying???

 8:58:44pm  orb(19): cat bs3.c
#include <stdio.h>

int main(void)
{
  int toshiftornottoshift = 0x8000;

  printf("%d\n", toshiftornottoshift);

  return(0);
}
 8:58:48pm  orb(20): cc -S -O2 -o bs3.s bs3.c
 8:58:53pm  orb(21): cat bs3.s
        .file   "bs3.c"
        .section        .rodata.str1.1,"aMS", at progbits,1
.LC0:
        .string "%d\n"
        .text
        .p2align 4,,15
.globl main
        .type   main, @function
main:
.LFB3:
        subq    $8, %rsp
.LCFI0:
/*
*      this doesn't look like the compiler generates a shift to me.
*/
        movl    $32768, %esi
        movl    $.LC0, %edi
        xorl    %eax, %eax
        call    printf
        xorl    %eax, %eax
        addq    $8, %rsp
        ret
.LFE3:
        .size   main, .-main
        .section        .eh_frame,"a", at progbits
.Lframe1:
        .long   .LECIE1-.LSCIE1
.LSCIE1:
        .long   0x0
        .byte   0x1
        .string "zR"
        .uleb128 0x1
        .sleb128 -8
        .byte   0x10
        .uleb128 0x1
        .byte   0x3
        .byte   0xc
        .uleb128 0x7
        .uleb128 0x8
        .byte   0x90
        .uleb128 0x1
        .align 8
.LECIE1:
.LSFDE1:
        .long   .LEFDE1-.LASFDE1
.LASFDE1:
        .long   .LASFDE1-.Lframe1
        .long   .LFB3
        .long   .LFE3-.LFB3
        .uleb128 0x0
        .byte   0x4
        .long   .LCFI0-.LFB3
        .byte   0xe
        .uleb128 0x10
        .align 8
.LEFDE1:
        .ident  "GCC: (GNU) 4.2.1 20070719  [FreeBSD]"

perryh at pluto.rain.com wrote:
> Jim Bryant <kc5vdj.freebsd at gmail.com> wrote:
>
>   
>> what kind of idiot defines a constant assignment for a 32k buffer as a 
>> 15 bit left shift of 1?
>>
>> clever, yes.  but in production, stupid.
>>
>> a constant should be just that, a constant, and thus require no 
>> computation at runtime.
>>     
>
> Er, did you bother to look at the generated code before spouting off?
> Most compilers, even as far back as K&R 1st edition, will compute
> constant expressions like that at compile time.
>
>   


More information about the freebsd-usb mailing list