src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp

Print this page




  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  *
  25  */
  26 
  27 #ifndef CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
  28 #define CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
  29 
  30 const int StackAlignmentInBytes  = 16;
  31 
  32 // Indicates whether the C calling conventions require that
  33 // 32-bit integer argument values are properly extended to 64 bits.
  34 // If set, SharedRuntime::c_calling_convention() must adapt
  35 // signatures accordingly.
  36 const bool CCallingConventionRequiresIntsAsLongs = true;
  37 
  38 #define SUPPORTS_NATIVE_CX8
  39 
  40 // The maximum B/BL offset range on AArch64 is 128MB
  41 #undef CODE_CACHE_SIZE_LIMIT
  42 #define CODE_CACHE_SIZE_LIMIT (128*M)
  43 
  44 // According to the ARMv8 ARM, "Concurrent modification and execution
  45 // of instructions can lead to the resulting instruction performing
  46 // any behavior that can be achieved by executing any sequence of
  47 // instructions that can be executed from the same Exception level,
  48 // except where the instruction before modification and the
  49 // instruction after modification is a B, BL, NOP, BKPT, SVC, HVC, or
  50 // SMC instruction."
  51 //
  52 // This makes the games we play when patching difficult, so when we
  53 // come across an access that needs patching we deoptimize.  There are
  54 // ways we can avoid this, but these would slow down C1-compiled code
  55 // in the defauilt case.  We could revisit this decision if we get any
  56 // evidence that it's worth doing.
  57 #define DEOPTIMIZE_WHEN_PATCHING
  58 
  59 #endif // CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP


  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  *
  25  */
  26 
  27 #ifndef CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
  28 #define CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
  29 
  30 const int StackAlignmentInBytes  = 16;
  31 
  32 // Indicates whether the C calling conventions require that
  33 // 32-bit integer argument values are properly extended to 64 bits.
  34 // If set, SharedRuntime::c_calling_convention() must adapt
  35 // signatures accordingly.
  36 const bool CCallingConventionRequiresIntsAsLongs = true;
  37 
  38 #define SUPPORTS_NATIVE_CX8
  39 
  40 // The maximum B/BL offset range on AArch64 is 128MB.
  41 #undef CODE_CACHE_DEFAULT_LIMIT
  42 #define CODE_CACHE_DEFAULT_LIMIT (128*M)
  43 
  44 // According to the ARMv8 ARM, "Concurrent modification and execution
  45 // of instructions can lead to the resulting instruction performing
  46 // any behavior that can be achieved by executing any sequence of
  47 // instructions that can be executed from the same Exception level,
  48 // except where the instruction before modification and the
  49 // instruction after modification is a B, BL, NOP, BKPT, SVC, HVC, or
  50 // SMC instruction."
  51 //
  52 // This makes the games we play when patching difficult, so when we
  53 // come across an access that needs patching we deoptimize.  There are
  54 // ways we can avoid this, but these would slow down C1-compiled code
  55 // in the defauilt case.  We could revisit this decision if we get any
  56 // evidence that it's worth doing.
  57 #define DEOPTIMIZE_WHEN_PATCHING
  58 
  59 #endif // CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP