8159236: [JVMCI] Window-saved SPARC registers should not be considered callee-save
Reviewed-by: iveresov
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java Fri Jun 17 11:31:24 2016 +0200
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java Fri Jun 17 16:50:49 2016 +0000
@@ -133,10 +133,9 @@
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 @@
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 @@
return callerSaveRegisters;
}
+ @Override
public Register[] getCalleeSaveRegisters() {
- return calleeSaveRegisters;
+ return null;
}
@Override