src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64SaveRegistersOp.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64SaveRegistersOp.java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64SaveRegistersOp.java

Print this page

        

*** 25,43 **** import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.STACK; import static jdk.vm.ci.code.ValueUtil.asStackSlot; import static jdk.vm.ci.code.ValueUtil.isStackSlot; import java.util.Arrays; - import java.util.Set; - import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler; import org.graalvm.compiler.lir.LIRInstructionClass; import org.graalvm.compiler.lir.LIRValueUtil; import org.graalvm.compiler.lir.Opcode; import org.graalvm.compiler.lir.StandardOp.SaveRegistersOp; import org.graalvm.compiler.lir.asm.CompilationResultBuilder; import org.graalvm.compiler.lir.framemap.FrameMap; import jdk.vm.ci.amd64.AMD64Kind; import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterSaveLayout; import jdk.vm.ci.code.StackSlot; --- 25,42 ---- import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.STACK; import static jdk.vm.ci.code.ValueUtil.asStackSlot; import static jdk.vm.ci.code.ValueUtil.isStackSlot; import java.util.Arrays; import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler; import org.graalvm.compiler.lir.LIRInstructionClass; import org.graalvm.compiler.lir.LIRValueUtil; import org.graalvm.compiler.lir.Opcode; import org.graalvm.compiler.lir.StandardOp.SaveRegistersOp; import org.graalvm.compiler.lir.asm.CompilationResultBuilder; import org.graalvm.compiler.lir.framemap.FrameMap; + import org.graalvm.util.EconomicSet; import jdk.vm.ci.amd64.AMD64Kind; import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterSaveLayout; import jdk.vm.ci.code.StackSlot;
*** 59,78 **** * The slots to which the registers are saved. */ @Def(STACK) protected final AllocatableValue[] slots; /** ! * Specifies if {@link #remove(Set)} should have an effect. */ protected final boolean supportsRemove; /** * * @param savedRegisters the registers saved by this operation which may be subject to ! * {@linkplain #remove(Set) pruning} * @param savedRegisterLocations the slots to which the registers are saved ! * @param supportsRemove determines if registers can be {@linkplain #remove(Set) pruned} */ public AMD64SaveRegistersOp(Register[] savedRegisters, AllocatableValue[] savedRegisterLocations, boolean supportsRemove) { this(TYPE, savedRegisters, savedRegisterLocations, supportsRemove); } --- 58,77 ---- * The slots to which the registers are saved. */ @Def(STACK) protected final AllocatableValue[] slots; /** ! * Specifies if {@link #remove(EconomicSet)} should have an effect. */ protected final boolean supportsRemove; /** * * @param savedRegisters the registers saved by this operation which may be subject to ! * {@linkplain #remove(EconomicSet) pruning} * @param savedRegisterLocations the slots to which the registers are saved ! * @param supportsRemove determines if registers can be {@linkplain #remove(EconomicSet) pruned} */ public AMD64SaveRegistersOp(Register[] savedRegisters, AllocatableValue[] savedRegisterLocations, boolean supportsRemove) { this(TYPE, savedRegisters, savedRegisterLocations, supportsRemove); }
*** 106,123 **** public boolean supportsRemove() { return supportsRemove; } @Override ! public int remove(Set<Register> doNotSave) { if (!supportsRemove) { throw new UnsupportedOperationException(); } return prune(doNotSave, savedRegisters); } ! static int prune(Set<Register> toRemove, Register[] registers) { int pruned = 0; for (int i = 0; i < registers.length; i++) { if (registers[i] != null) { if (toRemove.contains(registers[i])) { registers[i] = null; --- 105,122 ---- public boolean supportsRemove() { return supportsRemove; } @Override ! public int remove(EconomicSet<Register> doNotSave) { if (!supportsRemove) { throw new UnsupportedOperationException(); } return prune(doNotSave, savedRegisters); } ! static int prune(EconomicSet<Register> toRemove, Register[] registers) { int pruned = 0; for (int i = 0; i < registers.length; i++) { if (registers[i] != null) { if (toRemove.contains(registers[i])) { registers[i] = null;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64SaveRegistersOp.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File