• Leonid Yegoshin's avatar
    MIPS: kernel: mips-r2-to-r6-emul: Add R2 emulator for MIPS R6 · b0a668fb
    Leonid Yegoshin authored
    MIPS R6 removed quite a few R2 instructions. However, there
    is plenty of <R6 userland code so we add an in-kernel emulator
    so we can still be able to execute all R2 userland out there.
    
    The emulator comes with a handy debugfs under /mips/ directory
    (r2-emul-stats) to provide some basic statistics of the
    instructions that are being emulated.
    
    Below are some statistics from booting a minimal buildroot image:
    
    Instruction     Total   BDslot
    ------------------------------
    movs            236969  0
    hilo            56686   0
    muls            55279   0
    divs            10941   0
    dsps            0       0
    bops            1       0
    traps           0       0
    fpus            0       0
    loads           214981  17
    stores          103364  0
    llsc            56898   0
    dsemul          150418  0
    jr              370158
    bltzl           43
    bgezl           1594
    bltzll          0
    bgezll          0
    bltzal          39
    bgezal          39
    beql            14503
    bnel            138741
    blezl           0
    bgtzl           3988
    Signed-off-by: default avatarLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>
    Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
    b0a668fb
branch.c 20.7 KB