# HG changeset patch # User gdub # Date 1466182249 0 # Node ID 576058e9f728d41a9e7e7675c0024efb05b794d0 # Parent 1045973b8c6ab21189cdaee290f4b2eb5ffe15d6 8159236: [JVMCI] Window-saved SPARC registers should not be considered callee-save Reviewed-by: iveresov diff -r 1045973b8c6a -r 576058e9f728 hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java --- 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 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