• Jinyang He's avatar
    MIPS: Add is_jr_ra_ins() to end the loop early · 50886234
    Jinyang He authored
    For those leaf functions, they are likely to have no stack operations.
    Add is_jr_ra_ins() to determine whether jr ra has been touched before
    the frame_size is found. Without this patch, the get frame_size operation
    may be out of range and get the frame_size from the next nested function.
    
    There is no POOL32A format in uapi/asm/inst.h, so some bits here use the
    format of r_format instead.
    e.g.
    ---------------------------------------------------------------------
    |    format      |  31:26  | 25:21 | 20:16 |    15:6    |    5:0    |
    -----------------+---------+-------+-------+------------+------------
    | pool32a_format | pool32a |  rt   |  rs   |   jalrc    | pool32axf |
    -----------------+---------+-------+-------+------------+------------
    |    r_format    |  opcode |  rs   |  rt   | rd:5, re:5 |    func   |
    ---------------------------------------------------------------------
    Signed-off-by: default avatarJinyang He <hejinyang@loongson.cn>
    Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
    50886234
process.c 22.3 KB