src/share/vm/c1/c1_LIRAssembler.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6930772 Sdiff src/share/vm/c1

src/share/vm/c1/c1_LIRAssembler.hpp

Print this page




  65   bool bailed_out() const                        { return compilation()->bailed_out(); }
  66 
  67   // code emission patterns and accessors
  68   void check_codespace();
  69   bool needs_icache(ciMethod* method) const;
  70 
  71   // returns offset of icache check
  72   int check_icache();
  73 
  74   void jobject2reg(jobject o, Register reg);
  75   void jobject2reg_with_patching(Register reg, CodeEmitInfo* info);
  76 
  77   void emit_stubs(CodeStubList* stub_list);
  78 
  79   // addresses
  80   Address as_Address(LIR_Address* addr);
  81   Address as_Address_lo(LIR_Address* addr);
  82   Address as_Address_hi(LIR_Address* addr);
  83 
  84   // debug information
  85   void add_call_info(int pc_offset, CodeEmitInfo* cinfo, bool is_method_handle_invoke = false);
  86   void add_debug_info_for_branch(CodeEmitInfo* info);
  87   void add_debug_info_for_div0(int pc_offset, CodeEmitInfo* cinfo);
  88   void add_debug_info_for_div0_here(CodeEmitInfo* info);
  89   void add_debug_info_for_null_check(int pc_offset, CodeEmitInfo* cinfo);
  90   void add_debug_info_for_null_check_here(CodeEmitInfo* info);
  91 
  92   void set_24bit_FPU();
  93   void reset_FPU();
  94   void fpop();
  95   void fxch(int i);
  96   void fld(int i);
  97   void ffree(int i);
  98 
  99   void breakpoint();
 100   void push(LIR_Opr opr);
 101   void pop(LIR_Opr opr);
 102 
 103   // patching
 104   void append_patching_stub(PatchingStub* stub);
 105   void patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info);


 192   void emit_delay(LIR_OpDelay* op);
 193 
 194   void arith_op(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr dest, CodeEmitInfo* info, bool pop_fpu_stack);
 195   void arithmetic_idiv(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr temp, LIR_Opr result, CodeEmitInfo* info);
 196   void intrinsic_op(LIR_Code code, LIR_Opr value, LIR_Opr unused, LIR_Opr dest, LIR_Op* op);
 197 
 198   void logic_op(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr dest);
 199 
 200   void roundfp_op(LIR_Opr src, LIR_Opr tmp, LIR_Opr dest, bool pop_fpu_stack);
 201   void move_op(LIR_Opr src, LIR_Opr result, BasicType type,
 202                LIR_PatchCode patch_code, CodeEmitInfo* info, bool pop_fpu_stack, bool unaligned);
 203   void volatile_move_op(LIR_Opr src, LIR_Opr result, BasicType type, CodeEmitInfo* info);
 204   void comp_mem_op(LIR_Opr src, LIR_Opr result, BasicType type, CodeEmitInfo* info);  // info set for null exceptions
 205   void comp_fl2i(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr result, LIR_Op2* op);
 206   void cmove(LIR_Condition code, LIR_Opr left, LIR_Opr right, LIR_Opr result);
 207 
 208   void call(        LIR_OpJavaCall* op, relocInfo::relocType rtype);
 209   void ic_call(     LIR_OpJavaCall* op);
 210   void vtable_call( LIR_OpJavaCall* op);
 211 
 212   // JSR 292
 213   void preserve_SP(LIR_OpJavaCall* op);
 214   void restore_SP( LIR_OpJavaCall* op);
 215 
 216   void osr_entry();
 217 
 218   void build_frame();
 219 
 220   void throw_op(LIR_Opr exceptionPC, LIR_Opr exceptionOop, CodeEmitInfo* info, bool unwind);
 221   void monitor_address(int monitor_ix, LIR_Opr dst);
 222 
 223   void align_backward_branch_target();
 224   void align_call(LIR_Code code);
 225 
 226   void negate(LIR_Opr left, LIR_Opr dest);
 227   void leal(LIR_Opr left, LIR_Opr dest);
 228 
 229   void rt_call(LIR_Opr result, address dest, const LIR_OprList* args, LIR_Opr tmp, CodeEmitInfo* info);
 230 
 231   void membar();
 232   void membar_acquire();
 233   void membar_release();
 234   void get_thread(LIR_Opr result);
 235 


  65   bool bailed_out() const                        { return compilation()->bailed_out(); }
  66 
  67   // code emission patterns and accessors
  68   void check_codespace();
  69   bool needs_icache(ciMethod* method) const;
  70 
  71   // returns offset of icache check
  72   int check_icache();
  73 
  74   void jobject2reg(jobject o, Register reg);
  75   void jobject2reg_with_patching(Register reg, CodeEmitInfo* info);
  76 
  77   void emit_stubs(CodeStubList* stub_list);
  78 
  79   // addresses
  80   Address as_Address(LIR_Address* addr);
  81   Address as_Address_lo(LIR_Address* addr);
  82   Address as_Address_hi(LIR_Address* addr);
  83 
  84   // debug information
  85   void add_call_info(int pc_offset, CodeEmitInfo* cinfo);
  86   void add_debug_info_for_branch(CodeEmitInfo* info);
  87   void add_debug_info_for_div0(int pc_offset, CodeEmitInfo* cinfo);
  88   void add_debug_info_for_div0_here(CodeEmitInfo* info);
  89   void add_debug_info_for_null_check(int pc_offset, CodeEmitInfo* cinfo);
  90   void add_debug_info_for_null_check_here(CodeEmitInfo* info);
  91 
  92   void set_24bit_FPU();
  93   void reset_FPU();
  94   void fpop();
  95   void fxch(int i);
  96   void fld(int i);
  97   void ffree(int i);
  98 
  99   void breakpoint();
 100   void push(LIR_Opr opr);
 101   void pop(LIR_Opr opr);
 102 
 103   // patching
 104   void append_patching_stub(PatchingStub* stub);
 105   void patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info);


 192   void emit_delay(LIR_OpDelay* op);
 193 
 194   void arith_op(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr dest, CodeEmitInfo* info, bool pop_fpu_stack);
 195   void arithmetic_idiv(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr temp, LIR_Opr result, CodeEmitInfo* info);
 196   void intrinsic_op(LIR_Code code, LIR_Opr value, LIR_Opr unused, LIR_Opr dest, LIR_Op* op);
 197 
 198   void logic_op(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr dest);
 199 
 200   void roundfp_op(LIR_Opr src, LIR_Opr tmp, LIR_Opr dest, bool pop_fpu_stack);
 201   void move_op(LIR_Opr src, LIR_Opr result, BasicType type,
 202                LIR_PatchCode patch_code, CodeEmitInfo* info, bool pop_fpu_stack, bool unaligned);
 203   void volatile_move_op(LIR_Opr src, LIR_Opr result, BasicType type, CodeEmitInfo* info);
 204   void comp_mem_op(LIR_Opr src, LIR_Opr result, BasicType type, CodeEmitInfo* info);  // info set for null exceptions
 205   void comp_fl2i(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr result, LIR_Op2* op);
 206   void cmove(LIR_Condition code, LIR_Opr left, LIR_Opr right, LIR_Opr result);
 207 
 208   void call(        LIR_OpJavaCall* op, relocInfo::relocType rtype);
 209   void ic_call(     LIR_OpJavaCall* op);
 210   void vtable_call( LIR_OpJavaCall* op);
 211 




 212   void osr_entry();
 213 
 214   void build_frame();
 215 
 216   void throw_op(LIR_Opr exceptionPC, LIR_Opr exceptionOop, CodeEmitInfo* info, bool unwind);
 217   void monitor_address(int monitor_ix, LIR_Opr dst);
 218 
 219   void align_backward_branch_target();
 220   void align_call(LIR_Code code);
 221 
 222   void negate(LIR_Opr left, LIR_Opr dest);
 223   void leal(LIR_Opr left, LIR_Opr dest);
 224 
 225   void rt_call(LIR_Opr result, address dest, const LIR_OprList* args, LIR_Opr tmp, CodeEmitInfo* info);
 226 
 227   void membar();
 228   void membar_acquire();
 229   void membar_release();
 230   void get_thread(LIR_Opr result);
 231 
src/share/vm/c1/c1_LIRAssembler.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File