branch | datagramsocketimpl-branch |
changeset 58678 | 9cf78a70fa4f |
parent 54328 | 37648a9c4a6a |
child 58679 | 9c3209ff7550 |
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGenerator.java Thu Oct 17 20:27:44 2019 +0100 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGenerator.java Thu Oct 17 20:53:35 2019 +0100 @@ -59,10 +59,10 @@ import org.graalvm.compiler.lir.StandardOp; import org.graalvm.compiler.lir.StandardOp.BlockEndOp; import org.graalvm.compiler.lir.StandardOp.LabelOp; -import org.graalvm.compiler.lir.StandardOp.SaveRegistersOp; -import org.graalvm.compiler.lir.hashing.Hasher; +import org.graalvm.compiler.lir.StandardOp.ZapRegistersOp; import org.graalvm.compiler.lir.SwitchStrategy; import org.graalvm.compiler.lir.Variable; +import org.graalvm.compiler.lir.hashing.Hasher; import org.graalvm.compiler.options.Option; import org.graalvm.compiler.options.OptionKey; import org.graalvm.compiler.options.OptionType; @@ -230,11 +230,31 @@ } @Override + public Variable emitReadRegister(Register register, ValueKind<?> kind) { + return emitMove(register.asValue(kind)); + } + + @Override + public void emitWriteRegister(Register dst, Value src, ValueKind<?> kind) { + emitMove(dst.asValue(kind), src); + } + + @Override public void emitMoveConstant(AllocatableValue dst, Constant src) { append(moveFactory.createLoad(dst, src)); } @Override + public boolean canInlineConstant(Constant constant) { + return moveFactory.canInlineConstant(constant); + } + + @Override + public boolean mayEmbedConstantLoad(Constant constant) { + return moveFactory.mayEmbedConstantLoad(constant); + } + + @Override public Value emitConstant(LIRKind kind, Constant constant) { if (moveFactory.canInlineConstant(constant)) { return new ConstantValue(toRegisterKind(kind), constant); @@ -584,11 +604,16 @@ } @Override - public abstract SaveRegistersOp createZapRegisters(Register[] zappedRegisters, JavaConstant[] zapValues); + public abstract ZapRegistersOp createZapRegisters(Register[] zappedRegisters, JavaConstant[] zapValues); @Override - public SaveRegistersOp createZapRegisters() { + public ZapRegistersOp createZapRegisters() { Register[] zappedRegisters = getResult().getFrameMap().getRegisterConfig().getAllocatableRegisters().toArray(); + return createZapRegisters(zappedRegisters); + } + + @Override + public ZapRegistersOp createZapRegisters(Register[] zappedRegisters) { JavaConstant[] zapValues = new JavaConstant[zappedRegisters.length]; for (int i = 0; i < zappedRegisters.length; i++) { PlatformKind kind = target().arch.getLargestStorableKind(zappedRegisters[i].getRegisterCategory());