< prev index next >

src/cpu/x86/vm/assembler_x86.hpp

Print this page

        

*** 1333,1342 **** --- 1333,1343 ---- void movddup(XMMRegister dst, XMMRegister src); void kmovbl(KRegister dst, Register src); void kmovbl(Register dst, KRegister src); void kmovwl(KRegister dst, Register src); + void kmovwl(KRegister dst, Address src); void kmovwl(Register dst, KRegister src); void kmovdl(KRegister dst, Register src); void kmovdl(Register dst, KRegister src); void kmovql(KRegister dst, KRegister src); void kmovql(Address dst, KRegister src);
*** 2073,2082 **** --- 2074,2084 ---- bool no_reg_mask, // when true, k0 is used when EVEX encoding is chosen, else k1 is used under the same condition bool uses_vl) // This instruction may have legacy constraints based on vector length for EVEX : _avx_vector_len(vector_len), _rex_vex_w(rex_vex_w), + _rex_vex_w_reverted(false), _legacy_mode(legacy_mode), _no_reg_mask(no_reg_mask), _uses_vl(uses_vl), _tuple_type(Assembler::EVEX_ETUP), _input_size_in_bits(Assembler::EVEX_NObit),
*** 2096,2105 **** --- 2098,2108 ---- } private: int _avx_vector_len; bool _rex_vex_w; + bool _rex_vex_w_reverted; bool _legacy_mode; bool _no_reg_mask; bool _uses_vl; int _tuple_type; int _input_size_in_bits;
*** 2112,2121 **** --- 2115,2125 ---- public: // query functions for field accessors int get_vector_len(void) const { return _avx_vector_len; } bool is_rex_vex_w(void) const { return _rex_vex_w; } + bool is_rex_vex_w_reverted(void) { return _rex_vex_w_reverted; } bool is_legacy_mode(void) const { return _legacy_mode; } bool is_no_reg_mask(void) const { return _no_reg_mask; } bool uses_vl(void) const { return _uses_vl; } int get_tuple_type(void) const { return _tuple_type; } int get_input_size(void) const { return _input_size_in_bits; }
*** 2125,2134 **** --- 2129,2144 ---- bool is_extended_context(void) const { return _is_extended_context; } // Set the vector len manually void set_vector_len(int vector_len) { _avx_vector_len = vector_len; } + // Set revert rex_vex_w for avx encoding + void set_rex_vex_w_reverted(void) { _rex_vex_w_reverted = true; } + + // Set rex_vex_w based on state + void set_rex_vex_w(bool state) { _rex_vex_w = state; } + // Set the instruction to be encoded in AVX mode void set_is_legacy_mode(void) { _legacy_mode = true; } // Set the current instuction to be encoded as an EVEX instuction void set_is_evex_instruction(void) { _is_evex_instruction = true; }
< prev index next >