< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Print this page

2137 
2138   void cache_wb(Address line);
2139   void cache_wbsync(bool is_pre);
2140 
2141 #ifdef COMPILER2_OR_JVMCI
2142   void generate_fill_avx3(BasicType type, Register to, Register value,
2143                           Register count, Register rtmp, XMMRegister xtmp);
2144 #endif // COMPILER2_OR_JVMCI
2145 #endif // _LP64
2146 
2147   void vallones(XMMRegister dst, int vector_len);
2148 
2149   void check_stack_alignment(Register sp, const char* msg, unsigned bias = 0, Register tmp = noreg);
2150 
2151   void lightweight_lock(Register basic_lock, Register obj, Register reg_rax, Register thread, Register tmp, Label& slow);
2152   void lightweight_unlock(Register obj, Register reg_rax, Register thread, Register tmp, Label& slow);
2153 
2154 #ifdef _LP64
2155   void save_legacy_gprs();
2156   void restore_legacy_gprs();

2157   void setcc(Assembler::Condition comparison, Register dst);
2158 #endif
2159 };
2160 
2161 /**
2162  * class SkipIfEqual:
2163  *
2164  * Instantiating this class will result in assembly code being output that will
2165  * jump around any code emitted between the creation of the instance and it's
2166  * automatic destruction at the end of a scope block, depending on the value of
2167  * the flag passed to the constructor, which will be checked at run-time.
2168  */
2169 class SkipIfEqual {
2170  private:
2171   MacroAssembler* _masm;
2172   Label _label;
2173 
2174  public:
2175    SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value, Register rscratch);
2176    ~SkipIfEqual();

2137 
2138   void cache_wb(Address line);
2139   void cache_wbsync(bool is_pre);
2140 
2141 #ifdef COMPILER2_OR_JVMCI
2142   void generate_fill_avx3(BasicType type, Register to, Register value,
2143                           Register count, Register rtmp, XMMRegister xtmp);
2144 #endif // COMPILER2_OR_JVMCI
2145 #endif // _LP64
2146 
2147   void vallones(XMMRegister dst, int vector_len);
2148 
2149   void check_stack_alignment(Register sp, const char* msg, unsigned bias = 0, Register tmp = noreg);
2150 
2151   void lightweight_lock(Register basic_lock, Register obj, Register reg_rax, Register thread, Register tmp, Label& slow);
2152   void lightweight_unlock(Register obj, Register reg_rax, Register thread, Register tmp, Label& slow);
2153 
2154 #ifdef _LP64
2155   void save_legacy_gprs();
2156   void restore_legacy_gprs();
2157   void load_aotrc_address(Register reg, address a);
2158   void setcc(Assembler::Condition comparison, Register dst);
2159 #endif
2160 };
2161 
2162 /**
2163  * class SkipIfEqual:
2164  *
2165  * Instantiating this class will result in assembly code being output that will
2166  * jump around any code emitted between the creation of the instance and it's
2167  * automatic destruction at the end of a scope block, depending on the value of
2168  * the flag passed to the constructor, which will be checked at run-time.
2169  */
2170 class SkipIfEqual {
2171  private:
2172   MacroAssembler* _masm;
2173   Label _label;
2174 
2175  public:
2176    SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value, Register rscratch);
2177    ~SkipIfEqual();
< prev index next >