8004747: Remove last_entry from VM_STRUCT macros

Thu, 10 Jan 2013 17:06:26 -0800

author
mikael
date
Thu, 10 Jan 2013 17:06:26 -0800
changeset 4426
91bf7da5c609
parent 4425
aefb345d3f5e
child 4427
c1c8479222cd

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

src/cpu/sparc/vm/vmStructs_sparc.hpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/vmStructs_x86.hpp file | annotate | diff | comparison | revisions
src/cpu/zero/vm/vmStructs_zero.hpp file | annotate | diff | comparison | revisions
src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp file | annotate | diff | comparison | revisions
src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp file | annotate | diff | comparison | revisions
src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp file | annotate | diff | comparison | revisions
src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp file | annotate | diff | comparison | revisions
src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp file | annotate | diff | comparison | revisions
src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp file | annotate | diff | comparison | revisions
src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp file | annotate | diff | comparison | revisions
src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/vmStructs.cpp file | annotate | diff | comparison | revisions
     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++) {

mercurial