mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-10 09:13:58 -09:00
Merge remote-tracking branch 'origin/GP-2791_pcode_override_tests--SQUASHED'
This commit is contained in:
@@ -353,7 +353,7 @@ public abstract class PcodeEmit {
|
||||
else if (opcode == PcodeOp.CBRANCH) {
|
||||
int offsetType = inputs[0].getOffset().getType();
|
||||
if (offsetType == ConstTpl.J_RELATIVE || offsetType == ConstTpl.J_START ||
|
||||
offsetType == ConstTpl.J_NEXT) {
|
||||
offsetType == ConstTpl.J_NEXT || offsetType == ConstTpl.J_NEXT2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ public enum FlowOverride {
|
||||
* <pre>{@literal
|
||||
* Pcode mapping:
|
||||
* CALL -> BRANCH
|
||||
* CALLIND -> BRANCHIND
|
||||
* RETURN -> BRANCHIND
|
||||
* }</pre>
|
||||
*/
|
||||
@@ -54,7 +55,7 @@ public enum FlowOverride {
|
||||
CALL,
|
||||
|
||||
/**
|
||||
* Override the primary BRANCH or RETURN with a suitable CALL/RETURN operation.
|
||||
* Override the primary BRANCH, CALL, or RETURN with a suitable CALL/RETURN operation
|
||||
* <pre>{@literal
|
||||
* Pcode mapping:
|
||||
* BRANCH -> CALL/RETURN
|
||||
@@ -65,6 +66,8 @@ public enum FlowOverride {
|
||||
* CALL <addr>
|
||||
* RETURN 0
|
||||
* <label>
|
||||
* CALL -> CALL/RETURN
|
||||
* CALLIND -> CALLIND/RETURN
|
||||
* RETURN -> CALLIND/RETURN
|
||||
* }</pre>
|
||||
*/
|
||||
|
||||
@@ -86,5 +86,14 @@
|
||||
<register name="lr"/>
|
||||
</unaffected>
|
||||
</prototype>
|
||||
|
||||
<callfixup name="testCallFixup">
|
||||
<target name="fixme"/>
|
||||
<pcode>
|
||||
<body><![CDATA[
|
||||
sp = sp + 4;
|
||||
]]></body>
|
||||
</pcode>
|
||||
</callfixup>
|
||||
|
||||
</compiler_spec>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user