06 Dec, 2012

1 commit

  • Since GCC 4.4, there have been __builtin_bswap32() and __builtin_bswap16()
    intrinsics. A __builtin_bswap16() came a little later (4.6 for PowerPC,
    48 for other platforms).

    By using these instead of the inline assembler that most architectures
    have in their __arch_swabXX() macros, we let the compiler see what's
    actually happening. The resulting code should be at least as good, and
    much *better* in the cases where it can be combined with a nearby load
    or store, using a load-and-byteswap or store-and-byteswap instruction
    (e.g. lwbrx/stwbrx on PowerPC, movbe on Atom).

    When GCC is sufficiently recent *and* the architecture opts in to using
    the intrinsics by setting CONFIG_ARCH_USE_BUILTIN_BSWAP, they will be
    used in preference to the __arch_swabXX() macros. An architecture which
    does not set ARCH_USE_BUILTIN_BSWAP will continue to use its own
    hand-crafted macros.

    Signed-off-by: David Woodhouse
    Acked-by: H. Peter Anvin

    David Woodhouse
     

17 Oct, 2007

1 commit


08 May, 2007

2 commits

  • We can use a gcc extension to ensure that ARRAY_SIZE() is handed an array,
    not a pointer. This is especially important when code is changed from a
    fixed array to a pointer. I assume the Intel compiler doesn't support
    __builtin_types_compatible_p.

    [jdike@addtoit.com: uml: update UML definition of ARRAY_SIZE]
    Signed-off-by: Rusty Russell
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rusty Russell
     
  • Introduce a macro for suppressing gcc from generating a warning about a
    probable uninitialized state of a variable.

    Example:

    - spinlock_t *ptl;
    + spinlock_t *uninitialized_var(ptl);

    Not a happy solution, but those warnings are obnoxious.

    - Using the usual pointlessly-set-it-to-zero approach wastes several
    bytes of text.

    - Using a macro means we can (hopefully) do something else if gcc changes
    cause the `x = x' hack to stop working

    - Using a macro means that people who are worried about hiding true bugs
    can easily turn it off.

    Signed-off-by: Borislav Petkov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds