< prev index next >

src/cpu/ppc/vm/interp_masm_ppc_64.hpp

Print this page
rev 8107 : 8077838: Recent developments for ppc.
   1 /*
   2  * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright 2012, 2014 SAP AG. 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  *


  68   void dispatch_next(TosState state, int step = 0);
  69   void dispatch_via (TosState state, address* table);
  70   void load_dispatch_table(Register dst, address* table);
  71   void dispatch_Lbyte_code(TosState state, Register bytecode, address* table, bool verify = false);
  72 
  73   // Called by shared interpreter generator.
  74   void dispatch_prolog(TosState state, int step = 0);
  75   void dispatch_epilog(TosState state, int step = 0);
  76 
  77   // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls.
  78   void super_call_VM_leaf(Register thread_cache, address entry_point, Register arg_1);
  79   void super_call_VM(Register thread_cache, Register oop_result, Register last_java_sp,
  80                      address entry_point, Register arg_1, Register arg_2, bool check_exception = true);
  81 
  82   // Generate a subtype check: branch to ok_is_subtype if sub_klass is
  83   // a subtype of super_klass.  Blows registers tmp1, tmp2 and tmp3.
  84   void gen_subtype_check(Register sub_klass, Register super_klass,
  85                          Register tmp1, Register tmp2, Register tmp3, Label &ok_is_subtype);
  86 
  87   // Load object from cpool->resolved_references(index).
  88   void load_resolved_reference_at_index(Register result, Register index);
  89 
  90   void generate_stack_overflow_check_with_compare_and_throw(Register Rmem_frame_size, Register Rscratch1);
  91   void load_receiver(Register Rparam_count, Register Rrecv_dst);
  92 
  93   // helpers for expression stack
  94   void pop_i(     Register r = R17_tos);
  95   void pop_ptr(   Register r = R17_tos);
  96   void pop_l(     Register r = R17_tos);
  97   void pop_f(FloatRegister f = F15_ftos);
  98   void pop_d(FloatRegister f = F15_ftos );
  99 
 100   void push_i(     Register r = R17_tos);
 101   void push_ptr(   Register r = R17_tos);
 102   void push_l(     Register r = R17_tos);
 103   void push_f(FloatRegister f = F15_ftos );
 104   void push_d(FloatRegister f = F15_ftos);
 105 
 106   void push_2ptrs(Register first, Register second);
 107 
 108   void push_l_pop_d(Register l = R17_tos, FloatRegister d = F15_ftos);


   1 /*
   2  * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright 2012, 2015 SAP AG. 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  *


  68   void dispatch_next(TosState state, int step = 0);
  69   void dispatch_via (TosState state, address* table);
  70   void load_dispatch_table(Register dst, address* table);
  71   void dispatch_Lbyte_code(TosState state, Register bytecode, address* table, bool verify = false);
  72 
  73   // Called by shared interpreter generator.
  74   void dispatch_prolog(TosState state, int step = 0);
  75   void dispatch_epilog(TosState state, int step = 0);
  76 
  77   // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls.
  78   void super_call_VM_leaf(Register thread_cache, address entry_point, Register arg_1);
  79   void super_call_VM(Register thread_cache, Register oop_result, Register last_java_sp,
  80                      address entry_point, Register arg_1, Register arg_2, bool check_exception = true);
  81 
  82   // Generate a subtype check: branch to ok_is_subtype if sub_klass is
  83   // a subtype of super_klass.  Blows registers tmp1, tmp2 and tmp3.
  84   void gen_subtype_check(Register sub_klass, Register super_klass,
  85                          Register tmp1, Register tmp2, Register tmp3, Label &ok_is_subtype);
  86 
  87   // Load object from cpool->resolved_references(index).
  88   void load_resolved_reference_at_index(Register result, Register index, Label *is_null = NULL);
  89 
  90   void generate_stack_overflow_check_with_compare_and_throw(Register Rmem_frame_size, Register Rscratch1);
  91   void load_receiver(Register Rparam_count, Register Rrecv_dst);
  92 
  93   // helpers for expression stack
  94   void pop_i(     Register r = R17_tos);
  95   void pop_ptr(   Register r = R17_tos);
  96   void pop_l(     Register r = R17_tos);
  97   void pop_f(FloatRegister f = F15_ftos);
  98   void pop_d(FloatRegister f = F15_ftos );
  99 
 100   void push_i(     Register r = R17_tos);
 101   void push_ptr(   Register r = R17_tos);
 102   void push_l(     Register r = R17_tos);
 103   void push_f(FloatRegister f = F15_ftos );
 104   void push_d(FloatRegister f = F15_ftos);
 105 
 106   void push_2ptrs(Register first, Register second);
 107 
 108   void push_l_pop_d(Register l = R17_tos, FloatRegister d = F15_ftos);


< prev index next >