hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
changeset 46294 345a46524a19
parent 43439 5e03c9ba74f3
child 46449 7b2416f0f524
equal deleted inserted replaced
46293:9a88f7fe04b5 46294:345a46524a19
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
     3  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5  *
     5  *
     6  * This code is free software; you can redistribute it and/or modify it
     6  * This code is free software; you can redistribute it and/or modify it
     7  * under the terms of the GNU General Public License version 2 only, as
     7  * under the terms of the GNU General Public License version 2 only, as
    75     address  entry_point,              // the entry point
    75     address  entry_point,              // the entry point
    76     int      number_of_arguments,      // the number of arguments (w/o thread) to pop after the call
    76     int      number_of_arguments,      // the number of arguments (w/o thread) to pop after the call
    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   // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code.
       
    81   // The implementation is only non-empty for the InterpreterMacroAssembler,
       
    82   // as only the interpreter handles PopFrame and ForceEarlyReturn requests.
       
    83   virtual void check_and_handle_popframe(Register java_thread);
       
    84   virtual void check_and_handle_earlyret(Register java_thread);
       
    85 
       
    86   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);
    87 
    81 
    88   // Maximum size of class area in Metaspace when compressed
    82   // Maximum size of class area in Metaspace when compressed
    89   uint64_t use_XOR_for_compressed_class_base;
    83   uint64_t use_XOR_for_compressed_class_base;
    90 
    84 
    94       = (operand_valid_for_logical_immediate(false /*is32*/,
    88       = (operand_valid_for_logical_immediate(false /*is32*/,
    95                                              (uint64_t)Universe::narrow_klass_base())
    89                                              (uint64_t)Universe::narrow_klass_base())
    96          && ((uint64_t)Universe::narrow_klass_base()
    90          && ((uint64_t)Universe::narrow_klass_base()
    97              > (1u << log2_intptr(CompressedClassSpaceSize))));
    91              > (1u << log2_intptr(CompressedClassSpaceSize))));
    98   }
    92   }
       
    93 
       
    94  // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code.
       
    95  // The implementation is only non-empty for the InterpreterMacroAssembler,
       
    96  // as only the interpreter handles PopFrame and ForceEarlyReturn requests.
       
    97  virtual void check_and_handle_popframe(Register java_thread);
       
    98  virtual void check_and_handle_earlyret(Register java_thread);
    99 
    99 
   100   // Biased locking support
   100   // Biased locking support
   101   // lock_reg and obj_reg must be loaded up with the appropriate values.
   101   // lock_reg and obj_reg must be loaded up with the appropriate values.
   102   // swap_reg is killed.
   102   // swap_reg is killed.
   103   // tmp_reg must be supplied and must not be rscratch1 or rscratch2
   103   // tmp_reg must be supplied and must not be rscratch1 or rscratch2