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();
|