MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / ConstrainUnpredictable

Function ConstrainUnpredictable

arch/arm64/disassembler/pcode.c:826–941  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

824}
825
826enum Constraint ConstrainUnpredictable(enum Unpredictable u)
827{
828 switch (u)
829 {
830 case Unpredictable_VMSR:
831 return Constraint_UNDEF;
832 case Unpredictable_WBOVERLAPLD:
833 return Constraint_WBSUPPRESS; // return loaded value
834 case Unpredictable_WBOVERLAPST:
835 return Constraint_NONE; // store pre-writeback value
836 case Unpredictable_LDPOVERLAP:
837 return Constraint_UNDEF; // instruction is UNDEFINED
838 case Unpredictable_BASEOVERLAP:
839 return Constraint_NONE; // use original address
840 case Unpredictable_DATAOVERLAP:
841 return Constraint_NONE; // store original value
842 case Unpredictable_DEVPAGE2:
843 return Constraint_FAULT; // take an alignment fault
844 case Unpredictable_DEVICETAGSTORE:
845 return Constraint_NONE; // Do not take a fault
846 case Unpredictable_INSTRDEVICE:
847 return Constraint_NONE; // Do not take a fault
848 case Unpredictable_RESCPACR:
849 return Constraint_TRUE; // Map to UNKNOWN value
850 case Unpredictable_RESMAIR:
851 return Constraint_UNKNOWN; // Map to UNKNOWN value
852 case Unpredictable_RESTEXCB:
853 return Constraint_UNKNOWN; // Map to UNKNOWN value
854 case Unpredictable_RESDACR:
855 return Constraint_UNKNOWN; // Map to UNKNOWN value
856 case Unpredictable_RESPRRR:
857 return Constraint_UNKNOWN; // Map to UNKNOWN value
858 case Unpredictable_RESVTCRS:
859 return Constraint_UNKNOWN; // Map to UNKNOWN value
860 case Unpredictable_RESTnSZ:
861 return Constraint_FORCE; // Map to the limit value
862 case Unpredictable_OORTnSZ:
863 return Constraint_FORCE; // Map to the limit value
864 case Unpredictable_LARGEIPA:
865 return Constraint_FORCE; // Restrict the inputsize to the PAMax value
866 case Unpredictable_ESRCONDPASS:
867 return Constraint_FALSE; // Report as "AL"
868 case Unpredictable_ILZEROIT:
869 return Constraint_FALSE; // Do not zero PSTATE.IT
870 case Unpredictable_ILZEROT:
871 return Constraint_FALSE; // Do not zero PSTATE.T
872 case Unpredictable_BPVECTORCATCHPRI:
873 return Constraint_TRUE; // Debug Vector Catch: match on 2nd halfword
874 case Unpredictable_VCMATCHHALF:
875 return Constraint_FALSE; // No match
876 case Unpredictable_VCMATCHDAPA:
877 return Constraint_FALSE; // No match on Data Abort or Prefetch abort
878 case Unpredictable_WPMASKANDBAS:
879 return Constraint_FALSE; // Watchpoint disabled
880 case Unpredictable_WPBASCONTIGUOUS:
881 return Constraint_FALSE; // Watchpoint disabled
882 case Unpredictable_RESWPMASK:
883 return Constraint_DISABLED; // Watchpoint disabled

Callers 15

LDAXPFunction · 0.85
LDAXRFunction · 0.85
LDAXRBFunction · 0.85
LDAXRHFunction · 0.85
LDNP_fpsimdFunction · 0.85
LDNP_genFunction · 0.85
LDPSWFunction · 0.85
LDP_fpsimdFunction · 0.85
LDP_genFunction · 0.85
LDXPFunction · 0.85
LDXRFunction · 0.85
LDXRBFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected