77 bool check_exceptions // whether to check for pending exceptions after return |
77 bool check_exceptions // whether to check for pending exceptions after return |
78 ); |
78 ); |
79 |
79 |
80 void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions = true); |
80 void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions = true); |
81 |
81 |
82 // Maximum size of class area in Metaspace when compressed |
82 // True if an XOR can be used to expand narrow klass references. |
83 uint64_t use_XOR_for_compressed_class_base; |
83 bool use_XOR_for_compressed_class_base; |
84 |
84 |
85 public: |
85 public: |
86 MacroAssembler(CodeBuffer* code) : Assembler(code) { |
86 MacroAssembler(CodeBuffer* code) : Assembler(code) { |
87 use_XOR_for_compressed_class_base |
87 use_XOR_for_compressed_class_base |
88 = (operand_valid_for_logical_immediate(false /*is32*/, |
88 = (operand_valid_for_logical_immediate(false /*is32*/, |
89 (uint64_t)Universe::narrow_klass_base()) |
89 (uint64_t)Universe::narrow_klass_base()) |
90 && ((uint64_t)Universe::narrow_klass_base() |
90 && ((uint64_t)Universe::narrow_klass_base() |
91 > (1u << log2_intptr(CompressedClassSpaceSize)))); |
91 > (1UL << log2_intptr(Universe::narrow_klass_range())))); |
92 } |
92 } |
93 |
93 |
94 // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code. |
94 // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code. |
95 // The implementation is only non-empty for the InterpreterMacroAssembler, |
95 // The implementation is only non-empty for the InterpreterMacroAssembler, |
96 // as only the interpreter handles PopFrame and ForceEarlyReturn requests. |
96 // as only the interpreter handles PopFrame and ForceEarlyReturn requests. |