comparison src/share/vm/oops/cpCache.hpp @ 23660:b5f3a471e646

Merge.
author Doug Simon <doug.simon@oracle.com>
date Wed, 01 Jun 2016 00:11:44 +0200
parents dd9cc155639c 32b682649973
children 4da0ab22649c
comparison
equal deleted inserted replaced
23411:d7cf78885a3a 23660:b5f3a471e646
1 /* 1 /*
2 * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1998, 2016, 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.
75 // f flag true if field is marked final 75 // f flag true if field is marked final
76 // v flag true if field is volatile (only for fields) 76 // v flag true if field is volatile (only for fields)
77 // f2 flag true if f2 contains an oop (e.g., virtual final method) 77 // f2 flag true if f2 contains an oop (e.g., virtual final method)
78 // fv flag true if invokeinterface used for method in class Object 78 // fv flag true if invokeinterface used for method in class Object
79 // 79 //
80 // The flags 31, 30, 29, 28 together build a 4 bit number 0 to 8 with the 80 // The flags 31, 30, 29, 28 together build a 4 bit number 0 to 16 with the
81 // following mapping to the TosState states: 81 // following mapping to the TosState states:
82 // 82 //
83 // btos: 0 83 // btos: 0
84 // ctos: 1 84 // ztos: 1
85 // stos: 2 85 // ctos: 2
86 // itos: 3 86 // stos: 3
87 // ltos: 4 87 // itos: 4
88 // ftos: 5 88 // ltos: 5
89 // dtos: 6 89 // ftos: 6
90 // atos: 7 90 // dtos: 7
91 // vtos: 8 91 // atos: 8
92 // vtos: 9
92 // 93 //
93 // Entry specific: field entries: 94 // Entry specific: field entries:
94 // _indices = get (b1 section) and put (b2 section) bytecodes, original constant pool index 95 // _indices = get (b1 section) and put (b2 section) bytecodes, original constant pool index
95 // _f1 = field holder (as a java.lang.Class, not a Klass*) 96 // _f1 = field holder (as a java.lang.Class, not a Klass*)
96 // _f2 = field offset in bytes 97 // _f2 = field offset in bytes
349 bool is_vfinal() const { return (_flags & (1 << is_vfinal_shift)) != 0; } 350 bool is_vfinal() const { return (_flags & (1 << is_vfinal_shift)) != 0; }
350 bool has_appendix() const { return (!is_f1_null()) && (_flags & (1 << has_appendix_shift)) != 0; } 351 bool has_appendix() const { return (!is_f1_null()) && (_flags & (1 << has_appendix_shift)) != 0; }
351 bool has_method_type() const { return (!is_f1_null()) && (_flags & (1 << has_method_type_shift)) != 0; } 352 bool has_method_type() const { return (!is_f1_null()) && (_flags & (1 << has_method_type_shift)) != 0; }
352 bool is_method_entry() const { return (_flags & (1 << is_field_entry_shift)) == 0; } 353 bool is_method_entry() const { return (_flags & (1 << is_field_entry_shift)) == 0; }
353 bool is_field_entry() const { return (_flags & (1 << is_field_entry_shift)) != 0; } 354 bool is_field_entry() const { return (_flags & (1 << is_field_entry_shift)) != 0; }
354 bool is_byte() const { return flag_state() == btos; }
355 bool is_char() const { return flag_state() == ctos; }
356 bool is_short() const { return flag_state() == stos; }
357 bool is_int() const { return flag_state() == itos; }
358 bool is_long() const { return flag_state() == ltos; } 355 bool is_long() const { return flag_state() == ltos; }
359 bool is_float() const { return flag_state() == ftos; }
360 bool is_double() const { return flag_state() == dtos; } 356 bool is_double() const { return flag_state() == dtos; }
361 bool is_object() const { return flag_state() == atos; }
362 TosState flag_state() const { assert((uint)number_of_states <= (uint)tos_state_mask+1, ""); 357 TosState flag_state() const { assert((uint)number_of_states <= (uint)tos_state_mask+1, "");
363 return (TosState)((_flags >> tos_state_shift) & tos_state_mask); } 358 return (TosState)((_flags >> tos_state_shift) & tos_state_mask); }
364 359
365 // Code generation support 360 // Code generation support
366 static WordSize size() { return in_WordSize(sizeof(ConstantPoolCacheEntry) / HeapWordSize); } 361 static WordSize size() { return in_WordSize(sizeof(ConstantPoolCacheEntry) / HeapWordSize); }