mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
Merge remote-tracking branch
'origin/GP-3155_caheckman_PR-2810_Pokechu22_countleadingzeros' (Closes #2810)
This commit is contained in:
@@ -931,8 +931,6 @@ with : extGUARD=1 {
|
||||
logflags(); tmp:4 = e2l; getbitfield(tmp, f_off, f_wd); f_reg = tmp; resbitflags(f_reg, f_wd-1);
|
||||
}
|
||||
|
||||
define pcodeop countLeadingZeros;
|
||||
|
||||
:bfffo e2l{f_off:f_wd},f_reg is opbig=0xed & op67=3 & $(DAT_DIR_CTL_ADDR_MODES); f_off & f_wd & f_reg & flddo=0 & fldoffdat=0 & flddw=0 & fldwddat=0; e2l
|
||||
[ savmod2=savmod1; regtsan=regtfan; ] {
|
||||
# "Find First One in Bit Field" pronounced "boo-foe"
|
||||
@@ -945,7 +943,7 @@ define pcodeop countLeadingZeros;
|
||||
ZF = (tmp == 0);
|
||||
VF = 0;
|
||||
CF = 0;
|
||||
tmp2:4 = countLeadingZeros(tmp);
|
||||
tmp2:4 = lzcount(tmp);
|
||||
# NB- it seems the MSB left most bit is really at offset 0,
|
||||
# and the right LSB is at offset 31
|
||||
tmp3:4 = tmp2 % 32:4; # need mod for when there are all zeros, when tmp2 would = 32
|
||||
|
||||
@@ -17,7 +17,6 @@ package ghidra.program.emulation;
|
||||
|
||||
import ghidra.pcode.emulate.Emulate;
|
||||
import ghidra.pcode.emulate.EmulateInstructionStateModifier;
|
||||
import ghidra.pcode.emulate.callother.CountLeadingZerosOpBehavior;
|
||||
import ghidra.pcode.emulate.callother.OpBehaviorOther;
|
||||
import ghidra.pcode.memstate.MemoryState;
|
||||
import ghidra.pcodeCPort.error.LowlevelError;
|
||||
@@ -45,10 +44,6 @@ public class m68kEmulateInstructionStateModifier extends EmulateInstructionState
|
||||
ISA_MODE0 = new RegisterValue(isaModeReg, BigInteger.ZERO);
|
||||
*/
|
||||
|
||||
// These classes are defined here:
|
||||
// ghidra/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcode/emulate/callother
|
||||
|
||||
registerPcodeOpBehavior("countLeadingZeros", new CountLeadingZerosOpBehavior());
|
||||
registerPcodeOpBehavior("findFirstOne", new FindFirstOneOpBehavior());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user