comparison src/share/vm/ci/ciStreams.hpp @ 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 7f813940ac35
children f6b0eb4e44cf
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 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.
53 return c; 53 return c;
54 } 54 }
55 55
56 ciMethod* _method; // the method 56 ciMethod* _method; // the method
57 ciInstanceKlass* _holder; 57 ciInstanceKlass* _holder;
58 ciCPCache* _cpcache;
59 address _bc_start; // Start of current bytecode for table 58 address _bc_start; // Start of current bytecode for table
60 address _was_wide; // Address past last wide bytecode 59 address _was_wide; // Address past last wide bytecode
61 jint* _table_base; // Aligned start of last table or switch 60 jint* _table_base; // Aligned start of last table or switch
62 61
63 address _start; // Start of bytecodes 62 address _start; // Start of bytecodes
67 Bytecodes::Code _raw_bc; // Current bytecode, raw form 66 Bytecodes::Code _raw_bc; // Current bytecode, raw form
68 67
69 void reset( address base, unsigned int size ) { 68 void reset( address base, unsigned int size ) {
70 _bc_start =_was_wide = 0; 69 _bc_start =_was_wide = 0;
71 _start = _pc = base; _end = base + size; 70 _start = _pc = base; _end = base + size;
72 _cpcache = NULL;
73 } 71 }
74 72
75 void assert_wide(bool require_wide) const { 73 void assert_wide(bool require_wide) const {
76 if (require_wide) 74 if (require_wide)
77 { assert(is_wide(), "must be a wide instruction"); } 75 { assert(is_wide(), "must be a wide instruction"); }
264 ciObject* get_appendix(); 262 ciObject* get_appendix();
265 ciKlass* get_declared_method_holder(); 263 ciKlass* get_declared_method_holder();
266 int get_method_holder_index(); 264 int get_method_holder_index();
267 int get_method_signature_index(); 265 int get_method_signature_index();
268 266
269 ciCPCache* get_cpcache() const; 267 // Get the resolved references arrays from the constant pool
270 ciCallSite* get_call_site(); 268 ciObjArray* get_resolved_references();
271 }; 269 };
272 270
273 271
274 // ciSignatureStream 272 // ciSignatureStream
275 // 273 //