< prev index next >

src/cpu/x86/vm/assembler_x86.hpp

Print this page

        

@@ -1333,10 +1333,11 @@
   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,10 +2074,11 @@
     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,10 +2098,11 @@
   }
 
 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,10 +2115,11 @@
 
 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,10 +2129,16 @@
   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 >