hotspot/src/share/vm/c1/c1_LIRGenerator.hpp
changeset 42063 dca9294d9f59
parent 42037 6269c5b5b651
child 45632 e56cfcaea55c
equal deleted inserted replaced
42062:473286891dd8 42063:dca9294d9f59
    26 #define SHARE_VM_C1_C1_LIRGENERATOR_HPP
    26 #define SHARE_VM_C1_C1_LIRGENERATOR_HPP
    27 
    27 
    28 #include "c1/c1_Instruction.hpp"
    28 #include "c1/c1_Instruction.hpp"
    29 #include "c1/c1_LIR.hpp"
    29 #include "c1/c1_LIR.hpp"
    30 #include "ci/ciMethodData.hpp"
    30 #include "ci/ciMethodData.hpp"
       
    31 #include "utilities/macros.hpp"
    31 #include "utilities/sizes.hpp"
    32 #include "utilities/sizes.hpp"
    32 
    33 
    33 // The classes responsible for code emission and register allocation
    34 // The classes responsible for code emission and register allocation
    34 
    35 
    35 
    36 
   358 
   359 
   359   // the helper for generate_address
   360   // the helper for generate_address
   360   void add_large_constant(LIR_Opr src, int c, LIR_Opr dest);
   361   void add_large_constant(LIR_Opr src, int c, LIR_Opr dest);
   361 
   362 
   362   // machine preferences and characteristics
   363   // machine preferences and characteristics
   363   bool can_inline_as_constant(Value i) const;
   364   bool can_inline_as_constant(Value i S390_ONLY(COMMA int bits = 20)) const;
   364   bool can_inline_as_constant(LIR_Const* c) const;
   365   bool can_inline_as_constant(LIR_Const* c) const;
   365   bool can_store_as_constant(Value i, BasicType type) const;
   366   bool can_store_as_constant(Value i, BasicType type) const;
   366 
   367 
   367   LIR_Opr safepoint_poll_register();
   368   LIR_Opr safepoint_poll_register();
   368 
   369 
   495   static LIR_Opr exceptionOopOpr();
   496   static LIR_Opr exceptionOopOpr();
   496   static LIR_Opr exceptionPcOpr();
   497   static LIR_Opr exceptionPcOpr();
   497   static LIR_Opr divInOpr();
   498   static LIR_Opr divInOpr();
   498   static LIR_Opr divOutOpr();
   499   static LIR_Opr divOutOpr();
   499   static LIR_Opr remOutOpr();
   500   static LIR_Opr remOutOpr();
       
   501 #ifdef S390
       
   502   // On S390 we can do ldiv, lrem without RT call.
       
   503   static LIR_Opr ldivInOpr();
       
   504   static LIR_Opr ldivOutOpr();
       
   505   static LIR_Opr lremOutOpr();
       
   506 #endif
   500   static LIR_Opr shiftCountOpr();
   507   static LIR_Opr shiftCountOpr();
   501   LIR_Opr syncLockOpr();
   508   LIR_Opr syncLockOpr();
   502   LIR_Opr syncTempOpr();
   509   LIR_Opr syncTempOpr();
   503   LIR_Opr atomicLockOpr();
   510   LIR_Opr atomicLockOpr();
   504 
   511 
   620 
   627 
   621   void set_result(LIR_Opr opr);
   628   void set_result(LIR_Opr opr);
   622 
   629 
   623   void load_item();
   630   void load_item();
   624   void load_byte_item();
   631   void load_byte_item();
   625   void load_nonconstant();
   632   void load_nonconstant(S390_ONLY(int bits = 20));
   626   // load any values which can't be expressed as part of a single store instruction
   633   // load any values which can't be expressed as part of a single store instruction
   627   void load_for_store(BasicType store_type);
   634   void load_for_store(BasicType store_type);
   628   void load_item_force(LIR_Opr reg);
   635   void load_item_force(LIR_Opr reg);
   629 
   636 
   630   void dont_load_item() {
   637   void dont_load_item() {