graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64/AMD64.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File basic-graal Sdiff graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64

graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64/AMD64.java

Print this page




 121     public static enum CPUFeature {
 122         SSE,
 123         SSE2,
 124         SSE3,
 125         SSE4a,
 126         SSE4_1,
 127         SSE4_2,
 128         SSSE3,
 129         POPCNT,
 130         LZCNT,
 131         AVX,
 132         AVX2,
 133         ERMS,
 134         AMD_3DNOW_PREFETCH,
 135         AES,
 136         BMI1
 137     }
 138 
 139     private final EnumSet<CPUFeature> features;
 140 
 141     public AMD64(EnumSet<CPUFeature> features) {










 142         super("AMD64", 8, ByteOrder.LITTLE_ENDIAN, true, allRegisters, LOAD_STORE | STORE_STORE, 1, cpuRegisters.length + (xmmRegisters.length << XMM_REFERENCE_MAP_SHIFT), 8);
 143         this.features = features;

 144         assert features.contains(CPUFeature.SSE2) : "minimum config for x64";
 145     }
 146 
 147     public EnumSet<CPUFeature> getFeatures() {
 148         return features;
 149     }
 150 




 151     @Override
 152     public boolean canStoreValue(RegisterCategory category, PlatformKind platformKind) {
 153         if (!(platformKind instanceof Kind)) {
 154             return false;
 155         }
 156 
 157         Kind kind = (Kind) platformKind;
 158         if (category.equals(CPU)) {
 159             switch (kind) {
 160                 case Boolean:
 161                 case Byte:
 162                 case Char:
 163                 case Short:
 164                 case Int:
 165                 case Long:
 166                 case Object:
 167                     return true;
 168             }
 169         } else if (category.equals(XMM)) {
 170             switch (kind) {


 121     public static enum CPUFeature {
 122         SSE,
 123         SSE2,
 124         SSE3,
 125         SSE4a,
 126         SSE4_1,
 127         SSE4_2,
 128         SSSE3,
 129         POPCNT,
 130         LZCNT,
 131         AVX,
 132         AVX2,
 133         ERMS,
 134         AMD_3DNOW_PREFETCH,
 135         AES,
 136         BMI1
 137     }
 138 
 139     private final EnumSet<CPUFeature> features;
 140 
 141     /**
 142      * Set of flags to control code emission.
 143      */
 144     public static enum Flag {
 145         UseCountLeadingZerosInstruction,
 146         UseCountTrailingZerosInstruction
 147     }
 148 
 149     private final EnumSet<Flag> flags;
 150 
 151     public AMD64(EnumSet<CPUFeature> features, EnumSet<Flag> flags) {
 152         super("AMD64", 8, ByteOrder.LITTLE_ENDIAN, true, allRegisters, LOAD_STORE | STORE_STORE, 1, cpuRegisters.length + (xmmRegisters.length << XMM_REFERENCE_MAP_SHIFT), 8);
 153         this.features = features;
 154         this.flags = flags;
 155         assert features.contains(CPUFeature.SSE2) : "minimum config for x64";
 156     }
 157 
 158     public EnumSet<CPUFeature> getFeatures() {
 159         return features;
 160     }
 161 
 162     public EnumSet<Flag> getFlags() {
 163         return flags;
 164     }
 165 
 166     @Override
 167     public boolean canStoreValue(RegisterCategory category, PlatformKind platformKind) {
 168         if (!(platformKind instanceof Kind)) {
 169             return false;
 170         }
 171 
 172         Kind kind = (Kind) platformKind;
 173         if (category.equals(CPU)) {
 174             switch (kind) {
 175                 case Boolean:
 176                 case Byte:
 177                 case Char:
 178                 case Short:
 179                 case Int:
 180                 case Long:
 181                 case Object:
 182                     return true;
 183             }
 184         } else if (category.equals(XMM)) {
 185             switch (kind) {
graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64/AMD64.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File