Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/interpreter_x86_32.cpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | 1d7922586cf6 |
children | cd3d6a6b95d9 |
comparison
equal
deleted
inserted
replaced
6724:36d1d483d5d6 | 6725:da91efe96a93 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2012, 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. |
28 #include "interpreter/interpreter.hpp" | 28 #include "interpreter/interpreter.hpp" |
29 #include "interpreter/interpreterGenerator.hpp" | 29 #include "interpreter/interpreterGenerator.hpp" |
30 #include "interpreter/interpreterRuntime.hpp" | 30 #include "interpreter/interpreterRuntime.hpp" |
31 #include "interpreter/templateTable.hpp" | 31 #include "interpreter/templateTable.hpp" |
32 #include "oops/arrayOop.hpp" | 32 #include "oops/arrayOop.hpp" |
33 #include "oops/methodDataOop.hpp" | 33 #include "oops/methodData.hpp" |
34 #include "oops/methodOop.hpp" | 34 #include "oops/method.hpp" |
35 #include "oops/oop.inline.hpp" | 35 #include "oops/oop.inline.hpp" |
36 #include "prims/jvmtiExport.hpp" | 36 #include "prims/jvmtiExport.hpp" |
37 #include "prims/jvmtiThreadState.hpp" | 37 #include "prims/jvmtiThreadState.hpp" |
38 #include "prims/methodHandles.hpp" | 38 #include "prims/methodHandles.hpp" |
39 #include "runtime/arguments.hpp" | 39 #include "runtime/arguments.hpp" |
74 | 74 |
75 // Empty method, generate a very fast return. | 75 // Empty method, generate a very fast return. |
76 | 76 |
77 address InterpreterGenerator::generate_empty_entry(void) { | 77 address InterpreterGenerator::generate_empty_entry(void) { |
78 | 78 |
79 // rbx,: methodOop | 79 // rbx,: Method* |
80 // rcx: receiver (unused) | 80 // rcx: receiver (unused) |
81 // rsi: previous interpreter state (C++ interpreter) must preserve | 81 // rsi: previous interpreter state (C++ interpreter) must preserve |
82 // rsi: sender sp must set sp to this value on return | 82 // rsi: sender sp must set sp to this value on return |
83 | 83 |
84 if (!UseFastEmptyMethods) return NULL; | 84 if (!UseFastEmptyMethods) return NULL; |
105 return entry_point; | 105 return entry_point; |
106 } | 106 } |
107 | 107 |
108 address InterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKind kind) { | 108 address InterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKind kind) { |
109 | 109 |
110 // rbx,: methodOop | 110 // rbx,: Method* |
111 // rcx: scratrch | 111 // rcx: scratrch |
112 // rsi: sender sp | 112 // rsi: sender sp |
113 | 113 |
114 if (!InlineIntrinsics) return NULL; // Generate a vanilla entry | 114 if (!InlineIntrinsics) return NULL; // Generate a vanilla entry |
115 | 115 |
217 | 217 |
218 // Abstract method entry | 218 // Abstract method entry |
219 // Attempt to execute abstract method. Throw exception | 219 // Attempt to execute abstract method. Throw exception |
220 address InterpreterGenerator::generate_abstract_entry(void) { | 220 address InterpreterGenerator::generate_abstract_entry(void) { |
221 | 221 |
222 // rbx,: methodOop | 222 // rbx,: Method* |
223 // rcx: receiver (unused) | 223 // rcx: receiver (unused) |
224 // rsi: previous interpreter state (C++ interpreter) must preserve | 224 // rsi: previous interpreter state (C++ interpreter) must preserve |
225 | 225 |
226 // rsi: sender SP | 226 // rsi: sender SP |
227 | 227 |