comparison graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotStackFrameReference.java @ 21551:5324104ac4f3

moved com.oracle.graal.hotspot.jvmci classes to com.oracle.jvmci.hotspot module (JBS:GRAAL-53)
author Doug Simon <doug.simon@oracle.com>
date Tue, 26 May 2015 17:13:37 +0200
parents
children
comparison
equal deleted inserted replaced
21550:f48a6cea31eb 21551:5324104ac4f3
1 /*
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package com.oracle.jvmci.hotspot;
24
25 import java.util.*;
26
27 import com.oracle.graal.api.code.stack.*;
28 import com.oracle.graal.api.meta.*;
29
30 public class HotSpotStackFrameReference implements InspectedFrame {
31
32 private CompilerToVM compilerToVM;
33
34 // information used to find the stack frame
35 private long stackPointer;
36 private int frameNumber;
37
38 // information about the stack frame's contents
39 private int bci;
40 private long metaspaceMethod;
41 private Object[] locals;
42 private boolean[] localIsVirtual;
43
44 public long getStackPointer() {
45 return stackPointer;
46 }
47
48 public int getFrameNumber() {
49 return frameNumber;
50 }
51
52 @Override
53 public Object getLocal(int index) {
54 return locals[index];
55 }
56
57 @Override
58 public boolean isVirtual(int index) {
59 return localIsVirtual == null ? false : localIsVirtual[index];
60 }
61
62 @Override
63 public void materializeVirtualObjects(boolean invalidateCode) {
64 compilerToVM.materializeVirtualObjects(this, invalidateCode);
65 }
66
67 @Override
68 public int getBytecodeIndex() {
69 return bci;
70 }
71
72 @Override
73 public ResolvedJavaMethod getMethod() {
74 return HotSpotResolvedJavaMethodImpl.fromMetaspace(metaspaceMethod);
75 }
76
77 @Override
78 public boolean isMethod(ResolvedJavaMethod method) {
79 return metaspaceMethod == ((HotSpotResolvedJavaMethodImpl) method).getMetaspaceMethod();
80 }
81
82 @Override
83 public boolean hasVirtualObjects() {
84 return localIsVirtual != null;
85 }
86
87 @Override
88 public String toString() {
89 return "HotSpotStackFrameReference [stackPointer=" + stackPointer + ", frameNumber=" + frameNumber + ", bci=" + bci + ", method=" + getMethod() + ", locals=" + Arrays.toString(locals) +
90 ", localIsVirtual=" + Arrays.toString(localIsVirtual) + "]";
91 }
92 }