Mercurial > hg > graal-jvmci-8
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); } |