25 package sun.hotspot.code; |
25 package sun.hotspot.code; |
26 |
26 |
27 import java.lang.reflect.Executable; |
27 import java.lang.reflect.Executable; |
28 import sun.hotspot.WhiteBox; |
28 import sun.hotspot.WhiteBox; |
29 |
29 |
30 public class NMethod { |
30 public class NMethod extends CodeBlob { |
31 private static final WhiteBox wb = WhiteBox.getWhiteBox(); |
31 private static final WhiteBox wb = WhiteBox.getWhiteBox(); |
32 public static NMethod get(Executable method, boolean isOsr) { |
32 public static NMethod get(Executable method, boolean isOsr) { |
33 Object[] obj = wb.getNMethod(method, isOsr); |
33 Object[] obj = wb.getNMethod(method, isOsr); |
34 return obj == null ? null : new NMethod(obj); |
34 return obj == null ? null : new NMethod(obj); |
35 } |
35 } |
36 private NMethod(Object[] obj) { |
36 private NMethod(Object[] obj) { |
37 assert obj.length == 3; |
37 super((Object[])obj[0]); |
38 comp_level = (Integer) obj[0]; |
38 assert obj.length == 4; |
39 insts = (byte[]) obj[1]; |
39 comp_level = (Integer) obj[1]; |
40 compile_id = (Integer) obj[2]; |
40 insts = (byte[]) obj[2]; |
|
41 compile_id = (Integer) obj[3]; |
41 } |
42 } |
42 public byte[] insts; |
43 public final byte[] insts; |
43 public int comp_level; |
44 public final int comp_level; |
44 public int compile_id; |
45 public final int compile_id; |
45 |
46 |
46 @Override |
47 @Override |
47 public String toString() { |
48 public String toString() { |
48 return "NMethod{" + |
49 return "NMethod{" |
49 "insts=" + insts + |
50 + super.toString() |
50 ", comp_level=" + comp_level + |
51 + ", insts=" + insts |
51 ", compile_id=" + compile_id + |
52 + ", comp_level=" + comp_level |
52 '}'; |
53 + ", compile_id=" + compile_id |
|
54 + '}'; |
53 } |
55 } |
54 } |
56 } |