mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-06 14:10:36 +00:00
8159236: [JVMCI] Window-saved SPARC registers should not be considered callee-save
Reviewed-by: iveresov
This commit is contained in:
parent
0fd874e9c5
commit
f81f745028
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user