< prev index next >

src/cpu/sparc/vm/macroAssembler_sparc.hpp

Print this page
rev 12906 : [mq]: gc_interface


 723   void patchable_set(intptr_t value, Register d);
 724   void set64(jlong value, Register d, Register tmp);
 725   static int insts_for_set64(jlong value);
 726 
 727   // sign-extend 32 to 64
 728   inline void signx( Register s, Register d );
 729   inline void signx( Register d );
 730 
 731   inline void not1( Register s, Register d );
 732   inline void not1( Register d );
 733 
 734   inline void neg( Register s, Register d );
 735   inline void neg( Register d );
 736 
 737   inline void cas(  Register s1, Register s2, Register d);
 738   inline void casx( Register s1, Register s2, Register d);
 739   // Functions for isolating 64 bit atomic swaps for LP64
 740   // cas_ptr will perform cas for 32 bit VM's and casx for 64 bit VM's
 741   inline void cas_ptr(  Register s1, Register s2, Register d);
 742 



 743   // Functions for isolating 64 bit shifts for LP64
 744   inline void sll_ptr( Register s1, Register s2, Register d );
 745   inline void sll_ptr( Register s1, int imm6a,   Register d );
 746   inline void sll_ptr( Register s1, RegisterOrConstant s2, Register d );
 747   inline void srl_ptr( Register s1, Register s2, Register d );
 748   inline void srl_ptr( Register s1, int imm6a,   Register d );
 749 
 750   // little-endian
 751   inline void casl(  Register s1, Register s2, Register d);
 752   inline void casxl( Register s1, Register s2, Register d);
 753 
 754   inline void inc(   Register d,  int const13 = 1 );
 755   inline void inccc( Register d,  int const13 = 1 );
 756 
 757   inline void dec(   Register d,  int const13 = 1 );
 758   inline void deccc( Register d,  int const13 = 1 );
 759 
 760   using Assembler::add;
 761   inline void add(Register s1, int simm13a, Register d, relocInfo::relocType rtype);
 762   inline void add(Register s1, int simm13a, Register d, RelocationHolder const& rspec);


1059   void call_VM(Register oop_result, Register last_java_sp, address entry_point, Register arg_1, Register arg_2, bool check_exceptions = true);
1060   void call_VM(Register oop_result, Register last_java_sp, address entry_point, Register arg_1, Register arg_2, Register arg_3, bool check_exceptions = true);
1061 
1062   void call_VM_leaf(Register thread_cache, address entry_point, int number_of_arguments = 0);
1063   void call_VM_leaf(Register thread_cache, address entry_point, Register arg_1);
1064   void call_VM_leaf(Register thread_cache, address entry_point, Register arg_1, Register arg_2);
1065   void call_VM_leaf(Register thread_cache, address entry_point, Register arg_1, Register arg_2, Register arg_3);
1066 
1067   void get_vm_result  (Register oop_result);
1068   void get_vm_result_2(Register metadata_result);
1069 
1070   // vm result is currently getting hijacked to for oop preservation
1071   void set_vm_result(Register oop_result);
1072 
1073   // Emit the CompiledIC call idiom
1074   void ic_call(address entry, bool emit_delay = true, jint method_index = 0);
1075 
1076   // if call_VM_base was called with check_exceptions=false, then call
1077   // check_and_forward_exception to handle exceptions when it is safe
1078   void check_and_forward_exception(Register scratch_reg);
1079 
1080   // Write to card table for - register is destroyed afterwards.
1081   void card_table_write(jbyte* byte_map_base, Register tmp, Register obj);
1082 
1083   void card_write_barrier_post(Register store_addr, Register new_val, Register tmp);
1084 
1085 #if INCLUDE_ALL_GCS
1086   // General G1 pre-barrier generator.
1087   void g1_write_barrier_pre(Register obj, Register index, int offset, Register pre_val, Register tmp, bool preserve_o_regs);
1088 
1089   // General G1 post-barrier generator
1090   void g1_write_barrier_post(Register store_addr, Register new_val, Register tmp);
1091 #endif // INCLUDE_ALL_GCS
1092 
1093   // pushes double TOS element of FPU stack on CPU stack; pops from FPU stack
1094   void push_fTOS();
1095 
1096   // pops double TOS element from CPU stack and pushes on FPU stack
1097   void pop_fTOS();
1098 
1099   void empty_FPU_stack();
1100 
1101   void push_IU_state();
1102   void pop_IU_state();
1103 
1104   void push_FPU_state();
1105   void pop_FPU_state();
1106 
1107   void push_CPU_state();
1108   void pop_CPU_state();
1109 
1110   // Returns the byte size of the instructions generated by decode_klass_not_null().
1111   static int instr_size_for_decode_klass_not_null();




 723   void patchable_set(intptr_t value, Register d);
 724   void set64(jlong value, Register d, Register tmp);
 725   static int insts_for_set64(jlong value);
 726 
 727   // sign-extend 32 to 64
 728   inline void signx( Register s, Register d );
 729   inline void signx( Register d );
 730 
 731   inline void not1( Register s, Register d );
 732   inline void not1( Register d );
 733 
 734   inline void neg( Register s, Register d );
 735   inline void neg( Register d );
 736 
 737   inline void cas(  Register s1, Register s2, Register d);
 738   inline void casx( Register s1, Register s2, Register d);
 739   // Functions for isolating 64 bit atomic swaps for LP64
 740   // cas_ptr will perform cas for 32 bit VM's and casx for 64 bit VM's
 741   inline void cas_ptr(  Register s1, Register s2, Register d);
 742 
 743   // Resolve a jobject or jweak
 744   void resolve_jobject(Register value, Register tmp);
 745 
 746   // Functions for isolating 64 bit shifts for LP64
 747   inline void sll_ptr( Register s1, Register s2, Register d );
 748   inline void sll_ptr( Register s1, int imm6a,   Register d );
 749   inline void sll_ptr( Register s1, RegisterOrConstant s2, Register d );
 750   inline void srl_ptr( Register s1, Register s2, Register d );
 751   inline void srl_ptr( Register s1, int imm6a,   Register d );
 752 
 753   // little-endian
 754   inline void casl(  Register s1, Register s2, Register d);
 755   inline void casxl( Register s1, Register s2, Register d);
 756 
 757   inline void inc(   Register d,  int const13 = 1 );
 758   inline void inccc( Register d,  int const13 = 1 );
 759 
 760   inline void dec(   Register d,  int const13 = 1 );
 761   inline void deccc( Register d,  int const13 = 1 );
 762 
 763   using Assembler::add;
 764   inline void add(Register s1, int simm13a, Register d, relocInfo::relocType rtype);
 765   inline void add(Register s1, int simm13a, Register d, RelocationHolder const& rspec);


1062   void call_VM(Register oop_result, Register last_java_sp, address entry_point, Register arg_1, Register arg_2, bool check_exceptions = true);
1063   void call_VM(Register oop_result, Register last_java_sp, address entry_point, Register arg_1, Register arg_2, Register arg_3, bool check_exceptions = true);
1064 
1065   void call_VM_leaf(Register thread_cache, address entry_point, int number_of_arguments = 0);
1066   void call_VM_leaf(Register thread_cache, address entry_point, Register arg_1);
1067   void call_VM_leaf(Register thread_cache, address entry_point, Register arg_1, Register arg_2);
1068   void call_VM_leaf(Register thread_cache, address entry_point, Register arg_1, Register arg_2, Register arg_3);
1069 
1070   void get_vm_result  (Register oop_result);
1071   void get_vm_result_2(Register metadata_result);
1072 
1073   // vm result is currently getting hijacked to for oop preservation
1074   void set_vm_result(Register oop_result);
1075 
1076   // Emit the CompiledIC call idiom
1077   void ic_call(address entry, bool emit_delay = true, jint method_index = 0);
1078 
1079   // if call_VM_base was called with check_exceptions=false, then call
1080   // check_and_forward_exception to handle exceptions when it is safe
1081   void check_and_forward_exception(Register scratch_reg);













1082 
1083   // pushes double TOS element of FPU stack on CPU stack; pops from FPU stack
1084   void push_fTOS();
1085 
1086   // pops double TOS element from CPU stack and pushes on FPU stack
1087   void pop_fTOS();
1088 
1089   void empty_FPU_stack();
1090 
1091   void push_IU_state();
1092   void pop_IU_state();
1093 
1094   void push_FPU_state();
1095   void pop_FPU_state();
1096 
1097   void push_CPU_state();
1098   void pop_CPU_state();
1099 
1100   // Returns the byte size of the instructions generated by decode_klass_not_null().
1101   static int instr_size_for_decode_klass_not_null();


< prev index next >