comparison src/share/vm/runtime/vmStructs.cpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents 3e9a960f0da1
children 82ff6c8c8f6e
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
1 /* 1 /*
2 * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2013, 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.
144 # include "vmStructs_linux_arm.hpp" 144 # include "vmStructs_linux_arm.hpp"
145 #endif 145 #endif
146 #ifdef TARGET_OS_ARCH_linux_ppc 146 #ifdef TARGET_OS_ARCH_linux_ppc
147 # include "vmStructs_linux_ppc.hpp" 147 # include "vmStructs_linux_ppc.hpp"
148 #endif 148 #endif
149 #ifdef TARGET_OS_ARCH_aix_ppc
150 # include "vmStructs_aix_ppc.hpp"
151 #endif
152 #ifdef TARGET_OS_ARCH_bsd_x86 149 #ifdef TARGET_OS_ARCH_bsd_x86
153 # include "vmStructs_bsd_x86.hpp" 150 # include "vmStructs_bsd_x86.hpp"
154 #endif 151 #endif
155 #ifdef TARGET_OS_ARCH_bsd_zero 152 #ifdef TARGET_OS_ARCH_bsd_zero
156 # include "vmStructs_bsd_zero.hpp" 153 # include "vmStructs_bsd_zero.hpp"
206 # include "adfiles/adGlobals_zero.hpp" 203 # include "adfiles/adGlobals_zero.hpp"
207 #endif 204 #endif
208 #ifdef TARGET_ARCH_MODEL_arm 205 #ifdef TARGET_ARCH_MODEL_arm
209 # include "adfiles/adGlobals_arm.hpp" 206 # include "adfiles/adGlobals_arm.hpp"
210 #endif 207 #endif
211 #ifdef TARGET_ARCH_MODEL_ppc_32 208 #ifdef TARGET_ARCH_MODEL_ppc
212 # include "adfiles/adGlobals_ppc_32.hpp" 209 # include "adfiles/adGlobals_ppc.hpp"
213 #endif 210 #endif
214 #ifdef TARGET_ARCH_MODEL_ppc_64
215 # include "adfiles/adGlobals_ppc_64.hpp"
216 #endif 211 #endif
217 #endif // COMPILER2
218 212
219 // Note: the cross-product of (c1, c2, product, nonproduct, ...), 213 // Note: the cross-product of (c1, c2, product, nonproduct, ...),
220 // (nonstatic, static), and (unchecked, checked) has not been taken. 214 // (nonstatic, static), and (unchecked, checked) has not been taken.
221 // Only the macros currently needed have been defined. 215 // Only the macros currently needed have been defined.
222 216
253 typedef Hashtable<oop, mtSymbol> StringHashtable; 247 typedef Hashtable<oop, mtSymbol> StringHashtable;
254 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable; 248 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable;
255 typedef Hashtable<Klass*, mtClass> KlassHashtable; 249 typedef Hashtable<Klass*, mtClass> KlassHashtable;
256 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry; 250 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry;
257 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 251 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
252 typedef BinaryTreeDictionary<Metablock, FreeList> MetablockTreeDictionary;
258 253
259 //-------------------------------------------------------------------------------- 254 //--------------------------------------------------------------------------------
260 // VM_STRUCTS 255 // VM_STRUCTS
261 // 256 //
262 // This list enumerates all of the fields the serviceability agent 257 // This list enumerates all of the fields the serviceability agent
1222 c2_nonstatic_field(Block, _succs, Block_Array) \ 1217 c2_nonstatic_field(Block, _succs, Block_Array) \
1223 c2_nonstatic_field(Block, _num_succs, uint) \ 1218 c2_nonstatic_field(Block, _num_succs, uint) \
1224 c2_nonstatic_field(Block, _pre_order, uint) \ 1219 c2_nonstatic_field(Block, _pre_order, uint) \
1225 c2_nonstatic_field(Block, _dom_depth, uint) \ 1220 c2_nonstatic_field(Block, _dom_depth, uint) \
1226 c2_nonstatic_field(Block, _idom, Block*) \ 1221 c2_nonstatic_field(Block, _idom, Block*) \
1227 c2_nonstatic_field(Block, _freq, jdouble) \ 1222 c2_nonstatic_field(Block, _freq, jfloat) \
1228 \ 1223 \
1229 c2_nonstatic_field(CFGElement, _freq, jdouble) \ 1224 c2_nonstatic_field(CFGElement, _freq, jfloat) \
1230 \ 1225 \
1231 c2_nonstatic_field(Block_List, _cnt, uint) \ 1226 c2_nonstatic_field(Block_List, _cnt, uint) \
1232 \ 1227 \
1233 c2_nonstatic_field(Block_Array, _size, uint) \ 1228 c2_nonstatic_field(Block_Array, _size, uint) \
1234 c2_nonstatic_field(Block_Array, _blocks, Block**) \ 1229 c2_nonstatic_field(Block_Array, _blocks, Block**) \
1332 nonstatic_field(elapsedTimer, _active, bool) \ 1327 nonstatic_field(elapsedTimer, _active, bool) \
1333 nonstatic_field(InvocationCounter, _counter, unsigned int) \ 1328 nonstatic_field(InvocationCounter, _counter, unsigned int) \
1334 volatile_nonstatic_field(FreeChunk, _size, size_t) \ 1329 volatile_nonstatic_field(FreeChunk, _size, size_t) \
1335 nonstatic_field(FreeChunk, _next, FreeChunk*) \ 1330 nonstatic_field(FreeChunk, _next, FreeChunk*) \
1336 nonstatic_field(FreeChunk, _prev, FreeChunk*) \ 1331 nonstatic_field(FreeChunk, _prev, FreeChunk*) \
1337 nonstatic_field(AdaptiveFreeList<FreeChunk>, _size, size_t) \ 1332 nonstatic_field(FreeList<FreeChunk>, _size, size_t) \
1338 nonstatic_field(AdaptiveFreeList<FreeChunk>, _count, ssize_t) 1333 nonstatic_field(FreeList<Metablock>, _size, size_t) \
1334 nonstatic_field(FreeList<FreeChunk>, _count, ssize_t) \
1335 nonstatic_field(FreeList<Metablock>, _count, ssize_t) \
1336 nonstatic_field(MetablockTreeDictionary, _total_size, size_t)
1339 1337
1340 //-------------------------------------------------------------------------------- 1338 //--------------------------------------------------------------------------------
1341 // VM_TYPES 1339 // VM_TYPES
1342 // 1340 //
1343 // This list must enumerate at least all of the types in the above 1341 // This list must enumerate at least all of the types in the above
1862 declare_c2_type(CastX2PNode, Node) \ 1860 declare_c2_type(CastX2PNode, Node) \
1863 declare_c2_type(CastP2XNode, Node) \ 1861 declare_c2_type(CastP2XNode, Node) \
1864 declare_c2_type(MemBarNode, MultiNode) \ 1862 declare_c2_type(MemBarNode, MultiNode) \
1865 declare_c2_type(MemBarAcquireNode, MemBarNode) \ 1863 declare_c2_type(MemBarAcquireNode, MemBarNode) \
1866 declare_c2_type(MemBarReleaseNode, MemBarNode) \ 1864 declare_c2_type(MemBarReleaseNode, MemBarNode) \
1867 declare_c2_type(LoadFenceNode, MemBarNode) \
1868 declare_c2_type(StoreFenceNode, MemBarNode) \
1869 declare_c2_type(MemBarVolatileNode, MemBarNode) \ 1865 declare_c2_type(MemBarVolatileNode, MemBarNode) \
1870 declare_c2_type(MemBarCPUOrderNode, MemBarNode) \ 1866 declare_c2_type(MemBarCPUOrderNode, MemBarNode) \
1871 declare_c2_type(InitializeNode, MemBarNode) \ 1867 declare_c2_type(InitializeNode, MemBarNode) \
1872 declare_c2_type(ThreadLocalNode, Node) \ 1868 declare_c2_type(ThreadLocalNode, Node) \
1873 declare_c2_type(Opaque1Node, Node) \ 1869 declare_c2_type(Opaque1Node, Node) \
1988 declare_c2_type(CmpL3Node, CmpLNode) \ 1984 declare_c2_type(CmpL3Node, CmpLNode) \
1989 declare_c2_type(CmpFNode, CmpNode) \ 1985 declare_c2_type(CmpFNode, CmpNode) \
1990 declare_c2_type(CmpF3Node, CmpFNode) \ 1986 declare_c2_type(CmpF3Node, CmpFNode) \
1991 declare_c2_type(CmpDNode, CmpNode) \ 1987 declare_c2_type(CmpDNode, CmpNode) \
1992 declare_c2_type(CmpD3Node, CmpDNode) \ 1988 declare_c2_type(CmpD3Node, CmpDNode) \
1989 declare_c2_type(MathExactNode, MultiNode) \
1990 declare_c2_type(MathExactINode, MathExactNode) \
1991 declare_c2_type(AddExactINode, MathExactINode) \
1992 declare_c2_type(AddExactLNode, MathExactLNode) \
1993 declare_c2_type(SubExactINode, MathExactINode) \
1994 declare_c2_type(SubExactLNode, MathExactLNode) \
1995 declare_c2_type(NegExactINode, MathExactINode) \
1996 declare_c2_type(MulExactINode, MathExactINode) \
1997 declare_c2_type(FlagsProjNode, ProjNode) \
1993 declare_c2_type(BoolNode, Node) \ 1998 declare_c2_type(BoolNode, Node) \
1994 declare_c2_type(AbsNode, Node) \ 1999 declare_c2_type(AbsNode, Node) \
1995 declare_c2_type(AbsINode, AbsNode) \ 2000 declare_c2_type(AbsINode, AbsNode) \
1996 declare_c2_type(AbsFNode, AbsNode) \ 2001 declare_c2_type(AbsFNode, AbsNode) \
1997 declare_c2_type(AbsDNode, AbsNode) \ 2002 declare_c2_type(AbsDNode, AbsNode) \
2068 declare_c2_type(ExtractSNode, ExtractNode) \ 2073 declare_c2_type(ExtractSNode, ExtractNode) \
2069 declare_c2_type(ExtractINode, ExtractNode) \ 2074 declare_c2_type(ExtractINode, ExtractNode) \
2070 declare_c2_type(ExtractLNode, ExtractNode) \ 2075 declare_c2_type(ExtractLNode, ExtractNode) \
2071 declare_c2_type(ExtractFNode, ExtractNode) \ 2076 declare_c2_type(ExtractFNode, ExtractNode) \
2072 declare_c2_type(ExtractDNode, ExtractNode) \ 2077 declare_c2_type(ExtractDNode, ExtractNode) \
2073 declare_c2_type(OverflowNode, CmpNode) \
2074 declare_c2_type(OverflowINode, OverflowNode) \
2075 declare_c2_type(OverflowAddINode, OverflowINode) \
2076 declare_c2_type(OverflowSubINode, OverflowINode) \
2077 declare_c2_type(OverflowMulINode, OverflowINode) \
2078 declare_c2_type(OverflowLNode, OverflowNode) \
2079 declare_c2_type(OverflowAddLNode, OverflowLNode) \
2080 declare_c2_type(OverflowSubLNode, OverflowLNode) \
2081 declare_c2_type(OverflowMulLNode, OverflowLNode) \
2082 \ 2078 \
2083 /*********************/ \ 2079 /*********************/ \
2084 /* Adapter Blob Entries */ \ 2080 /* Adapter Blob Entries */ \
2085 /*********************/ \ 2081 /*********************/ \
2086 declare_toplevel_type(AdapterHandlerEntry) \ 2082 declare_toplevel_type(AdapterHandlerEntry) \
2205 \ 2201 \
2206 declare_toplevel_type(PtrQueue) \ 2202 declare_toplevel_type(PtrQueue) \
2207 \ 2203 \
2208 /* freelist */ \ 2204 /* freelist */ \
2209 declare_toplevel_type(FreeChunk*) \ 2205 declare_toplevel_type(FreeChunk*) \
2210 declare_toplevel_type(AdaptiveFreeList<FreeChunk>*) \ 2206 declare_toplevel_type(Metablock*) \
2211 declare_toplevel_type(AdaptiveFreeList<FreeChunk>) 2207 declare_toplevel_type(FreeBlockDictionary<FreeChunk>*) \
2208 declare_toplevel_type(FreeList<FreeChunk>*) \
2209 declare_toplevel_type(FreeList<FreeChunk>) \
2210 declare_toplevel_type(FreeBlockDictionary<Metablock>*) \
2211 declare_toplevel_type(FreeList<Metablock>*) \
2212 declare_toplevel_type(FreeList<Metablock>) \
2213 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
2212 2214
2213 2215
2214 //-------------------------------------------------------------------------------- 2216 //--------------------------------------------------------------------------------
2215 // VM_INT_CONSTANTS 2217 // VM_INT_CONSTANTS
2216 // 2218 //
2448 declare_constant(DataLayout::multi_branch_data_tag) \ 2450 declare_constant(DataLayout::multi_branch_data_tag) \
2449 declare_constant(DataLayout::arg_info_data_tag) \ 2451 declare_constant(DataLayout::arg_info_data_tag) \
2450 declare_constant(DataLayout::call_type_data_tag) \ 2452 declare_constant(DataLayout::call_type_data_tag) \
2451 declare_constant(DataLayout::virtual_call_type_data_tag) \ 2453 declare_constant(DataLayout::virtual_call_type_data_tag) \
2452 declare_constant(DataLayout::parameters_type_data_tag) \ 2454 declare_constant(DataLayout::parameters_type_data_tag) \
2453 declare_constant(DataLayout::speculative_trap_data_tag) \
2454 \ 2455 \
2455 /*************************************/ \ 2456 /*************************************/ \
2456 /* InstanceKlass enum */ \ 2457 /* InstanceKlass enum */ \
2457 /*************************************/ \ 2458 /*************************************/ \
2458 \ 2459 \