< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java

Print this page




 182         }
 183         this.callerSaveRegisters = callerSaveSet.toArray(new Register[callerSaveSet.size()]);
 184         attributesMap = RegisterAttributes.createMap(this, SPARC.allRegisters);
 185     }
 186 
 187     @Override
 188     public Register[] getCallerSaveRegisters() {
 189         return callerSaveRegisters;
 190     }
 191 
 192     public Register[] getCalleeSaveRegisters() {
 193         return calleeSaveRegisters;
 194     }
 195 
 196     @Override
 197     public boolean areAllAllocatableRegistersCallerSaved() {
 198         return false;
 199     }
 200 
 201     @Override
 202     public Register getRegisterForRole(int index) {
 203         throw new UnsupportedOperationException();
 204     }
 205 
 206     @Override
 207     public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, ValueKindFactory<?> valueKindFactory) {
 208         HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
 209         if (type == HotSpotCallingConventionType.JavaCall || type == HotSpotCallingConventionType.NativeCall) {
 210             return callingConvention(cpuCallerParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
 211         }
 212         if (type == HotSpotCallingConventionType.JavaCallee) {
 213             return callingConvention(cpuCalleeParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
 214         }
 215         throw JVMCIError.shouldNotReachHere();
 216     }
 217 
 218     @Override
 219     public Register[] getCallingConventionRegisters(Type type, JavaKind kind) {
 220         HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
 221         switch (kind) {
 222             case Boolean:
 223             case Byte:
 224             case Short:
 225             case Char:
 226             case Int:




 182         }
 183         this.callerSaveRegisters = callerSaveSet.toArray(new Register[callerSaveSet.size()]);
 184         attributesMap = RegisterAttributes.createMap(this, SPARC.allRegisters);
 185     }
 186 
 187     @Override
 188     public Register[] getCallerSaveRegisters() {
 189         return callerSaveRegisters;
 190     }
 191 
 192     public Register[] getCalleeSaveRegisters() {
 193         return calleeSaveRegisters;
 194     }
 195 
 196     @Override
 197     public boolean areAllAllocatableRegistersCallerSaved() {
 198         return false;
 199     }
 200 
 201     @Override





 202     public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, ValueKindFactory<?> valueKindFactory) {
 203         HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
 204         if (type == HotSpotCallingConventionType.JavaCall || type == HotSpotCallingConventionType.NativeCall) {
 205             return callingConvention(cpuCallerParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
 206         }
 207         if (type == HotSpotCallingConventionType.JavaCallee) {
 208             return callingConvention(cpuCalleeParameterRegisters, returnType, parameterTypes, hotspotType, valueKindFactory);
 209         }
 210         throw JVMCIError.shouldNotReachHere();
 211     }
 212 
 213     @Override
 214     public Register[] getCallingConventionRegisters(Type type, JavaKind kind) {
 215         HotSpotCallingConventionType hotspotType = (HotSpotCallingConventionType) type;
 216         switch (kind) {
 217             case Boolean:
 218             case Byte:
 219             case Short:
 220             case Char:
 221             case Int:


< prev index next >