< prev index next >

src/hotspot/cpu/x86/c1_LinearScan_x86.hpp

Print this page




 105 #ifdef _LP64
 106   if (UseAVX < 3) {
 107     last_xmm_reg = pd_first_xmm_reg + (pd_nof_xmm_regs_frame_map / 2) - 1;
 108   }
 109 #endif
 110   if (allocator()->gen()->is_vreg_flag_set(cur->reg_num(), LIRGenerator::byte_reg)) {
 111     assert(cur->type() != T_FLOAT && cur->type() != T_DOUBLE, "cpu regs only");
 112     _first_reg = pd_first_byte_reg;
 113     _last_reg = FrameMap::last_byte_reg();
 114     return true;
 115   } else if ((UseSSE >= 1 && cur->type() == T_FLOAT) || (UseSSE >= 2 && cur->type() == T_DOUBLE)) {
 116     _first_reg = pd_first_xmm_reg;
 117     _last_reg = last_xmm_reg;
 118     return true;
 119   }
 120 
 121   return false;
 122 }
 123 
 124 
 125 class FpuStackAllocator VALUE_OBJ_CLASS_SPEC {
 126  private:
 127   Compilation* _compilation;
 128   LinearScan* _allocator;
 129 
 130   LIR_OpVisitState visitor;
 131 
 132   LIR_List* _lir;
 133   int _pos;
 134   FpuStackSim _sim;
 135   FpuStackSim _temp_sim;
 136 
 137   bool _debug_information_computed;
 138 
 139   LinearScan*   allocator()                      { return _allocator; }
 140   Compilation*  compilation() const              { return _compilation; }
 141 
 142   // unified bailout support
 143   void          bailout(const char* msg) const   { compilation()->bailout(msg); }
 144   bool          bailed_out() const               { return compilation()->bailed_out(); }
 145 




 105 #ifdef _LP64
 106   if (UseAVX < 3) {
 107     last_xmm_reg = pd_first_xmm_reg + (pd_nof_xmm_regs_frame_map / 2) - 1;
 108   }
 109 #endif
 110   if (allocator()->gen()->is_vreg_flag_set(cur->reg_num(), LIRGenerator::byte_reg)) {
 111     assert(cur->type() != T_FLOAT && cur->type() != T_DOUBLE, "cpu regs only");
 112     _first_reg = pd_first_byte_reg;
 113     _last_reg = FrameMap::last_byte_reg();
 114     return true;
 115   } else if ((UseSSE >= 1 && cur->type() == T_FLOAT) || (UseSSE >= 2 && cur->type() == T_DOUBLE)) {
 116     _first_reg = pd_first_xmm_reg;
 117     _last_reg = last_xmm_reg;
 118     return true;
 119   }
 120 
 121   return false;
 122 }
 123 
 124 
 125 class FpuStackAllocator {
 126  private:
 127   Compilation* _compilation;
 128   LinearScan* _allocator;
 129 
 130   LIR_OpVisitState visitor;
 131 
 132   LIR_List* _lir;
 133   int _pos;
 134   FpuStackSim _sim;
 135   FpuStackSim _temp_sim;
 136 
 137   bool _debug_information_computed;
 138 
 139   LinearScan*   allocator()                      { return _allocator; }
 140   Compilation*  compilation() const              { return _compilation; }
 141 
 142   // unified bailout support
 143   void          bailout(const char* msg) const   { compilation()->bailout(msg); }
 144   bool          bailed_out() const               { return compilation()->bailed_out(); }
 145 


< prev index next >