comparison src/share/vm/runtime/vmStructs.cpp @ 14518:d8041d695d19

Merged with jdk9/dev/hotspot changeset 3812c088b945
author twisti
date Tue, 11 Mar 2014 18:45:59 -0700
parents 800057208a2c 1077c8270209
children b51e29501f30
comparison
equal deleted inserted replaced
14141:f97c5ec83832 14518:d8041d695d19
1 /* 1 /*
2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2014, 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.
143 # include "vmStructs_linux_arm.hpp" 143 # include "vmStructs_linux_arm.hpp"
144 #endif 144 #endif
145 #ifdef TARGET_OS_ARCH_linux_ppc 145 #ifdef TARGET_OS_ARCH_linux_ppc
146 # include "vmStructs_linux_ppc.hpp" 146 # include "vmStructs_linux_ppc.hpp"
147 #endif 147 #endif
148 #ifdef TARGET_OS_ARCH_aix_ppc
149 # include "vmStructs_aix_ppc.hpp"
150 #endif
148 #ifdef TARGET_OS_ARCH_bsd_x86 151 #ifdef TARGET_OS_ARCH_bsd_x86
149 # include "vmStructs_bsd_x86.hpp" 152 # include "vmStructs_bsd_x86.hpp"
150 #endif 153 #endif
151 #ifdef TARGET_OS_ARCH_bsd_zero 154 #ifdef TARGET_OS_ARCH_bsd_zero
152 # include "vmStructs_bsd_zero.hpp" 155 # include "vmStructs_bsd_zero.hpp"
199 # include "adfiles/adGlobals_zero.hpp" 202 # include "adfiles/adGlobals_zero.hpp"
200 #endif 203 #endif
201 #ifdef TARGET_ARCH_MODEL_arm 204 #ifdef TARGET_ARCH_MODEL_arm
202 # include "adfiles/adGlobals_arm.hpp" 205 # include "adfiles/adGlobals_arm.hpp"
203 #endif 206 #endif
204 #ifdef TARGET_ARCH_MODEL_ppc 207 #ifdef TARGET_ARCH_MODEL_ppc_32
205 # include "adfiles/adGlobals_ppc.hpp" 208 # include "adfiles/adGlobals_ppc_32.hpp"
206 #endif 209 #endif
210 #ifdef TARGET_ARCH_MODEL_ppc_64
211 # include "adfiles/adGlobals_ppc_64.hpp"
207 #endif 212 #endif
213 #endif // COMPILER2
208 214
209 // Note: the cross-product of (c1, c2, product, nonproduct, ...), 215 // Note: the cross-product of (c1, c2, product, nonproduct, ...),
210 // (nonstatic, static), and (unchecked, checked) has not been taken. 216 // (nonstatic, static), and (unchecked, checked) has not been taken.
211 // Only the macros currently needed have been defined. 217 // Only the macros currently needed have been defined.
212 218
243 typedef Hashtable<oop, mtSymbol> StringHashtable; 249 typedef Hashtable<oop, mtSymbol> StringHashtable;
244 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable; 250 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable;
245 typedef Hashtable<Klass*, mtClass> KlassHashtable; 251 typedef Hashtable<Klass*, mtClass> KlassHashtable;
246 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry; 252 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry;
247 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 253 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
248 typedef BinaryTreeDictionary<Metablock, FreeList> MetablockTreeDictionary;
249 254
250 //-------------------------------------------------------------------------------- 255 //--------------------------------------------------------------------------------
251 // VM_STRUCTS 256 // VM_STRUCTS
252 // 257 //
253 // This list enumerates all of the fields the serviceability agent 258 // This list enumerates all of the fields the serviceability agent
1212 c2_nonstatic_field(Block, _succs, Block_Array) \ 1217 c2_nonstatic_field(Block, _succs, Block_Array) \
1213 c2_nonstatic_field(Block, _num_succs, uint) \ 1218 c2_nonstatic_field(Block, _num_succs, uint) \
1214 c2_nonstatic_field(Block, _pre_order, uint) \ 1219 c2_nonstatic_field(Block, _pre_order, uint) \
1215 c2_nonstatic_field(Block, _dom_depth, uint) \ 1220 c2_nonstatic_field(Block, _dom_depth, uint) \
1216 c2_nonstatic_field(Block, _idom, Block*) \ 1221 c2_nonstatic_field(Block, _idom, Block*) \
1217 c2_nonstatic_field(Block, _freq, jfloat) \ 1222 c2_nonstatic_field(Block, _freq, jdouble) \
1218 \ 1223 \
1219 c2_nonstatic_field(CFGElement, _freq, jfloat) \ 1224 c2_nonstatic_field(CFGElement, _freq, jdouble) \
1220 \ 1225 \
1221 c2_nonstatic_field(Block_List, _cnt, uint) \ 1226 c2_nonstatic_field(Block_List, _cnt, uint) \
1222 \ 1227 \
1223 c2_nonstatic_field(Block_Array, _size, uint) \ 1228 c2_nonstatic_field(Block_Array, _size, uint) \
1224 c2_nonstatic_field(Block_Array, _blocks, Block**) \ 1229 c2_nonstatic_field(Block_Array, _blocks, Block**) \
1322 nonstatic_field(elapsedTimer, _active, bool) \ 1327 nonstatic_field(elapsedTimer, _active, bool) \
1323 nonstatic_field(InvocationCounter, _counter, unsigned int) \ 1328 nonstatic_field(InvocationCounter, _counter, unsigned int) \
1324 volatile_nonstatic_field(FreeChunk, _size, size_t) \ 1329 volatile_nonstatic_field(FreeChunk, _size, size_t) \
1325 nonstatic_field(FreeChunk, _next, FreeChunk*) \ 1330 nonstatic_field(FreeChunk, _next, FreeChunk*) \
1326 nonstatic_field(FreeChunk, _prev, FreeChunk*) \ 1331 nonstatic_field(FreeChunk, _prev, FreeChunk*) \
1327 nonstatic_field(FreeList<FreeChunk>, _size, size_t) \ 1332 nonstatic_field(AdaptiveFreeList<FreeChunk>, _size, size_t) \
1328 nonstatic_field(FreeList<Metablock>, _size, size_t) \ 1333 nonstatic_field(AdaptiveFreeList<FreeChunk>, _count, ssize_t)
1329 nonstatic_field(FreeList<FreeChunk>, _count, ssize_t) \
1330 nonstatic_field(FreeList<Metablock>, _count, ssize_t) \
1331 nonstatic_field(MetablockTreeDictionary, _total_size, size_t)
1332 1334
1333 //-------------------------------------------------------------------------------- 1335 //--------------------------------------------------------------------------------
1334 // VM_TYPES 1336 // VM_TYPES
1335 // 1337 //
1336 // This list must enumerate at least all of the types in the above 1338 // This list must enumerate at least all of the types in the above
1855 declare_c2_type(CastX2PNode, Node) \ 1857 declare_c2_type(CastX2PNode, Node) \
1856 declare_c2_type(CastP2XNode, Node) \ 1858 declare_c2_type(CastP2XNode, Node) \
1857 declare_c2_type(MemBarNode, MultiNode) \ 1859 declare_c2_type(MemBarNode, MultiNode) \
1858 declare_c2_type(MemBarAcquireNode, MemBarNode) \ 1860 declare_c2_type(MemBarAcquireNode, MemBarNode) \
1859 declare_c2_type(MemBarReleaseNode, MemBarNode) \ 1861 declare_c2_type(MemBarReleaseNode, MemBarNode) \
1862 declare_c2_type(LoadFenceNode, MemBarNode) \
1863 declare_c2_type(StoreFenceNode, MemBarNode) \
1860 declare_c2_type(MemBarVolatileNode, MemBarNode) \ 1864 declare_c2_type(MemBarVolatileNode, MemBarNode) \
1861 declare_c2_type(MemBarCPUOrderNode, MemBarNode) \ 1865 declare_c2_type(MemBarCPUOrderNode, MemBarNode) \
1862 declare_c2_type(InitializeNode, MemBarNode) \ 1866 declare_c2_type(InitializeNode, MemBarNode) \
1863 declare_c2_type(ThreadLocalNode, Node) \ 1867 declare_c2_type(ThreadLocalNode, Node) \
1864 declare_c2_type(Opaque1Node, Node) \ 1868 declare_c2_type(Opaque1Node, Node) \
1979 declare_c2_type(CmpL3Node, CmpLNode) \ 1983 declare_c2_type(CmpL3Node, CmpLNode) \
1980 declare_c2_type(CmpFNode, CmpNode) \ 1984 declare_c2_type(CmpFNode, CmpNode) \
1981 declare_c2_type(CmpF3Node, CmpFNode) \ 1985 declare_c2_type(CmpF3Node, CmpFNode) \
1982 declare_c2_type(CmpDNode, CmpNode) \ 1986 declare_c2_type(CmpDNode, CmpNode) \
1983 declare_c2_type(CmpD3Node, CmpDNode) \ 1987 declare_c2_type(CmpD3Node, CmpDNode) \
1984 declare_c2_type(MathExactNode, MultiNode) \
1985 declare_c2_type(MathExactINode, MathExactNode) \
1986 declare_c2_type(AddExactINode, MathExactINode) \
1987 declare_c2_type(AddExactLNode, MathExactLNode) \
1988 declare_c2_type(SubExactINode, MathExactINode) \
1989 declare_c2_type(SubExactLNode, MathExactLNode) \
1990 declare_c2_type(NegExactINode, MathExactINode) \
1991 declare_c2_type(MulExactINode, MathExactINode) \
1992 declare_c2_type(FlagsProjNode, ProjNode) \
1993 declare_c2_type(BoolNode, Node) \ 1988 declare_c2_type(BoolNode, Node) \
1994 declare_c2_type(AbsNode, Node) \ 1989 declare_c2_type(AbsNode, Node) \
1995 declare_c2_type(AbsINode, AbsNode) \ 1990 declare_c2_type(AbsINode, AbsNode) \
1996 declare_c2_type(AbsFNode, AbsNode) \ 1991 declare_c2_type(AbsFNode, AbsNode) \
1997 declare_c2_type(AbsDNode, AbsNode) \ 1992 declare_c2_type(AbsDNode, AbsNode) \
2068 declare_c2_type(ExtractSNode, ExtractNode) \ 2063 declare_c2_type(ExtractSNode, ExtractNode) \
2069 declare_c2_type(ExtractINode, ExtractNode) \ 2064 declare_c2_type(ExtractINode, ExtractNode) \
2070 declare_c2_type(ExtractLNode, ExtractNode) \ 2065 declare_c2_type(ExtractLNode, ExtractNode) \
2071 declare_c2_type(ExtractFNode, ExtractNode) \ 2066 declare_c2_type(ExtractFNode, ExtractNode) \
2072 declare_c2_type(ExtractDNode, ExtractNode) \ 2067 declare_c2_type(ExtractDNode, ExtractNode) \
2068 declare_c2_type(OverflowNode, CmpNode) \
2069 declare_c2_type(OverflowINode, OverflowNode) \
2070 declare_c2_type(OverflowAddINode, OverflowINode) \
2071 declare_c2_type(OverflowSubINode, OverflowINode) \
2072 declare_c2_type(OverflowMulINode, OverflowINode) \
2073 declare_c2_type(OverflowLNode, OverflowNode) \
2074 declare_c2_type(OverflowAddLNode, OverflowLNode) \
2075 declare_c2_type(OverflowSubLNode, OverflowLNode) \
2076 declare_c2_type(OverflowMulLNode, OverflowLNode) \
2073 \ 2077 \
2074 /*********************/ \ 2078 /*********************/ \
2075 /* Adapter Blob Entries */ \ 2079 /* Adapter Blob Entries */ \
2076 /*********************/ \ 2080 /*********************/ \
2077 declare_toplevel_type(AdapterHandlerEntry) \ 2081 declare_toplevel_type(AdapterHandlerEntry) \
2196 \ 2200 \
2197 declare_toplevel_type(PtrQueue) \ 2201 declare_toplevel_type(PtrQueue) \
2198 \ 2202 \
2199 /* freelist */ \ 2203 /* freelist */ \
2200 declare_toplevel_type(FreeChunk*) \ 2204 declare_toplevel_type(FreeChunk*) \
2201 declare_toplevel_type(Metablock*) \ 2205 declare_toplevel_type(AdaptiveFreeList<FreeChunk>*) \
2202 declare_toplevel_type(FreeBlockDictionary<FreeChunk>*) \ 2206 declare_toplevel_type(AdaptiveFreeList<FreeChunk>)
2203 declare_toplevel_type(FreeList<FreeChunk>*) \
2204 declare_toplevel_type(FreeList<FreeChunk>) \
2205 declare_toplevel_type(FreeBlockDictionary<Metablock>*) \
2206 declare_toplevel_type(FreeList<Metablock>*) \
2207 declare_toplevel_type(FreeList<Metablock>) \
2208 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
2209 2207
2210 2208
2211 //-------------------------------------------------------------------------------- 2209 //--------------------------------------------------------------------------------
2212 // VM_INT_CONSTANTS 2210 // VM_INT_CONSTANTS
2213 // 2211 //