< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.hpp

Print this page

345 
346   void arithmetic_op(Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, LIR_Opr tmp, CodeEmitInfo* info = NULL);
347   // machine dependent.  returns true if it emitted code for the multiply
348   bool strength_reduce_multiply(LIR_Opr left, jint constant, LIR_Opr result, LIR_Opr tmp);
349 
350   void store_stack_parameter (LIR_Opr opr, ByteSize offset_from_sp_in_bytes);
351 
352   void klass2reg_with_patching(LIR_Opr r, ciMetadata* obj, CodeEmitInfo* info, bool need_resolve = false);
353 
354   // this loads the length and compares against the index
355   void array_range_check          (LIR_Opr array, LIR_Opr index, CodeEmitInfo* null_check_info, CodeEmitInfo* range_check_info);
356 
357   void arithmetic_op_int  (Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, LIR_Opr tmp);
358   void arithmetic_op_long (Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, CodeEmitInfo* info = NULL);
359   void arithmetic_op_fpu  (Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, LIR_Opr tmp = LIR_OprFact::illegalOpr);
360 
361   void shift_op   (Bytecodes::Code code, LIR_Opr dst_reg, LIR_Opr value, LIR_Opr count, LIR_Opr tmp);
362 
363   void logic_op   (Bytecodes::Code code, LIR_Opr dst_reg, LIR_Opr left, LIR_Opr right);
364 
365   void monitor_enter (LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no, CodeEmitInfo* info_for_exception, CodeEmitInfo* info);
366   void monitor_exit  (LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no);
367 
368   void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  klass_reg, CodeEmitInfo* info);
369 
370   // machine dependent
371   void cmp_mem_int(LIR_Condition condition, LIR_Opr base, int disp, int c, CodeEmitInfo* info);
372   void cmp_reg_mem(LIR_Condition condition, LIR_Opr reg, LIR_Opr base, int disp, BasicType type, CodeEmitInfo* info);
373 
374   void arraycopy_helper(Intrinsic* x, int* flags, ciArrayKlass** expected_type);
375 
376   // returns a LIR_Address to address an array location.  May also
377   // emit some code as part of address calculation.  If
378   // needs_card_mark is true then compute the full address for use by
379   // both the store and the card mark.
380   LIR_Address* generate_address(LIR_Opr base,
381                                 LIR_Opr index, int shift,
382                                 int disp,
383                                 BasicType type);
384   LIR_Address* generate_address(LIR_Opr base, int disp, BasicType type) {
385     return generate_address(base, LIR_OprFact::illegalOpr, 0, disp, type);

345 
346   void arithmetic_op(Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, LIR_Opr tmp, CodeEmitInfo* info = NULL);
347   // machine dependent.  returns true if it emitted code for the multiply
348   bool strength_reduce_multiply(LIR_Opr left, jint constant, LIR_Opr result, LIR_Opr tmp);
349 
350   void store_stack_parameter (LIR_Opr opr, ByteSize offset_from_sp_in_bytes);
351 
352   void klass2reg_with_patching(LIR_Opr r, ciMetadata* obj, CodeEmitInfo* info, bool need_resolve = false);
353 
354   // this loads the length and compares against the index
355   void array_range_check          (LIR_Opr array, LIR_Opr index, CodeEmitInfo* null_check_info, CodeEmitInfo* range_check_info);
356 
357   void arithmetic_op_int  (Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, LIR_Opr tmp);
358   void arithmetic_op_long (Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, CodeEmitInfo* info = NULL);
359   void arithmetic_op_fpu  (Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, LIR_Opr tmp = LIR_OprFact::illegalOpr);
360 
361   void shift_op   (Bytecodes::Code code, LIR_Opr dst_reg, LIR_Opr value, LIR_Opr count, LIR_Opr tmp);
362 
363   void logic_op   (Bytecodes::Code code, LIR_Opr dst_reg, LIR_Opr left, LIR_Opr right);
364 
365   void monitor_enter (LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr tmp1, LIR_Opr tmp2, int monitor_no, CodeEmitInfo* info_for_exception, CodeEmitInfo* info);
366   void monitor_exit  (LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no);
367 
368   void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  klass_reg, CodeEmitInfo* info);
369 
370   // machine dependent
371   void cmp_mem_int(LIR_Condition condition, LIR_Opr base, int disp, int c, CodeEmitInfo* info);
372   void cmp_reg_mem(LIR_Condition condition, LIR_Opr reg, LIR_Opr base, int disp, BasicType type, CodeEmitInfo* info);
373 
374   void arraycopy_helper(Intrinsic* x, int* flags, ciArrayKlass** expected_type);
375 
376   // returns a LIR_Address to address an array location.  May also
377   // emit some code as part of address calculation.  If
378   // needs_card_mark is true then compute the full address for use by
379   // both the store and the card mark.
380   LIR_Address* generate_address(LIR_Opr base,
381                                 LIR_Opr index, int shift,
382                                 int disp,
383                                 BasicType type);
384   LIR_Address* generate_address(LIR_Opr base, int disp, BasicType type) {
385     return generate_address(base, LIR_OprFact::illegalOpr, 0, disp, type);
< prev index next >