< prev index next >

src/cpu/ppc/vm/macroAssembler_ppc.hpp

Print this page


   1 /*
   2  * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright (c) 2012, 2017 SAP SE. All rights reserved.
   4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5  *
   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
   8  * published by the Free Software Foundation.
   9  *
  10  * This code is distributed in the hope that it will be useful, but WITHOUT
  11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  * version 2 for more details (a copy is included in the LICENSE file that
  14  * accompanied this code).
  15  *
  16  * You should have received a copy of the GNU General Public License version
  17  * 2 along with this work; if not, write to the Free Software Foundation,
  18  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19  *
  20  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  * or visit www.oracle.com if you need additional information or have any
  22  * questions.
  23  *


 632 
 633   void compiler_fast_lock_object(ConditionRegister flag, Register oop, Register box,
 634                                  Register tmp1, Register tmp2, Register tmp3,
 635                                  bool try_bias = UseBiasedLocking,
 636                                  RTMLockingCounters* rtm_counters = NULL,
 637                                  RTMLockingCounters* stack_rtm_counters = NULL,
 638                                  Metadata* method_data = NULL,
 639                                  bool use_rtm = false, bool profile_rtm = false);
 640 
 641   void compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box,
 642                                    Register tmp1, Register tmp2, Register tmp3,
 643                                    bool try_bias = UseBiasedLocking, bool use_rtm = false);
 644 
 645   // Support for serializing memory accesses between threads
 646   void serialize_memory(Register thread, Register tmp1, Register tmp2);
 647 
 648   // GC barrier support.
 649   void card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp);
 650   void card_table_write(jbyte* byte_map_base, Register Rtmp, Register Robj);
 651 
 652   void resolve_jobject(Register value, Register tmp1, Register tmp2, bool needs_frame);
 653 
 654 #if INCLUDE_ALL_GCS
 655   // General G1 pre-barrier generator.
 656   void g1_write_barrier_pre(Register Robj, RegisterOrConstant offset, Register Rpre_val,
 657                             Register Rtmp1, Register Rtmp2, bool needs_frame = false);
 658   // General G1 post-barrier generator
 659   void g1_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp1,
 660                              Register Rtmp2, Register Rtmp3, Label *filtered_ext = NULL);
 661 #endif
 662 
 663   // Support for managing the JavaThread pointer (i.e.; the reference to
 664   // thread-local information).
 665 
 666   // Support for last Java frame (but use call_VM instead where possible):
 667   // access R16_thread->last_Java_sp.
 668   void set_last_Java_frame(Register last_java_sp, Register last_Java_pc);
 669   void reset_last_Java_frame(void);
 670   void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1);
 671 
 672   // Read vm result from thread: oop_result = R16_thread->result;
 673   void get_vm_result  (Register oop_result);


   1 /*
   2  * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright (c) 2012, 2016 SAP SE. All rights reserved.
   4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5  *
   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
   8  * published by the Free Software Foundation.
   9  *
  10  * This code is distributed in the hope that it will be useful, but WITHOUT
  11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  * version 2 for more details (a copy is included in the LICENSE file that
  14  * accompanied this code).
  15  *
  16  * You should have received a copy of the GNU General Public License version
  17  * 2 along with this work; if not, write to the Free Software Foundation,
  18  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19  *
  20  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  * or visit www.oracle.com if you need additional information or have any
  22  * questions.
  23  *


 632 
 633   void compiler_fast_lock_object(ConditionRegister flag, Register oop, Register box,
 634                                  Register tmp1, Register tmp2, Register tmp3,
 635                                  bool try_bias = UseBiasedLocking,
 636                                  RTMLockingCounters* rtm_counters = NULL,
 637                                  RTMLockingCounters* stack_rtm_counters = NULL,
 638                                  Metadata* method_data = NULL,
 639                                  bool use_rtm = false, bool profile_rtm = false);
 640 
 641   void compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box,
 642                                    Register tmp1, Register tmp2, Register tmp3,
 643                                    bool try_bias = UseBiasedLocking, bool use_rtm = false);
 644 
 645   // Support for serializing memory accesses between threads
 646   void serialize_memory(Register thread, Register tmp1, Register tmp2);
 647 
 648   // GC barrier support.
 649   void card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp);
 650   void card_table_write(jbyte* byte_map_base, Register Rtmp, Register Robj);
 651 


 652 #if INCLUDE_ALL_GCS
 653   // General G1 pre-barrier generator.
 654   void g1_write_barrier_pre(Register Robj, RegisterOrConstant offset, Register Rpre_val,
 655                             Register Rtmp1, Register Rtmp2, bool needs_frame = false);
 656   // General G1 post-barrier generator
 657   void g1_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp1,
 658                              Register Rtmp2, Register Rtmp3, Label *filtered_ext = NULL);
 659 #endif
 660 
 661   // Support for managing the JavaThread pointer (i.e.; the reference to
 662   // thread-local information).
 663 
 664   // Support for last Java frame (but use call_VM instead where possible):
 665   // access R16_thread->last_Java_sp.
 666   void set_last_Java_frame(Register last_java_sp, Register last_Java_pc);
 667   void reset_last_Java_frame(void);
 668   void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1);
 669 
 670   // Read vm result from thread: oop_result = R16_thread->result;
 671   void get_vm_result  (Register oop_result);


< prev index next >