| 824 | } |
| 825 | |
| 826 | enum 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 |
no outgoing calls
no test coverage detected