# HG changeset patch # User Gilles Duboscq # Date 1465560280 -7200 # Fri Jun 10 14:04:40 2016 +0200 # Node ID 5e6bc417ced9757d29adee5efe46a324971ecb3b # Parent 0db82451a1244b8d0a1d52d9e42f2cc21ca734e4 8159236: [JVMCI] Window-saved SPARC registers should not be considered callee-save diff --git a/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java b/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java --- a/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java +++ b/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java @@ -134,10 +134,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 @@ -177,7 +176,7 @@ this.addNativeRegisterArgumentSlots = config.linuxOs; 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()]); @@ -189,8 +188,9 @@ return callerSaveRegisters; } + @Override public Register[] getCalleeSaveRegisters() { - return calleeSaveRegisters; + return null; } @Override