Mercurial > hg > truffle
annotate graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotLIRGenerator.java @ 18594:1f379e2a623f
checkcastArraycopy: sign extend super_check_offset
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Tue, 02 Dec 2014 19:27:50 +0100 |
parents | b856446ff7e0 |
children | aa4f2e3629ca |
rev | line source |
---|---|
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
1 /* |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
4 * |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
8 * |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
14 * |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
18 * |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
21 * questions. |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
22 */ |
6495
75f130f2b30f
moved AMD64 specific HotSpot code in com.oracle.graal.hotspot.amd64 project
Doug Simon <doug.simon@oracle.com>
parents:
6491
diff
changeset
|
23 package com.oracle.graal.hotspot; |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
24 |
8586
82f6a25321b8
modeling of lock state removed from LIR and runtime specific debug info for locks moved into runtime specific classes
Doug Simon <doug.simon@oracle.com>
parents:
7530
diff
changeset
|
25 import com.oracle.graal.api.code.*; |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
26 import com.oracle.graal.api.meta.*; |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
27 import com.oracle.graal.compiler.common.*; |
14991
64dcb92ee75a
Truffle: Change signature for Truffle calls from (PackedFrame, Arguments) to (Object[]).
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
14950
diff
changeset
|
28 import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; |
12787
9b62c748c9ae
get thread register from generator when lowering CurrentJavaThreadNode node instead of getting it from the host provider
Doug Simon <doug.simon@oracle.com>
parents:
9562
diff
changeset
|
29 import com.oracle.graal.hotspot.meta.*; |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
30 import com.oracle.graal.hotspot.nodes.*; |
15104 | 31 import com.oracle.graal.lir.StandardOp.SaveRegistersOp; |
15297
3a6151ed5a25
Move LIRGenerator to graal.lir (errors).
Josef Eisl <josef.eisl@jku.at>
parents:
15104
diff
changeset
|
32 import com.oracle.graal.lir.gen.*; |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
33 |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
34 /** |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
6495
diff
changeset
|
35 * This interface defines the contract a HotSpot backend LIR generator needs to fulfill in addition |
15103
9dc7efd43c44
HotSpotLIRGenerator should extend LIRGeneratorTool
twisti
parents:
15058
diff
changeset
|
36 * to abstract methods from {@link LIRGenerator} and {@link LIRGeneratorTool}. |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
37 */ |
15103
9dc7efd43c44
HotSpotLIRGenerator should extend LIRGeneratorTool
twisti
parents:
15058
diff
changeset
|
38 public interface HotSpotLIRGenerator extends LIRGeneratorTool { |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
39 |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
40 /** |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
41 * Emits an operation to make a tail call. |
15058
895e9ecedfe8
Fix code generation for compressed metaspace pointers.
Roland Schatz <roland.schatz@oracle.com>
parents:
14991
diff
changeset
|
42 * |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
43 * @param args the arguments of the call |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
44 * @param address the target address of the call |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
45 */ |
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
46 void emitTailcall(Value[] args, Value address); |
6491
e61ef9ba27a8
refactored lowering of DirectCompareAndSwap node into HotSpotLIRGenerator
Doug Simon <doug.simon@oracle.com>
parents:
6489
diff
changeset
|
47 |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
48 void emitDeoptimizeCaller(DeoptimizationAction action, DeoptimizationReason reason); |
15104 | 49 |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
50 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
51 * Emits code for a {@link SaveAllRegistersNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
52 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
53 * @return a {@link SaveRegistersOp} operation |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
54 */ |
15104 | 55 SaveRegistersOp emitSaveAllRegisters(); |
56 | |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
57 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
58 * Emits code for a {@link LeaveCurrentStackFrameNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
59 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
60 * @param saveRegisterOp saved registers |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
61 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
62 default void emitLeaveCurrentStackFrame(SaveRegistersOp saveRegisterOp) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
63 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
64 } |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
65 |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
66 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
67 * Emits code for a {@link LeaveDeoptimizedStackFrameNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
68 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
69 * @param frameSize |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
70 * @param initialInfo |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
71 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
72 default void emitLeaveDeoptimizedStackFrame(Value frameSize, Value initialInfo) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
73 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
74 } |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
75 |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
76 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
77 * Emits code for a {@link EnterUnpackFramesStackFrameNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
78 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
79 * @param framePc |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
80 * @param senderSp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
81 * @param senderFp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
82 * @param saveRegisterOp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
83 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
84 default void emitEnterUnpackFramesStackFrame(Value framePc, Value senderSp, Value senderFp, SaveRegistersOp saveRegisterOp) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
85 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
86 } |
9338
0266549ff6e0
added support from compiled stubs to be installed as RuntimeStubs and to be able to directly call C/C++ runtime functions (GRAAL-81)
Doug Simon <doug.simon@oracle.com>
parents:
8586
diff
changeset
|
87 |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
88 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
89 * Emits code for a {@link LeaveUnpackFramesStackFrameNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
90 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
91 * @param saveRegisterOp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
92 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
93 default void emitLeaveUnpackFramesStackFrame(SaveRegistersOp saveRegisterOp) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
94 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
95 } |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
96 |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
97 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
98 * Emits code for a {@link PushInterpreterFrameNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
99 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
100 * @param frameSize |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
101 * @param framePc |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
102 * @param senderSp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
103 * @param initialInfo |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
104 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
105 default void emitPushInterpreterFrame(Value frameSize, Value framePc, Value senderSp, Value initialInfo) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
106 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
107 } |
15104 | 108 |
15456
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
109 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
110 * Emits code for a {@link UncommonTrapCallNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
111 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
112 * @param trapRequest |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
113 * @param saveRegisterOp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
114 * @return a {@code Deoptimization::UnrollBlock} pointer |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
115 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
116 default Value emitUncommonTrapCall(Value trapRequest, SaveRegistersOp saveRegisterOp) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
117 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
118 } |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
119 |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
120 /** |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
121 * Emits code for a {@link DeoptimizationFetchUnrollInfoCallNode}. |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
122 * |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
123 * @param saveRegisterOp |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
124 * @return a {@code Deoptimization::UnrollBlock} pointer |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
125 */ |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
126 default Value emitDeoptimizationFetchUnrollInfoCall(SaveRegistersOp saveRegisterOp) { |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
127 throw GraalInternalError.unimplemented(); |
bb97b75d1d65
AMD64: implemented DeoptimizationStub.deoptimizationHandler
twisti
parents:
15298
diff
changeset
|
128 } |
15104 | 129 |
8586
82f6a25321b8
modeling of lock state removed from LIR and runtime specific debug info for locks moved into runtime specific classes
Doug Simon <doug.simon@oracle.com>
parents:
7530
diff
changeset
|
130 /** |
82f6a25321b8
modeling of lock state removed from LIR and runtime specific debug info for locks moved into runtime specific classes
Doug Simon <doug.simon@oracle.com>
parents:
7530
diff
changeset
|
131 * Gets a stack slot for a lock at a given lock nesting depth. |
82f6a25321b8
modeling of lock state removed from LIR and runtime specific debug info for locks moved into runtime specific classes
Doug Simon <doug.simon@oracle.com>
parents:
7530
diff
changeset
|
132 */ |
18425
b856446ff7e0
Introduce StackSlotValue and VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents:
15456
diff
changeset
|
133 StackSlotValue getLockSlot(int lockDepth); |
12787
9b62c748c9ae
get thread register from generator when lowering CurrentJavaThreadNode node instead of getting it from the host provider
Doug Simon <doug.simon@oracle.com>
parents:
9562
diff
changeset
|
134 |
9b62c748c9ae
get thread register from generator when lowering CurrentJavaThreadNode node instead of getting it from the host provider
Doug Simon <doug.simon@oracle.com>
parents:
9562
diff
changeset
|
135 HotSpotProviders getProviders(); |
14943
e5a55d280f24
Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents:
14888
diff
changeset
|
136 |
15058
895e9ecedfe8
Fix code generation for compressed metaspace pointers.
Roland Schatz <roland.schatz@oracle.com>
parents:
14991
diff
changeset
|
137 Value emitCompress(Value pointer, CompressEncoding encoding, boolean nonNull); |
14943
e5a55d280f24
Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents:
14888
diff
changeset
|
138 |
15058
895e9ecedfe8
Fix code generation for compressed metaspace pointers.
Roland Schatz <roland.schatz@oracle.com>
parents:
14991
diff
changeset
|
139 Value emitUncompress(Value pointer, CompressEncoding encoding, boolean nonNull); |
6489
1f0edd29cc66
defined new HotSpot specific interface extending the contract of a LIR generator
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
140 } |