• H. Peter Anvin's avatar
    x86: 64 bits: shrink and align IRQ stubs · 939b7871
    H. Peter Anvin authored
    Move the IRQ stub generation to assembly to simplify it and for
    consistency with 32 bits.  Doing it in a C file with asm() statements
    doesn't help clarity, and it prevents some optimizations.
    
    Shrink the IRQ stubs down to just over four bytes per (we fit seven
    into a 32-byte chunk.)  This shrinks the total icache consumption of
    the IRQ stubs down to an even kilobyte, if all of them are in active
    use.
    
    The downside is that we end up with a double jump, which could have a
    negative effect on some pipelines.  The double jump is always inside
    the same cacheline on any modern chips.
    
    To get the most effect, cache-align the IRQ stubs.
    
    This makes the 64-bit code match changes already done to the 32-bit
    code, and should open up irqinit*.c for unification.
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    939b7871
irqinit_64.c 4.24 KB