8159236: [JVMCI] Window-saved SPARC registers should not be considered callee-save

Reviewed-by: iveresov
This commit is contained in:
Gilles Duboscq 2016-06-17 16:50:49 +00:00
parent 0fd874e9c5
commit f81f745028

View File

@ -133,10 +133,9 @@ public class SPARCHotSpotRegisterConfig implements RegisterConfig {
private final Register[] callerSaveRegisters;
/**
* Registers saved by the callee. This lists all L and I registers which are saved in the
* register window.
* This lists all L and I registers which are saved in the register window.
*/
private final Register[] calleeSaveRegisters = {
private final Register[] windowSaveRegisters = {
l0, l1, l2, l3, l4, l5, l6, l7,
i0, i1, i2, i3, i4, i5, i6, i7};
// @formatter:on
@ -176,7 +175,7 @@ public class SPARCHotSpotRegisterConfig implements RegisterConfig {
this.addNativeRegisterArgumentSlots = false;
HashSet<Register> callerSaveSet = new HashSet<>();
Collections.addAll(callerSaveSet, target.arch.getAvailableValueRegisters());
for (Register cs : calleeSaveRegisters) {
for (Register cs : windowSaveRegisters) {
callerSaveSet.remove(cs);
}
this.callerSaveRegisters = callerSaveSet.toArray(new Register[callerSaveSet.size()]);
@ -188,8 +187,9 @@ public class SPARCHotSpotRegisterConfig implements RegisterConfig {
return callerSaveRegisters;
}
@Override
public Register[] getCalleeSaveRegisters() {
return calleeSaveRegisters;
return null;
}
@Override