Mercurial > hg > graal-compiler
comparison graal/com.oracle.graal.truffle.hotspot.amd64/src/com/oracle/graal/truffle/hotspot/amd64/AMD64OptimizedCallTargetInstrumentationFactory.java @ 23348:9306a9611097
Update JVMCI import: Make CallingConvention.Type extensible; remove unused stackOnly parameter
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Thu, 21 Jan 2016 14:24:24 -0800 |
parents | 52f4acf6f365 |
children | 39f9960bb6ae |
comparison
equal
deleted
inserted
replaced
23347:f868bd0c3f02 | 23348:9306a9611097 |
---|---|
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 */ | 22 */ |
23 package com.oracle.graal.truffle.hotspot.amd64; | 23 package com.oracle.graal.truffle.hotspot.amd64; |
24 | 24 |
25 import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; | |
25 import jdk.vm.ci.amd64.AMD64; | 26 import jdk.vm.ci.amd64.AMD64; |
26 import jdk.vm.ci.code.CallingConvention.Type; | |
27 import jdk.vm.ci.code.CodeCacheProvider; | 27 import jdk.vm.ci.code.CodeCacheProvider; |
28 import jdk.vm.ci.code.InstalledCode; | 28 import jdk.vm.ci.code.InstalledCode; |
29 import jdk.vm.ci.code.Register; | 29 import jdk.vm.ci.code.Register; |
30 import jdk.vm.ci.meta.JavaKind; | 30 import jdk.vm.ci.meta.JavaKind; |
31 | 31 |
52 return new OptimizedCallTargetInstrumentation(codeCache, foreignCalls, frameMap, asm, dataBuilder, frameContext, compilationResult, config, registers) { | 52 return new OptimizedCallTargetInstrumentation(codeCache, foreignCalls, frameMap, asm, dataBuilder, frameContext, compilationResult, config, registers) { |
53 @Override | 53 @Override |
54 protected void injectTailCallCode() { | 54 protected void injectTailCallCode() { |
55 @SuppressWarnings("hiding") | 55 @SuppressWarnings("hiding") |
56 AMD64MacroAssembler asm = (AMD64MacroAssembler) this.asm; | 56 AMD64MacroAssembler asm = (AMD64MacroAssembler) this.asm; |
57 Register thisRegister = codeCache.getRegisterConfig().getCallingConventionRegisters(Type.JavaCall, JavaKind.Object)[0]; | 57 Register thisRegister = codeCache.getRegisterConfig().getCallingConventionRegisters(JavaCall, JavaKind.Object)[0]; |
58 Register spillRegister = AMD64.r10; // TODO(mg): fix me | 58 Register spillRegister = AMD64.r10; // TODO(mg): fix me |
59 Label doProlog = new Label(); | 59 Label doProlog = new Label(); |
60 | 60 |
61 AMD64Address codeBlobAddress = new AMD64Address(thisRegister, getFieldOffset("entryPoint", InstalledCode.class)); | 61 AMD64Address codeBlobAddress = new AMD64Address(thisRegister, getFieldOffset("entryPoint", InstalledCode.class)); |
62 asm.movq(spillRegister, codeBlobAddress); | 62 asm.movq(spillRegister, codeBlobAddress); |