comparison src/share/vm/shark/sharkContext.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 f95d63e2154a
children 2cd5e15048e6
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
3 * Copyright 2009, 2010 Red Hat, Inc. 3 * Copyright 2009, 2010 Red Hat, Inc.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * 5 *
6 * This code is free software; you can redistribute it and/or modify it 6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as 7 * under the terms of the GNU General Public License version 2 only, as
59 ArrayType::get(jbyte_type(), sizeof(JNIEnv))); 59 ArrayType::get(jbyte_type(), sizeof(JNIEnv)));
60 60
61 _jniHandleBlock_type = PointerType::getUnqual( 61 _jniHandleBlock_type = PointerType::getUnqual(
62 ArrayType::get(jbyte_type(), sizeof(JNIHandleBlock))); 62 ArrayType::get(jbyte_type(), sizeof(JNIHandleBlock)));
63 63
64 _methodOop_type = PointerType::getUnqual( 64 _Method*_type = PointerType::getUnqual(
65 ArrayType::get(jbyte_type(), sizeof(methodOopDesc))); 65 ArrayType::get(jbyte_type(), sizeof(Method)));
66 66
67 _monitor_type = ArrayType::get( 67 _monitor_type = ArrayType::get(
68 jbyte_type(), frame::interpreter_frame_monitor_size() * wordSize); 68 jbyte_type(), frame::interpreter_frame_monitor_size() * wordSize);
69 69
70 _oop_type = PointerType::getUnqual( 70 _oop_type = PointerType::getUnqual(
75 75
76 _zeroStack_type = PointerType::getUnqual( 76 _zeroStack_type = PointerType::getUnqual(
77 ArrayType::get(jbyte_type(), sizeof(ZeroStack))); 77 ArrayType::get(jbyte_type(), sizeof(ZeroStack)));
78 78
79 std::vector<const Type*> params; 79 std::vector<const Type*> params;
80 params.push_back(methodOop_type()); 80 params.push_back(Method*_type());
81 params.push_back(intptr_type()); 81 params.push_back(intptr_type());
82 params.push_back(thread_type()); 82 params.push_back(thread_type());
83 _entry_point_type = FunctionType::get(jint_type(), params, false); 83 _entry_point_type = FunctionType::get(jint_type(), params, false);
84 84
85 params.clear(); 85 params.clear();
86 params.push_back(methodOop_type()); 86 params.push_back(Method*_type());
87 params.push_back(PointerType::getUnqual(jbyte_type())); 87 params.push_back(PointerType::getUnqual(jbyte_type()));
88 params.push_back(intptr_type()); 88 params.push_back(intptr_type());
89 params.push_back(thread_type()); 89 params.push_back(thread_type());
90 _osr_entry_point_type = FunctionType::get(jint_type(), params, false); 90 _osr_entry_point_type = FunctionType::get(jint_type(), params, false);
91 91