comparison agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java @ 3939:f6f3bb0ee072

7088955: add C2 IR support to the SA Reviewed-by: kvn
author never
date Sun, 11 Sep 2011 14:48:24 -0700
parents c18cbe5936b8
children
comparison
equal deleted inserted replaced
3938:e6b1331a51d2 3939:f6f3bb0ee072
1 /* 1 /*
2 * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 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 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
23 */ 23 */
24 24
25 package sun.jvm.hotspot.runtime; 25 package sun.jvm.hotspot.runtime;
26 26
27 import java.io.*; 27 import java.io.*;
28 import java.util.*;
28 import sun.jvm.hotspot.debugger.*; 29 import sun.jvm.hotspot.debugger.*;
29 import sun.jvm.hotspot.types.*; 30 import sun.jvm.hotspot.types.*;
31 import sun.jvm.hotspot.ci.*;
30 32
31 public class CompilerThread extends JavaThread { 33 public class CompilerThread extends JavaThread {
34 static {
35 VM.registerVMInitializedObserver(new Observer() {
36 public void update(Observable o, Object data) {
37 initialize(VM.getVM().getTypeDataBase());
38 }
39 });
40 }
41
42 private static AddressField _env_field;
43
44 private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
45 Type type = db.lookupType("CompilerThread");
46
47 _env_field = type.getAddressField("_env");
48 }
49
50 private ciEnv _env;
51
52 public synchronized ciEnv env() {
53 if (_env == null) {
54 Address v = _env_field.getValue(this.getAddress());
55 if (v != null) {
56 _env = new ciEnv(v);
57 }
58 }
59 return _env;
60 }
61
32 public CompilerThread(Address addr) { 62 public CompilerThread(Address addr) {
33 super(addr); 63 super(addr);
34 } 64 }
35 65
36 public boolean isJavaThread() { return false; } 66 public boolean isJavaThread() { return false; }