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

src/jdk.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotLoadConfigValueOp.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 22,33 **** --- 22,37 ---- */ package org.graalvm.compiler.hotspot.amd64; import static org.graalvm.compiler.core.common.GraalOptions.GeneratePIC; import static jdk.vm.ci.code.ValueUtil.asRegister; + + import jdk.vm.ci.amd64.AMD64Kind; + import jdk.vm.ci.code.Register; import jdk.vm.ci.meta.AllocatableValue; + import org.graalvm.compiler.asm.amd64.AMD64Address; import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.lir.LIRInstructionClass; import org.graalvm.compiler.lir.amd64.AMD64LIRInstruction; import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
*** 46,56 **** } @Override public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) { if (GeneratePIC.getValue()) { ! masm.movq(asRegister(result), masm.getPlaceholder(-1)); } else { throw GraalError.unimplemented(); } crb.recordMark(markId); } --- 50,78 ---- } @Override public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) { if (GeneratePIC.getValue()) { ! AMD64Kind kind = (AMD64Kind) result.getPlatformKind(); ! Register reg = asRegister(result); ! AMD64Address placeholder = masm.getPlaceholder(-1); ! switch (kind) { ! case BYTE: ! masm.movsbl(reg, placeholder); ! break; ! case WORD: ! masm.movswl(reg, placeholder); ! break; ! case DWORD: ! masm.movl(reg, placeholder); ! break; ! case QWORD: ! masm.movq(reg, placeholder); ! break; ! default: ! throw GraalError.unimplemented(); ! } } else { throw GraalError.unimplemented(); } crb.recordMark(markId); }
src/jdk.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotLoadConfigValueOp.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File