mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 19:42:36 +02:00
fix(mips32r6): jic is not call but jump
See https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00086-2B-MIPS32BIS-AFP-6.06.pdf, page 205 (page 215 in file). jic is not like jialc, which set ra by `GPR[31] <- PC + 4`, it's just a jump. So, if meet jic reg,xxx , identify it as a jump. If meet jic ra,xxx , identify it as a return.
This commit is contained in:
parent
92b7728cd7
commit
e606a9a18f
1 changed files with 8 additions and 1 deletions
|
@ -1644,7 +1644,14 @@ define pcodeop SYNC;
|
|||
build RTsrc;
|
||||
tmp:$(REGSIZE) = sext(simmed:2) + RTsrc;
|
||||
JXWritePC(tmp);
|
||||
call [pc];
|
||||
goto [pc];
|
||||
}
|
||||
|
||||
:jic RTsrc, simmed is $(AMODE) & REL6=1 & prime=0x36 & jsub=0x00 & RTsrc & simmed & rt=0x1f {
|
||||
build RTsrc;
|
||||
tmp:$(REGSIZE) = sext(simmed:2) + RTsrc;
|
||||
JXWritePC(tmp);
|
||||
return [pc];
|
||||
}
|
||||
|
||||
@ifndef COPR_C
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue