Mercurial > hg > truffle
annotate graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotSafepointOp.java @ 21673:5024c80224c7
moved com.oracle.graal.[amd64|sparc] to com.oracle.jvmci.[amd64|sparc] (JBS:GRAAL-53)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 02 Jun 2015 22:11:52 +0200 |
parents | 48c1ebd24120 |
children | 6df25b1418be |
rev | line source |
---|---|
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
1 /* |
19526
8fc336a04d77
Create TYPE fields for LIRInstruction and CompositeValue. Renaming NodeClass#get to NodeClass#create.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
18572
diff
changeset
|
2 * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
4 * |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
8 * |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
14 * |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
18 * |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
21 * questions. |
f9aae727d035
removed XIR safepoint operation
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:
6493
diff
changeset
|
23 package com.oracle.graal.hotspot.amd64; |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
24 |
21556
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
25 import com.oracle.jvmci.code.RegisterValue; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
26 import com.oracle.jvmci.code.Register; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
27 import com.oracle.jvmci.code.InfopointReason; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
28 import com.oracle.jvmci.meta.Value; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
29 import com.oracle.jvmci.meta.LIRKind; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
30 import com.oracle.jvmci.meta.JavaConstant; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
31 import com.oracle.jvmci.meta.AllocatableValue; |
48c1ebd24120
renamed com.oracle.graal.api[meta|code] modules to com.oracle.jvmci.[meta|code] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21551
diff
changeset
|
32 import com.oracle.jvmci.meta.Kind; |
21673
5024c80224c7
moved com.oracle.graal.[amd64|sparc] to com.oracle.jvmci.[amd64|sparc] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21556
diff
changeset
|
33 |
13476
e6309fde98c8
exposed ForceUnreachable to Graal and used it when emitting safepoint polling code
Doug Simon <doug.simon@oracle.com>
parents:
13352
diff
changeset
|
34 import static com.oracle.graal.asm.NumUtil.*; |
15259
d90e5c22ba55
Move GraalOptions to graal.compiler.common.
Josef Eisl <josef.eisl@jku.at>
parents:
15018
diff
changeset
|
35 import static com.oracle.graal.compiler.common.GraalOptions.*; |
21673
5024c80224c7
moved com.oracle.graal.[amd64|sparc] to com.oracle.jvmci.[amd64|sparc] (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21556
diff
changeset
|
36 import static com.oracle.jvmci.amd64.AMD64.*; |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
37 |
6531
4afe23aa0a00
renamed packages: com.oracle.max.asm... -> com.oracle.graal.asm...
Doug Simon <doug.simon@oracle.com>
parents:
6495
diff
changeset
|
38 import com.oracle.graal.asm.amd64.*; |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
39 import com.oracle.graal.lir.*; |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
40 import com.oracle.graal.lir.amd64.*; |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
41 import com.oracle.graal.lir.asm.*; |
7938
24e93ac47e95
Allocate temporary register for safepoint operation instead of using scratch register.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
7841
diff
changeset
|
42 import com.oracle.graal.nodes.spi.*; |
21551
5324104ac4f3
moved com.oracle.graal.hotspot.jvmci classes to com.oracle.jvmci.hotspot module (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21526
diff
changeset
|
43 import com.oracle.jvmci.hotspot.*; |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
44 |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
45 /** |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
46 * Emits a safepoint poll. |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
47 */ |
5733
141b15521a39
use annotated fields for operands of LIR instructions
Christian Wimmer <christian.wimmer@oracle.com>
parents:
5548
diff
changeset
|
48 @Opcode("SAFEPOINT") |
19526
8fc336a04d77
Create TYPE fields for LIRInstruction and CompositeValue. Renaming NodeClass#get to NodeClass#create.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
18572
diff
changeset
|
49 public final class AMD64HotSpotSafepointOp extends AMD64LIRInstruction { |
8fc336a04d77
Create TYPE fields for LIRInstruction and CompositeValue. Renaming NodeClass#get to NodeClass#create.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
18572
diff
changeset
|
50 public static final LIRInstructionClass<AMD64HotSpotSafepointOp> TYPE = LIRInstructionClass.create(AMD64HotSpotSafepointOp.class); |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7154
diff
changeset
|
51 |
5733
141b15521a39
use annotated fields for operands of LIR instructions
Christian Wimmer <christian.wimmer@oracle.com>
parents:
5548
diff
changeset
|
52 @State protected LIRFrameState state; |
13352
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
53 @Temp({OperandFlag.REG, OperandFlag.ILLEGAL}) private AllocatableValue temp; |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
54 |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
55 private final HotSpotVMConfig config; |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
56 |
14950
d5a1206e1923
NodeLIRBuilderTool: fix typo in interface name.
Josef Eisl <josef.eisl@jku.at>
parents:
14888
diff
changeset
|
57 public AMD64HotSpotSafepointOp(LIRFrameState state, HotSpotVMConfig config, NodeLIRBuilderTool tool) { |
19526
8fc336a04d77
Create TYPE fields for LIRInstruction and CompositeValue. Renaming NodeClass#get to NodeClass#create.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
18572
diff
changeset
|
58 super(TYPE); |
5733
141b15521a39
use annotated fields for operands of LIR instructions
Christian Wimmer <christian.wimmer@oracle.com>
parents:
5548
diff
changeset
|
59 this.state = state; |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
60 this.config = config; |
13513
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
61 if (isPollingPageFar(config) || ImmutableCode.getValue()) { |
16094
c0b8d395368b
Introduce LIRKind to accurately track oop references in backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
15259
diff
changeset
|
62 temp = tool.getLIRGeneratorTool().newVariable(LIRKind.value(tool.getLIRGeneratorTool().target().wordKind)); |
13352
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
63 } else { |
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
64 // Don't waste a register if it's unneeded |
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
65 temp = Value.ILLEGAL; |
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
66 } |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
67 } |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
68 |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
69 @Override |
13227
1a66453f73db
renamed TargetMethodAssembler to CompilationResultBuilder
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
70 public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler asm) { |
13352
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
71 emitCode(crb, asm, config, false, state, temp instanceof RegisterValue ? ((RegisterValue) temp).getRegister() : null); |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
72 } |
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
73 |
12559
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
74 /** |
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
75 * Tests if the polling page address can be reached from the code cache with 32-bit |
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
76 * displacements. |
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
77 */ |
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
78 private static boolean isPollingPageFar(HotSpotVMConfig config) { |
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
79 final long pollingPageAddress = config.safepointPollingAddress; |
13476
e6309fde98c8
exposed ForceUnreachable to Graal and used it when emitting safepoint polling code
Doug Simon <doug.simon@oracle.com>
parents:
13352
diff
changeset
|
80 return config.forceUnreachable || !isInt(pollingPageAddress - config.codeCacheLowBoundary()) || !isInt(pollingPageAddress - config.codeCacheHighBoundary()); |
12559
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
81 } |
ae412befde21
read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents:
11760
diff
changeset
|
82 |
13227
1a66453f73db
renamed TargetMethodAssembler to CompilationResultBuilder
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
83 public static void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler asm, HotSpotVMConfig config, boolean atReturn, LIRFrameState state, Register scratch) { |
13972
28f560605e77
safepoint poll at return can never be elided
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13576
diff
changeset
|
84 assert !atReturn || state == null : "state is unneeded at return"; |
13513
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
85 if (ImmutableCode.getValue()) { |
18572
c4da2e160178
removed static reference to HotSpotGraalRuntime
Doug Simon <doug.simon@oracle.com>
parents:
18187
diff
changeset
|
86 Kind hostWordKind = Kind.Long; |
13513
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
87 int alignment = hostWordKind.getBitCount() / Byte.SIZE; |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16094
diff
changeset
|
88 JavaConstant pollingPageAddress = JavaConstant.forIntegerKind(hostWordKind, config.safepointPollingAddress); |
13513
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
89 // This move will be patched to load the safepoint page from a data segment |
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
90 // co-located with the immutable code. |
13576
4e679d50ba9a
Move data section building code to Java.
Roland Schatz <roland.schatz@oracle.com>
parents:
13513
diff
changeset
|
91 asm.movq(scratch, (AMD64Address) crb.recordDataReferenceInCode(pollingPageAddress, alignment)); |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
13972
diff
changeset
|
92 final int pos = asm.position(); |
21413
15a46a918fc1
removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
19526
diff
changeset
|
93 crb.recordMark(atReturn ? config.MARKID_POLL_RETURN_FAR : config.MARKID_POLL_FAR); |
13513
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
94 if (state != null) { |
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
95 crb.recordInfopoint(pos, state, InfopointReason.SAFEPOINT); |
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
96 } |
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
97 asm.testl(rax, new AMD64Address(scratch)); |
64a23ce736a0
added support for ImmutabelCode safepoints (GRAAL-283)
Doug Simon <doug.simon@oracle.com>
parents:
13477
diff
changeset
|
98 } else if (isPollingPageFar(config)) { |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
99 asm.movq(scratch, config.safepointPollingAddress); |
21413
15a46a918fc1
removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
19526
diff
changeset
|
100 crb.recordMark(atReturn ? config.MARKID_POLL_RETURN_FAR : config.MARKID_POLL_FAR); |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
13972
diff
changeset
|
101 final int pos = asm.position(); |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
102 if (state != null) { |
13227
1a66453f73db
renamed TargetMethodAssembler to CompilationResultBuilder
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
103 crb.recordInfopoint(pos, state, InfopointReason.SAFEPOINT); |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
104 } |
13352
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
105 asm.testl(rax, new AMD64Address(scratch)); |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
106 } else { |
21413
15a46a918fc1
removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
19526
diff
changeset
|
107 crb.recordMark(atReturn ? config.MARKID_POLL_RETURN_NEAR : config.MARKID_POLL_NEAR); |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
13972
diff
changeset
|
108 final int pos = asm.position(); |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
109 if (state != null) { |
13227
1a66453f73db
renamed TargetMethodAssembler to CompilationResultBuilder
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
110 crb.recordInfopoint(pos, state, InfopointReason.SAFEPOINT); |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
10913
diff
changeset
|
111 } |
7154
5d0bb7d52783
changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents:
6580
diff
changeset
|
112 // The C++ code transforms the polling page offset into an RIP displacement |
5d0bb7d52783
changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents:
6580
diff
changeset
|
113 // to the real address at that offset in the polling page. |
13352
cd22c6bb4a35
use test instead of mov for poll
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13227
diff
changeset
|
114 asm.testl(rax, new AMD64Address(rip, 0)); |
5236
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
115 } |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
116 } |
f9aae727d035
removed XIR safepoint operation
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
117 } |