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