• Linus Torvalds's avatar
    Merge tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux · 227c3e9e
    Linus Torvalds authored
    Pull asm inline support from Miguel Ojeda:
     "Make use of gcc 9's "asm inline()" (Rasmus Villemoes):
    
      gcc 9+ (and gcc 8.3, 7.5) provides a way to override the otherwise
      crude heuristic that gcc uses to estimate the size of the code
      represented by an asm() statement. From the gcc docs
    
          If you use 'asm inline' instead of just 'asm', then for inlining
          purposes the size of the asm is taken as the minimum size, ignoring
          how many instructions GCC thinks it is.
    
      For compatibility with older compilers, we obviously want a
    
          #if [understands asm inline]
          #define asm_inline asm inline
          #else
          #define asm_inline asm
          #endif
    
      But since we #define the identifier inline to attach some attributes,
      we have to use an alternate spelling of that keyword. gcc provides
      both __inline__ and __inline, and we currently #define both to inline,
      so they all have the same semantics.
    
      We have to free up one of __inline__ and __inline, and the latter is
      by far the easiest.
    
      The two x86 changes cause smaller code gen differences than I'd
      expect, but I think we do want the asm_inline thing available sooner
      or later, so this is just to get the ball rolling"
    
    * tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux:
      x86: bug.h: use asm_inline in _BUG_FLAGS definitions
      x86: alternative.h: use asm_inline for all alternative variants
      compiler-types.h: add asm_inline definition
      compiler_types.h: don't #define __inline
      lib/zstd/mem.h: replace __inline by inline
      staging: rtl8723bs: replace __inline by inline
    227c3e9e
Kconfig 71.1 KB