mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
fix for se_bmaski, parameter first use with subtractWrap
This commit is contained in:
parent
05f1d707f5
commit
5e41bf2df4
2 changed files with 5 additions and 10 deletions
|
@ -17,7 +17,8 @@ package ghidra.program.model.pcode;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import ghidra.program.model.address.*;
|
import ghidra.program.model.address.Address;
|
||||||
|
import ghidra.program.model.address.AddressIterator;
|
||||||
import ghidra.program.model.data.DataType;
|
import ghidra.program.model.data.DataType;
|
||||||
import ghidra.program.model.data.Undefined;
|
import ghidra.program.model.data.Undefined;
|
||||||
import ghidra.program.model.listing.*;
|
import ghidra.program.model.listing.*;
|
||||||
|
@ -102,12 +103,7 @@ public class LocalSymbolMap {
|
||||||
boolean lock = (dbFunction.getSignatureSource() != SourceType.DEFAULT);
|
boolean lock = (dbFunction.getSignatureSource() != SourceType.DEFAULT);
|
||||||
|
|
||||||
Address pcaddr = dbFunction.getEntryPoint();
|
Address pcaddr = dbFunction.getEntryPoint();
|
||||||
try {
|
pcaddr = pcaddr.subtractWrap(1);
|
||||||
pcaddr = pcaddr.subtract(1);
|
|
||||||
}
|
|
||||||
catch (AddressOutOfBoundsException e) {
|
|
||||||
// Should rarely happen
|
|
||||||
}
|
|
||||||
|
|
||||||
List<MappedSymbol> paramList = new ArrayList<MappedSymbol>();
|
List<MappedSymbol> paramList = new ArrayList<MappedSymbol>();
|
||||||
for (int i = 0; i < p.length; ++i) {
|
for (int i = 0; i < p.length; ++i) {
|
||||||
|
|
|
@ -720,9 +720,8 @@ IMM16B: val is IMM_0_10_VLE & IMM_16_20_VLE [ val = (IMM_16_20_VLE << 11) |
|
||||||
|
|
||||||
:se_bmaski RX_VLE,OIM5_VLE is $(ISVLE) & OP6_VLE=11 & BIT9_VLE=0 & RX_VLE & OIM5_VLE {
|
:se_bmaski RX_VLE,OIM5_VLE is $(ISVLE) & OP6_VLE=11 & BIT9_VLE=0 & RX_VLE & OIM5_VLE {
|
||||||
RX_VLE = ~0;
|
RX_VLE = ~0;
|
||||||
tmp:1 = OIM5_VLE;
|
sa:4 = (8 * $(REGISTER_SIZE) - OIM5_VLE) * zext( OIM5_VLE != 0:1 );
|
||||||
if (tmp == 0) goto inst_next;
|
RX_VLE = RX_VLE >> sa;
|
||||||
RX_VLE = RX_VLE >> ($(REGISTER_SIZE) - tmp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:se_bseti RX_VLE,OIM5_VLE is $(ISVLE) & OP6_VLE=25 & BIT9_VLE=0 & RX_VLE & OIM5_VLE {
|
:se_bseti RX_VLE,OIM5_VLE is $(ISVLE) & OP6_VLE=25 & BIT9_VLE=0 & RX_VLE & OIM5_VLE {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue