7447 emit_int8((unsigned char)(0xC0 | encode)); |
7447 emit_int8((unsigned char)(0xC0 | encode)); |
7448 int src2_enc = src2->encoding(); |
7448 int src2_enc = src2->encoding(); |
7449 emit_int8((unsigned char)(0xF0 & src2_enc<<4)); |
7449 emit_int8((unsigned char)(0xF0 & src2_enc<<4)); |
7450 } |
7450 } |
7451 |
7451 |
|
7452 void Assembler::cmpps(XMMRegister dst, XMMRegister nds, XMMRegister src, int cop, int vector_len) { |
|
7453 assert(VM_Version::supports_avx(), ""); |
|
7454 assert(!VM_Version::supports_evex(), ""); |
|
7455 InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); |
|
7456 int encode = simd_prefix_and_encode(dst, nds, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes); |
|
7457 emit_int8((unsigned char)0xC2); |
|
7458 emit_int8((unsigned char)(0xC0 | encode)); |
|
7459 emit_int8((unsigned char)(0xF & cop)); |
|
7460 } |
|
7461 |
|
7462 void Assembler::blendvps(XMMRegister dst, XMMRegister nds, XMMRegister src1, XMMRegister src2, int vector_len) { |
|
7463 assert(VM_Version::supports_avx(), ""); |
|
7464 assert(!VM_Version::supports_evex(), ""); |
|
7465 InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); |
|
7466 int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src1->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); |
|
7467 emit_int8((unsigned char)0x4A); |
|
7468 emit_int8((unsigned char)(0xC0 | encode)); |
|
7469 int src2_enc = src2->encoding(); |
|
7470 emit_int8((unsigned char)(0xF0 & src2_enc<<4)); |
|
7471 } |
|
7472 |
7452 void Assembler::vpblendd(XMMRegister dst, XMMRegister nds, XMMRegister src, int imm8, int vector_len) { |
7473 void Assembler::vpblendd(XMMRegister dst, XMMRegister nds, XMMRegister src, int imm8, int vector_len) { |
7453 assert(VM_Version::supports_avx2(), ""); |
7474 assert(VM_Version::supports_avx2(), ""); |
7454 InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); |
7475 InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); |
7455 int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); |
7476 int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); |
7456 emit_int8((unsigned char)0x02); |
7477 emit_int8((unsigned char)0x02); |