139 GrowableArray<KRegister> _opmask_registers;
140 GrowableArray<XMMRegisterData> _xmm_registers;
141 int _spill_size;
142 int _spill_offset;
143
144 static int xmm_compare_register_size(XMMRegisterData* left, XMMRegisterData* right);
145 static int xmm_slot_size(OptoReg::Name opto_reg);
146 static uint xmm_ideal_reg_for_size(int reg_size);
147 bool xmm_needs_vzeroupper() const;
148 void xmm_register_save(const XMMRegisterData& reg_data);
149 void xmm_register_restore(const XMMRegisterData& reg_data);
150 void gp_register_save(Register reg);
151 void opmask_register_save(KRegister reg);
152 void gp_register_restore(Register reg);
153 void opmask_register_restore(KRegister reg);
154 void initialize(BarrierStubC2* stub);
155
156 public:
157 SaveLiveRegisters(MacroAssembler* masm, BarrierStubC2* stub);
158 ~SaveLiveRegisters();
159 };
160
161 #endif // COMPILER2
162
163 #endif // CPU_X86_GC_SHARED_BARRIERSETASSEMBLER_X86_HPP
|
139 GrowableArray<KRegister> _opmask_registers;
140 GrowableArray<XMMRegisterData> _xmm_registers;
141 int _spill_size;
142 int _spill_offset;
143
144 static int xmm_compare_register_size(XMMRegisterData* left, XMMRegisterData* right);
145 static int xmm_slot_size(OptoReg::Name opto_reg);
146 static uint xmm_ideal_reg_for_size(int reg_size);
147 bool xmm_needs_vzeroupper() const;
148 void xmm_register_save(const XMMRegisterData& reg_data);
149 void xmm_register_restore(const XMMRegisterData& reg_data);
150 void gp_register_save(Register reg);
151 void opmask_register_save(KRegister reg);
152 void gp_register_restore(Register reg);
153 void opmask_register_restore(KRegister reg);
154 void initialize(BarrierStubC2* stub);
155
156 public:
157 SaveLiveRegisters(MacroAssembler* masm, BarrierStubC2* stub);
158 ~SaveLiveRegisters();
159 bool contains(Register r) const { return _gp_registers.contains(r); }
160 };
161
162 #endif // COMPILER2
163
164 #endif // CPU_X86_GC_SHARED_BARRIERSETASSEMBLER_X86_HPP
|