< prev index next >

src/share/vm/code/compiledIC.hpp

Print this page




  25 #ifndef SHARE_VM_CODE_COMPILEDIC_HPP
  26 #define SHARE_VM_CODE_COMPILEDIC_HPP
  27 
  28 #include "interpreter/linkResolver.hpp"
  29 #include "oops/compiledICHolder.hpp"
  30 #ifdef TARGET_ARCH_x86
  31 # include "nativeInst_x86.hpp"
  32 #endif
  33 #ifdef TARGET_ARCH_sparc
  34 # include "nativeInst_sparc.hpp"
  35 #endif
  36 #ifdef TARGET_ARCH_zero
  37 # include "nativeInst_zero.hpp"
  38 #endif
  39 #ifdef TARGET_ARCH_arm
  40 # include "nativeInst_arm.hpp"
  41 #endif
  42 #ifdef TARGET_ARCH_ppc
  43 # include "nativeInst_ppc.hpp"
  44 #endif



  45 
  46 //-----------------------------------------------------------------------------
  47 // The CompiledIC represents a compiled inline cache.
  48 //
  49 // In order to make patching of the inline cache MT-safe, we only allow the following
  50 // transitions (when not at a safepoint):
  51 //
  52 //
  53 //         [1] --<--  Clean -->---  [1]
  54 //            /       (null)      \
  55 //           /                     \      /-<-\
  56 //          /          [2]          \    /     \
  57 //      Interpreted  ---------> Monomorphic     | [3]
  58 //  (CompiledICHolder*)            (Klass*)     |
  59 //          \                        /   \     /
  60 //       [4] \                      / [4] \->-/
  61 //            \->-  Megamorphic -<-/
  62 //              (CompiledICHolder*)
  63 //
  64 // The text in parentheses () refers to the value of the inline cache receiver (mov instruction)




  25 #ifndef SHARE_VM_CODE_COMPILEDIC_HPP
  26 #define SHARE_VM_CODE_COMPILEDIC_HPP
  27 
  28 #include "interpreter/linkResolver.hpp"
  29 #include "oops/compiledICHolder.hpp"
  30 #ifdef TARGET_ARCH_x86
  31 # include "nativeInst_x86.hpp"
  32 #endif
  33 #ifdef TARGET_ARCH_sparc
  34 # include "nativeInst_sparc.hpp"
  35 #endif
  36 #ifdef TARGET_ARCH_zero
  37 # include "nativeInst_zero.hpp"
  38 #endif
  39 #ifdef TARGET_ARCH_arm
  40 # include "nativeInst_arm.hpp"
  41 #endif
  42 #ifdef TARGET_ARCH_ppc
  43 # include "nativeInst_ppc.hpp"
  44 #endif
  45 #ifdef TARGET_ARCH_aarch32
  46 # include "nativeInst_aarch32.hpp"
  47 #endif
  48 
  49 //-----------------------------------------------------------------------------
  50 // The CompiledIC represents a compiled inline cache.
  51 //
  52 // In order to make patching of the inline cache MT-safe, we only allow the following
  53 // transitions (when not at a safepoint):
  54 //
  55 //
  56 //         [1] --<--  Clean -->---  [1]
  57 //            /       (null)      \
  58 //           /                     \      /-<-\
  59 //          /          [2]          \    /     \
  60 //      Interpreted  ---------> Monomorphic     | [3]
  61 //  (CompiledICHolder*)            (Klass*)     |
  62 //          \                        /   \     /
  63 //       [4] \                      / [4] \->-/
  64 //            \->-  Megamorphic -<-/
  65 //              (CompiledICHolder*)
  66 //
  67 // The text in parentheses () refers to the value of the inline cache receiver (mov instruction)


< prev index next >