Thu, 10 Jan 2013 17:06:26 -0800
8004747: Remove last_entry from VM_STRUCT macros
Summary: Instead of passing in last_entry to all the VM_ macros just expand it in the main vmStructs.cpp file.
Reviewed-by: dholmes, sspitsyn, minqi
1.1 --- a/src/cpu/sparc/vm/vmStructs_sparc.hpp Thu Jan 10 17:38:20 2013 -0500 1.2 +++ b/src/cpu/sparc/vm/vmStructs_sparc.hpp Thu Jan 10 17:06:26 2013 -0800 1.3 @@ -29,7 +29,7 @@ 1.4 // constants required by the Serviceability Agent. This file is 1.5 // referenced by vmStructs.cpp. 1.6 1.7 -#define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 1.8 +#define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 1.9 \ 1.10 /******************************/ \ 1.11 /* JavaCallWrapper */ \ 1.12 @@ -37,22 +37,12 @@ 1.13 /******************************/ \ 1.14 /* JavaFrameAnchor */ \ 1.15 /******************************/ \ 1.16 - volatile_nonstatic_field(JavaFrameAnchor, _flags, int) \ 1.17 - \ 1.18 + volatile_nonstatic_field(JavaFrameAnchor, _flags, int) 1.19 1.20 - /* NOTE that we do not use the last_entry() macro here; it is used */ 1.21 - /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */ 1.22 - /* be present there) */ 1.23 +#define VM_TYPES_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) 1.24 1.25 1.26 -#define VM_TYPES_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 1.27 - 1.28 - /* NOTE that we do not use the last_entry() macro here; it is used */ 1.29 - /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must */ 1.30 - /* be present there) */ 1.31 - 1.32 - 1.33 -#define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 1.34 +#define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \ 1.35 /******************************/ \ 1.36 /* Register numbers (C2 only) */ \ 1.37 /******************************/ \ 1.38 @@ -90,15 +80,6 @@ 1.39 declare_c2_constant(R_G6_num) \ 1.40 declare_c2_constant(R_G7_num) 1.41 1.42 - 1.43 - /* NOTE that we do not use the last_entry() macro here; it is used */ 1.44 - /* in vmStructs_<os>_<cpu>.hpp's VM_INT_CONSTANTS_OS_CPU macro (and must */ 1.45 - /* be present there) */ 1.46 - 1.47 -#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 1.48 - 1.49 - /* NOTE that we do not use the last_entry() macro here; it is used */ 1.50 - /* in vmStructs_<os>_<cpu>.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ 1.51 - /* be present there) */ 1.52 +#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 1.53 1.54 #endif // CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
2.1 --- a/src/cpu/x86/vm/vmStructs_x86.hpp Thu Jan 10 17:38:20 2013 -0500 2.2 +++ b/src/cpu/x86/vm/vmStructs_x86.hpp Thu Jan 10 17:06:26 2013 -0800 2.3 @@ -29,7 +29,7 @@ 2.4 // constants required by the Serviceability Agent. This file is 2.5 // referenced by vmStructs.cpp. 2.6 2.7 -#define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 2.8 +#define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 2.9 \ 2.10 /******************************/ \ 2.11 /* JavaCallWrapper */ \ 2.12 @@ -37,31 +37,14 @@ 2.13 /******************************/ \ 2.14 /* JavaFrameAnchor */ \ 2.15 /******************************/ \ 2.16 - volatile_nonstatic_field(JavaFrameAnchor, _last_Java_fp, intptr_t*) \ 2.17 - \ 2.18 + volatile_nonstatic_field(JavaFrameAnchor, _last_Java_fp, intptr_t*) 2.19 2.20 - /* NOTE that we do not use the last_entry() macro here; it is used */ 2.21 - /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */ 2.22 - /* be present there) */ 2.23 2.24 2.25 -#define VM_TYPES_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 2.26 +#define VM_TYPES_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) 2.27 2.28 - /* NOTE that we do not use the last_entry() macro here; it is used */ 2.29 - /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must */ 2.30 - /* be present there) */ 2.31 +#define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 2.32 2.33 - 2.34 -#define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 2.35 - 2.36 - /* NOTE that we do not use the last_entry() macro here; it is used */ 2.37 - /* in vmStructs_<os>_<cpu>.hpp's VM_INT_CONSTANTS_OS_CPU macro (and must */ 2.38 - /* be present there) */ 2.39 - 2.40 -#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 2.41 - 2.42 - /* NOTE that we do not use the last_entry() macro here; it is used */ 2.43 - /* in vmStructs_<os>_<cpu>.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ 2.44 - /* be present there) */ 2.45 +#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 2.46 2.47 #endif // CPU_X86_VM_VMSTRUCTS_X86_HPP
3.1 --- a/src/cpu/zero/vm/vmStructs_zero.hpp Thu Jan 10 17:38:20 2013 -0500 3.2 +++ b/src/cpu/zero/vm/vmStructs_zero.hpp Thu Jan 10 17:06:26 2013 -0800 3.3 @@ -30,28 +30,12 @@ 3.4 // constants required by the Serviceability Agent. This file is 3.5 // referenced by vmStructs.cpp. 3.6 3.7 -#define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 3.8 +#define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) 3.9 3.10 - /* NOTE that we do not use the last_entry() macro here; it is used */ 3.11 - /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */ 3.12 - /* be present there) */ 3.13 +#define VM_TYPES_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) 3.14 3.15 -#define VM_TYPES_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 3.16 +#define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 3.17 3.18 - /* NOTE that we do not use the last_entry() macro here; it is used */ 3.19 - /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must */ 3.20 - /* be present there) */ 3.21 - 3.22 -#define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 3.23 - 3.24 - /* NOTE that we do not use the last_entry() macro here; it is used */ 3.25 - /* in vmStructs_<os>_<cpu>.hpp's VM_INT_CONSTANTS_OS_CPU macro (and must */ 3.26 - /* be present there) */ 3.27 - 3.28 -#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 3.29 - 3.30 - /* NOTE that we do not use the last_entry() macro here; it is used */ 3.31 - /* in vmStructs_<os>_<cpu>.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ 3.32 - /* be present there) */ 3.33 +#define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 3.34 3.35 #endif // CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
4.1 --- a/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp Thu Jan 10 17:38:20 2013 -0500 4.2 +++ b/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp Thu Jan 10 17:06:26 2013 -0800 4.3 @@ -29,37 +29,26 @@ 4.4 // constants required by the Serviceability Agent. This file is 4.5 // referenced by vmStructs.cpp. 4.6 4.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 4.8 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 4.9 \ 4.10 /******************************/ \ 4.11 /* Threads (NOTE: incomplete) */ \ 4.12 /******************************/ \ 4.13 nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ 4.14 - nonstatic_field(OSThread, _pthread_id, pthread_t) \ 4.15 - /* This must be the last entry, and must be present */ \ 4.16 - last_entry() 4.17 + nonstatic_field(OSThread, _pthread_id, pthread_t) 4.18 4.19 4.20 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 4.21 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ 4.22 \ 4.23 /**********************/ \ 4.24 /* Posix Thread IDs */ \ 4.25 /**********************/ \ 4.26 \ 4.27 declare_unsigned_integer_type(OSThread::thread_id_t) \ 4.28 - declare_unsigned_integer_type(pthread_t) \ 4.29 - \ 4.30 - /* This must be the last entry, and must be present */ \ 4.31 - last_entry() 4.32 + declare_unsigned_integer_type(pthread_t) 4.33 4.34 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 4.35 - \ 4.36 - /* This must be the last entry, and must be present */ \ 4.37 - last_entry() 4.38 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 4.39 4.40 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 4.41 - \ 4.42 - /* This must be the last entry, and must be present */ \ 4.43 - last_entry() 4.44 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 4.45 4.46 #endif // OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
5.1 --- a/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp Thu Jan 10 17:38:20 2013 -0500 5.2 +++ b/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp Thu Jan 10 17:06:26 2013 -0800 5.3 @@ -30,21 +30,13 @@ 5.4 // constants required by the Serviceability Agent. This file is 5.5 // referenced by vmStructs.cpp. 5.6 5.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 5.8 - /* This must be the last entry, and must be present */ \ 5.9 - last_entry() 5.10 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) 5.11 5.12 5.13 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 5.14 - /* This must be the last entry, and must be present */ \ 5.15 - last_entry() 5.16 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) 5.17 5.18 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 5.19 - /* This must be the last entry, and must be present */ \ 5.20 - last_entry() 5.21 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 5.22 5.23 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 5.24 - /* This must be the last entry, and must be present */ \ 5.25 - last_entry() 5.26 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 5.27 5.28 #endif // OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
6.1 --- a/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp Thu Jan 10 17:38:20 2013 -0500 6.2 +++ b/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp Thu Jan 10 17:06:26 2013 -0800 6.3 @@ -29,7 +29,7 @@ 6.4 // constants required by the Serviceability Agent. This file is 6.5 // referenced by vmStructs.cpp. 6.6 6.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 6.8 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 6.9 \ 6.10 /******************************/ \ 6.11 /* Threads (NOTE: incomplete) */ \ 6.12 @@ -37,38 +37,27 @@ 6.13 \ 6.14 nonstatic_field(JavaThread, _base_of_stack_pointer, intptr_t*) \ 6.15 nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ 6.16 - nonstatic_field(OSThread, _pthread_id, pthread_t) \ 6.17 - /* This must be the last entry, and must be present */ \ 6.18 - last_entry() 6.19 + nonstatic_field(OSThread, _pthread_id, pthread_t) 6.20 6.21 6.22 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 6.23 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ 6.24 \ 6.25 /**********************/ \ 6.26 /* POSIX Thread IDs */ \ 6.27 /**********************/ \ 6.28 \ 6.29 declare_integer_type(OSThread::thread_id_t) \ 6.30 - declare_unsigned_integer_type(pthread_t) \ 6.31 - \ 6.32 - /* This must be the last entry, and must be present */ \ 6.33 - last_entry() 6.34 + declare_unsigned_integer_type(pthread_t) 6.35 6.36 6.37 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 6.38 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \ 6.39 \ 6.40 /************************/ \ 6.41 /* JavaThread constants */ \ 6.42 /************************/ \ 6.43 \ 6.44 - declare_constant(JavaFrameAnchor::flushed) \ 6.45 - \ 6.46 - /* This must be the last entry, and must be present */ \ 6.47 - last_entry() 6.48 + declare_constant(JavaFrameAnchor::flushed) 6.49 6.50 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 6.51 - \ 6.52 - /* This must be the last entry, and must be present */ \ 6.53 - last_entry() 6.54 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 6.55 6.56 #endif // OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
7.1 --- a/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp Thu Jan 10 17:38:20 2013 -0500 7.2 +++ b/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp Thu Jan 10 17:06:26 2013 -0800 7.3 @@ -29,37 +29,26 @@ 7.4 // constants required by the Serviceability Agent. This file is 7.5 // referenced by vmStructs.cpp. 7.6 7.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 7.8 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 7.9 \ 7.10 /******************************/ \ 7.11 /* Threads (NOTE: incomplete) */ \ 7.12 /******************************/ \ 7.13 nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ 7.14 - nonstatic_field(OSThread, _pthread_id, pthread_t) \ 7.15 - /* This must be the last entry, and must be present */ \ 7.16 - last_entry() 7.17 + nonstatic_field(OSThread, _pthread_id, pthread_t) 7.18 7.19 7.20 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 7.21 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ 7.22 \ 7.23 /**********************/ \ 7.24 /* Posix Thread IDs */ \ 7.25 /**********************/ \ 7.26 \ 7.27 declare_integer_type(OSThread::thread_id_t) \ 7.28 - declare_unsigned_integer_type(pthread_t) \ 7.29 - \ 7.30 - /* This must be the last entry, and must be present */ \ 7.31 - last_entry() 7.32 + declare_unsigned_integer_type(pthread_t) 7.33 7.34 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 7.35 - \ 7.36 - /* This must be the last entry, and must be present */ \ 7.37 - last_entry() 7.38 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 7.39 7.40 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 7.41 - \ 7.42 - /* This must be the last entry, and must be present */ \ 7.43 - last_entry() 7.44 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 7.45 7.46 #endif // OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
8.1 --- a/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp Thu Jan 10 17:38:20 2013 -0500 8.2 +++ b/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp Thu Jan 10 17:06:26 2013 -0800 8.3 @@ -30,21 +30,12 @@ 8.4 // constants required by the Serviceability Agent. This file is 8.5 // referenced by vmStructs.cpp. 8.6 8.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 8.8 - /* This must be the last entry, and must be present */ \ 8.9 - last_entry() 8.10 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) 8.11 8.12 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) 8.13 8.14 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 8.15 - /* This must be the last entry, and must be present */ \ 8.16 - last_entry() 8.17 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 8.18 8.19 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 8.20 - /* This must be the last entry, and must be present */ \ 8.21 - last_entry() 8.22 - 8.23 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 8.24 - /* This must be the last entry, and must be present */ \ 8.25 - last_entry() 8.26 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 8.27 8.28 #endif // OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
9.1 --- a/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp Thu Jan 10 17:38:20 2013 -0500 9.2 +++ b/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp Thu Jan 10 17:06:26 2013 -0800 9.3 @@ -29,44 +29,32 @@ 9.4 // constants required by the Serviceability Agent. This file is 9.5 // referenced by vmStructs.cpp. 9.6 9.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 9.8 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 9.9 \ 9.10 /******************************/ \ 9.11 /* Threads (NOTE: incomplete) */ \ 9.12 /******************************/ \ 9.13 \ 9.14 nonstatic_field(JavaThread, _base_of_stack_pointer, intptr_t*) \ 9.15 - nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ 9.16 - /* This must be the last entry, and must be present */ \ 9.17 - last_entry() 9.18 + nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) 9.19 9.20 - 9.21 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 9.22 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ 9.23 \ 9.24 /**********************/ \ 9.25 /* Solaris Thread IDs */ \ 9.26 /**********************/ \ 9.27 \ 9.28 - declare_unsigned_integer_type(OSThread::thread_id_t) \ 9.29 - \ 9.30 - /* This must be the last entry, and must be present */ \ 9.31 - last_entry() 9.32 + declare_unsigned_integer_type(OSThread::thread_id_t) 9.33 9.34 9.35 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 9.36 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \ 9.37 \ 9.38 /************************/ \ 9.39 /* JavaThread constants */ \ 9.40 /************************/ \ 9.41 \ 9.42 - declare_constant(JavaFrameAnchor::flushed) \ 9.43 - \ 9.44 - /* This must be the last entry, and must be present */ \ 9.45 - last_entry() 9.46 + declare_constant(JavaFrameAnchor::flushed) 9.47 9.48 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 9.49 - \ 9.50 - /* This must be the last entry, and must be present */ \ 9.51 - last_entry() 9.52 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 9.53 9.54 #endif // OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
10.1 --- a/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp Thu Jan 10 17:38:20 2013 -0500 10.2 +++ b/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp Thu Jan 10 17:06:26 2013 -0800 10.3 @@ -29,36 +29,24 @@ 10.4 // constants required by the Serviceability Agent. This file is 10.5 // referenced by vmStructs.cpp. 10.6 10.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 10.8 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 10.9 \ 10.10 /******************************/ \ 10.11 /* Threads (NOTE: incomplete) */ \ 10.12 /******************************/ \ 10.13 \ 10.14 - nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ 10.15 - \ 10.16 - /* This must be the last entry, and must be present */ \ 10.17 - last_entry() 10.18 + nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) 10.19 10.20 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 10.21 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ 10.22 \ 10.23 /**********************/ \ 10.24 /* Solaris Thread IDs */ \ 10.25 /**********************/ \ 10.26 \ 10.27 - declare_unsigned_integer_type(OSThread::thread_id_t) \ 10.28 - \ 10.29 - /* This must be the last entry, and must be present */ \ 10.30 - last_entry() 10.31 + declare_unsigned_integer_type(OSThread::thread_id_t) 10.32 10.33 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 10.34 - \ 10.35 - /* This must be the last entry, and must be present */ \ 10.36 - last_entry() 10.37 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 10.38 10.39 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 10.40 - \ 10.41 - /* This must be the last entry, and must be present */ \ 10.42 - last_entry() 10.43 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 10.44 10.45 #endif // OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP
11.1 --- a/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp Thu Jan 10 17:38:20 2013 -0500 11.2 +++ b/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp Thu Jan 10 17:06:26 2013 -0800 11.3 @@ -29,32 +29,21 @@ 11.4 // constants required by the Serviceability Agent. This file is 11.5 // referenced by vmStructs.cpp. 11.6 11.7 -#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \ 11.8 +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ 11.9 \ 11.10 /******************************/ \ 11.11 /* Threads (NOTE: incomplete) */ \ 11.12 /******************************/ \ 11.13 \ 11.14 nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ 11.15 - unchecked_nonstatic_field(OSThread, _thread_handle, sizeof(HANDLE)) /* NOTE: no type */ \ 11.16 - \ 11.17 - /* This must be the last entry, and must be present */ \ 11.18 - last_entry() 11.19 + unchecked_nonstatic_field(OSThread, _thread_handle, sizeof(HANDLE)) /* NOTE: no type */ 11.20 11.21 -#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \ 11.22 +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ 11.23 \ 11.24 - declare_unsigned_integer_type(OSThread::thread_id_t) \ 11.25 - /* This must be the last entry, and must be present */ \ 11.26 - last_entry() 11.27 + declare_unsigned_integer_type(OSThread::thread_id_t) 11.28 11.29 -#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 11.30 - \ 11.31 - /* This must be the last entry, and must be present */ \ 11.32 - last_entry() 11.33 +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 11.34 11.35 -#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 11.36 - \ 11.37 - /* This must be the last entry, and must be present */ \ 11.38 - last_entry() 11.39 +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) 11.40 11.41 #endif // OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP
12.1 --- a/src/share/vm/runtime/vmStructs.cpp Thu Jan 10 17:38:20 2013 -0500 12.2 +++ b/src/share/vm/runtime/vmStructs.cpp Thu Jan 10 17:06:26 2013 -0800 12.3 @@ -257,8 +257,7 @@ 12.4 c1_nonstatic_field, \ 12.5 c2_nonstatic_field, \ 12.6 unchecked_c1_static_field, \ 12.7 - unchecked_c2_static_field, \ 12.8 - last_entry) \ 12.9 + unchecked_c2_static_field) \ 12.10 \ 12.11 /******************************************************************/ \ 12.12 /* OopDesc and Klass hierarchies (NOTE: MethodData* incomplete) */ \ 12.13 @@ -1238,9 +1237,6 @@ 12.14 nonstatic_field(FreeList<Metablock>, _count, ssize_t) \ 12.15 nonstatic_field(MetablockTreeDictionary, _total_size, size_t) 12.16 12.17 - /* NOTE that we do not use the last_entry() macro here; it is used */ 12.18 - /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */ 12.19 - /* be present there) */ 12.20 12.21 //-------------------------------------------------------------------------------- 12.22 // VM_TYPES 12.23 @@ -1280,8 +1276,7 @@ 12.24 declare_unsigned_integer_type, \ 12.25 declare_c1_toplevel_type, \ 12.26 declare_c2_type, \ 12.27 - declare_c2_toplevel_type, \ 12.28 - last_entry) \ 12.29 + declare_c2_toplevel_type) \ 12.30 \ 12.31 /*************************************************************/ \ 12.32 /* Java primitive types -- required by the SA implementation */ \ 12.33 @@ -2098,10 +2093,6 @@ 12.34 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>) 12.35 12.36 12.37 - /* NOTE that we do not use the last_entry() macro here; it is used */ 12.38 - /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */ 12.39 - /* present there) */ 12.40 - 12.41 //-------------------------------------------------------------------------------- 12.42 // VM_INT_CONSTANTS 12.43 // 12.44 @@ -2114,8 +2105,7 @@ 12.45 declare_preprocessor_constant, \ 12.46 declare_c1_constant, \ 12.47 declare_c2_constant, \ 12.48 - declare_c2_preprocessor_constant, \ 12.49 - last_entry) \ 12.50 + declare_c2_preprocessor_constant) \ 12.51 \ 12.52 /******************/ \ 12.53 /* Useful globals */ \ 12.54 @@ -2483,9 +2473,6 @@ 12.55 declare_c2_preprocessor_constant("SAVED_ON_ENTRY_REG_COUNT", SAVED_ON_ENTRY_REG_COUNT) \ 12.56 declare_c2_preprocessor_constant("C_SAVED_ON_ENTRY_REG_COUNT", C_SAVED_ON_ENTRY_REG_COUNT) 12.57 12.58 - /* NOTE that we do not use the last_entry() macro here; it is used */ 12.59 - /* in vmStructs_<os>_<cpu>.hpp's VM_INT_CONSTANTS_OS_CPU macro (and */ 12.60 - /* must be present there) */ 12.61 12.62 //-------------------------------------------------------------------------------- 12.63 // VM_LONG_CONSTANTS 12.64 @@ -2495,7 +2482,7 @@ 12.65 // enums, etc., while "declare_preprocessor_constant" must be used for 12.66 // all #defined constants. 12.67 12.68 -#define VM_LONG_CONSTANTS(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ 12.69 +#define VM_LONG_CONSTANTS(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \ 12.70 \ 12.71 /*********************/ \ 12.72 /* MarkOop constants */ \ 12.73 @@ -2541,11 +2528,7 @@ 12.74 /* Constants in markOop used by CMS. */ \ 12.75 declare_constant(markOopDesc::cms_shift) \ 12.76 declare_constant(markOopDesc::cms_mask) \ 12.77 - declare_constant(markOopDesc::size_shift) \ 12.78 - 12.79 - /* NOTE that we do not use the last_entry() macro here; it is used */ 12.80 - /* in vmStructs_<os>_<cpu>.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and */ 12.81 - /* must be present there) */ 12.82 + declare_constant(markOopDesc::size_shift) 12.83 12.84 12.85 //-------------------------------------------------------------------------------- 12.86 @@ -2608,9 +2591,6 @@ 12.87 // This is a no-op macro for unchecked fields 12.88 #define CHECK_NO_OP(a, b, c) 12.89 12.90 -// This is a no-op macro for the sentinel value 12.91 -#define CHECK_SENTINEL() 12.92 - 12.93 // 12.94 // Build-specific macros: 12.95 // 12.96 @@ -2789,48 +2769,47 @@ 12.97 // as long as class VMStructs is a friend 12.98 VMStructEntry VMStructs::localHotSpotVMStructs[] = { 12.99 12.100 - VM_STRUCTS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.101 - GENERATE_STATIC_VM_STRUCT_ENTRY, \ 12.102 - GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, \ 12.103 - GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.104 - GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, \ 12.105 - GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY, \ 12.106 - GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, \ 12.107 - GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, \ 12.108 - GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY, \ 12.109 - GENERATE_VM_STRUCT_LAST_ENTRY) 12.110 + VM_STRUCTS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.111 + GENERATE_STATIC_VM_STRUCT_ENTRY, 12.112 + GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, 12.113 + GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.114 + GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, 12.115 + GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY, 12.116 + GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, 12.117 + GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, 12.118 + GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY) 12.119 12.120 #ifndef SERIALGC 12.121 - VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.122 + VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.123 GENERATE_STATIC_VM_STRUCT_ENTRY) 12.124 12.125 - VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.126 - GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.127 + VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.128 + GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.129 GENERATE_STATIC_VM_STRUCT_ENTRY) 12.130 12.131 - VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.132 + VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.133 GENERATE_STATIC_VM_STRUCT_ENTRY) 12.134 #endif // SERIALGC 12.135 12.136 - VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.137 - GENERATE_STATIC_VM_STRUCT_ENTRY, \ 12.138 - GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, \ 12.139 - GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.140 - GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, \ 12.141 - GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, \ 12.142 - GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, \ 12.143 - GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY, \ 12.144 - GENERATE_VM_STRUCT_LAST_ENTRY) 12.145 + VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.146 + GENERATE_STATIC_VM_STRUCT_ENTRY, 12.147 + GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, 12.148 + GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.149 + GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, 12.150 + GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, 12.151 + GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, 12.152 + GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY) 12.153 12.154 - VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.155 - GENERATE_STATIC_VM_STRUCT_ENTRY, \ 12.156 - GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, \ 12.157 - GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 12.158 - GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, \ 12.159 - GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, \ 12.160 - GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, \ 12.161 - GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY, \ 12.162 - GENERATE_VM_STRUCT_LAST_ENTRY) 12.163 + VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.164 + GENERATE_STATIC_VM_STRUCT_ENTRY, 12.165 + GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, 12.166 + GENERATE_NONSTATIC_VM_STRUCT_ENTRY, 12.167 + GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, 12.168 + GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, 12.169 + GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, 12.170 + GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY) 12.171 + 12.172 + GENERATE_VM_STRUCT_LAST_ENTRY() 12.173 }; 12.174 12.175 VMTypeEntry VMStructs::localHotSpotVMTypes[] = { 12.176 @@ -2842,8 +2821,7 @@ 12.177 GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY, 12.178 GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY, 12.179 GENERATE_C2_VM_TYPE_ENTRY, 12.180 - GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY, 12.181 - GENERATE_VM_TYPE_LAST_ENTRY) 12.182 + GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY) 12.183 12.184 #ifndef SERIALGC 12.185 VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY, 12.186 @@ -2865,8 +2843,7 @@ 12.187 GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY, 12.188 GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY, 12.189 GENERATE_C2_VM_TYPE_ENTRY, 12.190 - GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY, 12.191 - GENERATE_VM_TYPE_LAST_ENTRY) 12.192 + GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY) 12.193 12.194 VM_TYPES_OS_CPU(GENERATE_VM_TYPE_ENTRY, 12.195 GENERATE_TOPLEVEL_VM_TYPE_ENTRY, 12.196 @@ -2875,8 +2852,9 @@ 12.197 GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY, 12.198 GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY, 12.199 GENERATE_C2_VM_TYPE_ENTRY, 12.200 - GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY, 12.201 - GENERATE_VM_TYPE_LAST_ENTRY) 12.202 + GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY) 12.203 + 12.204 + GENERATE_VM_TYPE_LAST_ENTRY() 12.205 }; 12.206 12.207 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = { 12.208 @@ -2885,8 +2863,7 @@ 12.209 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, 12.210 GENERATE_C1_VM_INT_CONSTANT_ENTRY, 12.211 GENERATE_C2_VM_INT_CONSTANT_ENTRY, 12.212 - GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, 12.213 - GENERATE_VM_INT_CONSTANT_LAST_ENTRY) 12.214 + GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY) 12.215 12.216 #ifndef SERIALGC 12.217 VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY) 12.218 @@ -2898,15 +2875,15 @@ 12.219 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, 12.220 GENERATE_C1_VM_INT_CONSTANT_ENTRY, 12.221 GENERATE_C2_VM_INT_CONSTANT_ENTRY, 12.222 - GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, 12.223 - GENERATE_VM_INT_CONSTANT_LAST_ENTRY) 12.224 + GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY) 12.225 12.226 VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY, 12.227 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, 12.228 GENERATE_C1_VM_INT_CONSTANT_ENTRY, 12.229 GENERATE_C2_VM_INT_CONSTANT_ENTRY, 12.230 - GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, 12.231 - GENERATE_VM_INT_CONSTANT_LAST_ENTRY) 12.232 + GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY) 12.233 + 12.234 + GENERATE_VM_INT_CONSTANT_LAST_ENTRY() 12.235 }; 12.236 12.237 VMLongConstantEntry VMStructs::localHotSpotVMLongConstants[] = { 12.238 @@ -2915,22 +2892,21 @@ 12.239 GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY, 12.240 GENERATE_C1_VM_LONG_CONSTANT_ENTRY, 12.241 GENERATE_C2_VM_LONG_CONSTANT_ENTRY, 12.242 - GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY, 12.243 - GENERATE_VM_LONG_CONSTANT_LAST_ENTRY) 12.244 + GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY) 12.245 12.246 VM_LONG_CONSTANTS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY, 12.247 GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY, 12.248 GENERATE_C1_VM_LONG_CONSTANT_ENTRY, 12.249 GENERATE_C2_VM_LONG_CONSTANT_ENTRY, 12.250 - GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY, 12.251 - GENERATE_VM_LONG_CONSTANT_LAST_ENTRY) 12.252 + GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY) 12.253 12.254 VM_LONG_CONSTANTS_OS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY, 12.255 GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY, 12.256 GENERATE_C1_VM_LONG_CONSTANT_ENTRY, 12.257 GENERATE_C2_VM_LONG_CONSTANT_ENTRY, 12.258 - GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY, 12.259 - GENERATE_VM_LONG_CONSTANT_LAST_ENTRY) 12.260 + GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY) 12.261 + 12.262 + GENERATE_VM_LONG_CONSTANT_LAST_ENTRY() 12.263 }; 12.264 12.265 // This is used both to check the types of referenced fields and, in 12.266 @@ -2945,8 +2921,7 @@ 12.267 CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY, 12.268 CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY, 12.269 CHECK_NO_OP, 12.270 - CHECK_NO_OP, 12.271 - CHECK_SENTINEL); 12.272 + CHECK_NO_OP); 12.273 12.274 #ifndef SERIALGC 12.275 VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY, 12.276 @@ -2967,8 +2942,7 @@ 12.277 CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, 12.278 CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY, 12.279 CHECK_NO_OP, 12.280 - CHECK_NO_OP, 12.281 - CHECK_SENTINEL); 12.282 + CHECK_NO_OP); 12.283 12.284 VM_STRUCTS_OS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY, 12.285 CHECK_STATIC_VM_STRUCT_ENTRY, 12.286 @@ -2977,8 +2951,7 @@ 12.287 CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY, 12.288 CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY, 12.289 CHECK_NO_OP, 12.290 - CHECK_NO_OP, 12.291 - CHECK_SENTINEL); 12.292 + CHECK_NO_OP); 12.293 12.294 VM_TYPES(CHECK_VM_TYPE_ENTRY, 12.295 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, 12.296 @@ -2987,8 +2960,7 @@ 12.297 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, 12.298 CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY, 12.299 CHECK_C2_VM_TYPE_ENTRY, 12.300 - CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY, 12.301 - CHECK_SENTINEL); 12.302 + CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY); 12.303 12.304 #ifndef SERIALGC 12.305 VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY, 12.306 @@ -3010,8 +2982,7 @@ 12.307 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, 12.308 CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY, 12.309 CHECK_C2_VM_TYPE_ENTRY, 12.310 - CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY, 12.311 - CHECK_SENTINEL); 12.312 + CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY); 12.313 12.314 VM_TYPES_OS_CPU(CHECK_VM_TYPE_ENTRY, 12.315 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, 12.316 @@ -3020,8 +2991,7 @@ 12.317 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, 12.318 CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY, 12.319 CHECK_C2_VM_TYPE_ENTRY, 12.320 - CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY, 12.321 - CHECK_SENTINEL); 12.322 + CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY); 12.323 12.324 // 12.325 // Split VM_STRUCTS() invocation into two parts to allow MS VC++ 6.0 12.326 @@ -3040,53 +3010,49 @@ 12.327 // Solstice NFS setup. If everyone switches to local workspaces on 12.328 // Win32, we can put this back in. 12.329 #ifndef _WINDOWS 12.330 - debug_only(VM_STRUCTS(ENSURE_FIELD_TYPE_PRESENT, \ 12.331 - CHECK_NO_OP, \ 12.332 - CHECK_NO_OP, \ 12.333 - CHECK_NO_OP, \ 12.334 - CHECK_NO_OP, \ 12.335 - CHECK_NO_OP, \ 12.336 - CHECK_NO_OP, \ 12.337 - CHECK_NO_OP, \ 12.338 - CHECK_NO_OP, \ 12.339 - CHECK_SENTINEL)); 12.340 - debug_only(VM_STRUCTS(CHECK_NO_OP, \ 12.341 - ENSURE_FIELD_TYPE_PRESENT, \ 12.342 - CHECK_NO_OP, \ 12.343 - ENSURE_FIELD_TYPE_PRESENT, \ 12.344 - ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, \ 12.345 - ENSURE_C1_FIELD_TYPE_PRESENT, \ 12.346 - ENSURE_C2_FIELD_TYPE_PRESENT, \ 12.347 - CHECK_NO_OP, \ 12.348 - CHECK_NO_OP, \ 12.349 - CHECK_SENTINEL)); 12.350 + debug_only(VM_STRUCTS(ENSURE_FIELD_TYPE_PRESENT, 12.351 + CHECK_NO_OP, 12.352 + CHECK_NO_OP, 12.353 + CHECK_NO_OP, 12.354 + CHECK_NO_OP, 12.355 + CHECK_NO_OP, 12.356 + CHECK_NO_OP, 12.357 + CHECK_NO_OP, 12.358 + CHECK_NO_OP)); 12.359 + debug_only(VM_STRUCTS(CHECK_NO_OP, 12.360 + ENSURE_FIELD_TYPE_PRESENT, 12.361 + CHECK_NO_OP, 12.362 + ENSURE_FIELD_TYPE_PRESENT, 12.363 + ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, 12.364 + ENSURE_C1_FIELD_TYPE_PRESENT, 12.365 + ENSURE_C2_FIELD_TYPE_PRESENT, 12.366 + CHECK_NO_OP, 12.367 + CHECK_NO_OP)); 12.368 #ifndef SERIALGC 12.369 - debug_only(VM_STRUCTS_PARALLELGC(ENSURE_FIELD_TYPE_PRESENT, \ 12.370 + debug_only(VM_STRUCTS_PARALLELGC(ENSURE_FIELD_TYPE_PRESENT, 12.371 ENSURE_FIELD_TYPE_PRESENT)); 12.372 - debug_only(VM_STRUCTS_CMS(ENSURE_FIELD_TYPE_PRESENT, \ 12.373 - ENSURE_FIELD_TYPE_PRESENT, \ 12.374 + debug_only(VM_STRUCTS_CMS(ENSURE_FIELD_TYPE_PRESENT, 12.375 + ENSURE_FIELD_TYPE_PRESENT, 12.376 ENSURE_FIELD_TYPE_PRESENT)); 12.377 - debug_only(VM_STRUCTS_G1(ENSURE_FIELD_TYPE_PRESENT, \ 12.378 + debug_only(VM_STRUCTS_G1(ENSURE_FIELD_TYPE_PRESENT, 12.379 ENSURE_FIELD_TYPE_PRESENT)); 12.380 #endif // SERIALGC 12.381 - debug_only(VM_STRUCTS_CPU(ENSURE_FIELD_TYPE_PRESENT, \ 12.382 - ENSURE_FIELD_TYPE_PRESENT, \ 12.383 - CHECK_NO_OP, \ 12.384 - ENSURE_FIELD_TYPE_PRESENT, \ 12.385 - ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, \ 12.386 - ENSURE_C2_FIELD_TYPE_PRESENT, \ 12.387 - CHECK_NO_OP, \ 12.388 - CHECK_NO_OP, \ 12.389 - CHECK_SENTINEL)); 12.390 - debug_only(VM_STRUCTS_OS_CPU(ENSURE_FIELD_TYPE_PRESENT, \ 12.391 - ENSURE_FIELD_TYPE_PRESENT, \ 12.392 - CHECK_NO_OP, \ 12.393 - ENSURE_FIELD_TYPE_PRESENT, \ 12.394 - ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, \ 12.395 - ENSURE_C2_FIELD_TYPE_PRESENT, \ 12.396 - CHECK_NO_OP, \ 12.397 - CHECK_NO_OP, \ 12.398 - CHECK_SENTINEL)); 12.399 + debug_only(VM_STRUCTS_CPU(ENSURE_FIELD_TYPE_PRESENT, 12.400 + ENSURE_FIELD_TYPE_PRESENT, 12.401 + CHECK_NO_OP, 12.402 + ENSURE_FIELD_TYPE_PRESENT, 12.403 + ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, 12.404 + ENSURE_C2_FIELD_TYPE_PRESENT, 12.405 + CHECK_NO_OP, 12.406 + CHECK_NO_OP)); 12.407 + debug_only(VM_STRUCTS_OS_CPU(ENSURE_FIELD_TYPE_PRESENT, 12.408 + ENSURE_FIELD_TYPE_PRESENT, 12.409 + CHECK_NO_OP, 12.410 + ENSURE_FIELD_TYPE_PRESENT, 12.411 + ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, 12.412 + ENSURE_C2_FIELD_TYPE_PRESENT, 12.413 + CHECK_NO_OP, 12.414 + CHECK_NO_OP)); 12.415 #endif 12.416 } 12.417 12.418 @@ -3206,6 +3172,30 @@ 12.419 12.420 #ifndef PRODUCT 12.421 void VMStructs::test() { 12.422 + // Make sure last entry in the each array is indeed the correct end marker. 12.423 + // The reason why these are static is to make sure they are zero initialized. 12.424 + // Putting them on the stack will leave some garbage in the padding of some fields. 12.425 + static VMStructEntry struct_last_entry = GENERATE_VM_STRUCT_LAST_ENTRY(); 12.426 + assert(memcmp(&localHotSpotVMStructs[(sizeof(localHotSpotVMStructs) / sizeof(VMStructEntry)) - 1], 12.427 + &struct_last_entry, 12.428 + sizeof(VMStructEntry)) == 0, "Incorrect last entry in localHotSpotVMStructs"); 12.429 + 12.430 + static VMTypeEntry type_last_entry = GENERATE_VM_TYPE_LAST_ENTRY(); 12.431 + assert(memcmp(&localHotSpotVMTypes[sizeof(localHotSpotVMTypes) / sizeof(VMTypeEntry) - 1], 12.432 + &type_last_entry, 12.433 + sizeof(VMTypeEntry)) == 0, "Incorrect last entry in localHotSpotVMTypes"); 12.434 + 12.435 + static VMIntConstantEntry int_last_entry = GENERATE_VM_INT_CONSTANT_LAST_ENTRY(); 12.436 + assert(memcmp(&localHotSpotVMIntConstants[sizeof(localHotSpotVMIntConstants) / sizeof(VMIntConstantEntry) - 1], 12.437 + &int_last_entry, 12.438 + sizeof(VMIntConstantEntry)) == 0, "Incorrect last entry in localHotSpotVMIntConstants"); 12.439 + 12.440 + static VMLongConstantEntry long_last_entry = GENERATE_VM_LONG_CONSTANT_LAST_ENTRY(); 12.441 + assert(memcmp(&localHotSpotVMLongConstants[sizeof(localHotSpotVMLongConstants) / sizeof(VMLongConstantEntry) - 1], 12.442 + &long_last_entry, 12.443 + sizeof(VMLongConstantEntry)) == 0, "Incorrect last entry in localHotSpotVMLongConstants"); 12.444 + 12.445 + 12.446 // Check for duplicate entries in type array 12.447 for (int i = 0; localHotSpotVMTypes[i].typeName != NULL; i++) { 12.448 for (int j = i + 1; localHotSpotVMTypes[j].typeName != NULL; j++) {