• Robin Murphy's avatar
    arm64/io: Allow I/O writes to use {W,X}ZR · ee5e41b5
    Robin Murphy authored
    When zeroing an I/O location, the current accessors are forced to
    allocate a temporary register to store the zero for the write. By
    tweaking the assembly constraints, we can allow the compiler to use
    the zero register directly in such cases, and save some juggling.
    Compiling a representative kernel configuration with GCC 6 shows
    that 2.3KB worth of code can be wasted just on that!
    
      text     data    bss      dec      hex     filename
     13316776 3248256 18176769 34741801 2121e29 vmlinux.o.new
     13319140 3248256 18176769 34744165 2122765 vmlinux.o.old
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    ee5e41b5
io.h 6.86 KB