< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMetaAccessProvider.java

Print this page




 135                 if (offset == ((HotSpotResolvedJavaField) field).offset()) {
 136                     return field;
 137                 }
 138             }
 139         }
 140 
 141         throw new JVMCIError("unresolved field %s", reflectionField);
 142     }
 143 
 144     private static int intMaskRight(int n) {
 145         assert n <= 32;
 146         return n == 32 ? -1 : (1 << n) - 1;
 147     }
 148 
 149     @Override
 150     public JavaConstant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, int debugId) {
 151         HotSpotVMConfig config = runtime.getConfig();
 152         int actionValue = convertDeoptAction(action);
 153         int reasonValue = convertDeoptReason(reason);
 154         int debugValue = debugId & intMaskRight(config.deoptimizationDebugIdBits);
 155         JavaConstant c = JavaConstant.forInt(~((debugValue << config.deoptimizationDebugIdShift) | (reasonValue << config.deoptimizationReasonShift) | (actionValue << config.deoptimizationActionShift)));

 156         assert c.asInt() < 0;
 157         return c;
 158     }
 159 
 160     public DeoptimizationReason decodeDeoptReason(JavaConstant constant) {
 161         HotSpotVMConfig config = runtime.getConfig();
 162         int reasonValue = ((~constant.asInt()) >> config.deoptimizationReasonShift) & intMaskRight(config.deoptimizationReasonBits);
 163         DeoptimizationReason reason = convertDeoptReason(reasonValue);
 164         return reason;
 165     }
 166 
 167     public DeoptimizationAction decodeDeoptAction(JavaConstant constant) {
 168         HotSpotVMConfig config = runtime.getConfig();
 169         int actionValue = ((~constant.asInt()) >> config.deoptimizationActionShift) & intMaskRight(config.deoptimizationActionBits);
 170         DeoptimizationAction action = convertDeoptAction(actionValue);
 171         return action;
 172     }
 173 
 174     public int decodeDebugId(JavaConstant constant) {
 175         HotSpotVMConfig config = runtime.getConfig();




 135                 if (offset == ((HotSpotResolvedJavaField) field).offset()) {
 136                     return field;
 137                 }
 138             }
 139         }
 140 
 141         throw new JVMCIError("unresolved field %s", reflectionField);
 142     }
 143 
 144     private static int intMaskRight(int n) {
 145         assert n <= 32;
 146         return n == 32 ? -1 : (1 << n) - 1;
 147     }
 148 
 149     @Override
 150     public JavaConstant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, int debugId) {
 151         HotSpotVMConfig config = runtime.getConfig();
 152         int actionValue = convertDeoptAction(action);
 153         int reasonValue = convertDeoptReason(reason);
 154         int debugValue = debugId & intMaskRight(config.deoptimizationDebugIdBits);
 155         JavaConstant c = JavaConstant.forInt(
 156                         ~((debugValue << config.deoptimizationDebugIdShift) | (reasonValue << config.deoptimizationReasonShift) | (actionValue << config.deoptimizationActionShift)));
 157         assert c.asInt() < 0;
 158         return c;
 159     }
 160 
 161     public DeoptimizationReason decodeDeoptReason(JavaConstant constant) {
 162         HotSpotVMConfig config = runtime.getConfig();
 163         int reasonValue = ((~constant.asInt()) >> config.deoptimizationReasonShift) & intMaskRight(config.deoptimizationReasonBits);
 164         DeoptimizationReason reason = convertDeoptReason(reasonValue);
 165         return reason;
 166     }
 167 
 168     public DeoptimizationAction decodeDeoptAction(JavaConstant constant) {
 169         HotSpotVMConfig config = runtime.getConfig();
 170         int actionValue = ((~constant.asInt()) >> config.deoptimizationActionShift) & intMaskRight(config.deoptimizationActionBits);
 171         DeoptimizationAction action = convertDeoptAction(actionValue);
 172         return action;
 173     }
 174 
 175     public int decodeDebugId(JavaConstant constant) {
 176         HotSpotVMConfig config = runtime.getConfig();


< prev index next >