• Jon Medhurst's avatar
    ARM: kprobes: Infrastructure for table driven decoding of CPU instructions · 0d1a095a
    Jon Medhurst authored
    The existing ARM instruction decoding functions are a mass of if/else
    code. Rather than follow this pattern for Thumb instruction decoding
    this patch implements an infrastructure for a new table driven scheme.
    
    This has several advantages:
    
    - Reduces the kernel size by approx 2kB. (The ARM instruction decoding
      will eventually have -3.1kB code, +1.3kB data; with similar or better
      estimated savings for Thumb decoding.)
    
    - Allows programmatic checking of decoding consistency and test case
      coverage.
    
    - Provides more uniform source code and is therefore, arguably, clearer.
    
    For a detailed explanation of how decoding tables work see the in-source
    documentation in kprobes.h, and also for kprobe_decode_insn().
    Signed-off-by: default avatarJon Medhurst <tixy@yxit.co.uk>
    Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    0d1a095a
kprobes-common.c 9.92 KB