< prev index next >

src/hotspot/cpu/x86/assembler_x86.cpp

Print this page

 5616 }
 5617 
 5618 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5619   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5620   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5621   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5622   emit_int16(0x53, (0xC0 | encode));
 5623 }
 5624 
 5625 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5626   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5627   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5628   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5629   emit_int16(0x53, (0xC0 | encode));
 5630 }
 5631 
 5632 void Assembler::rdtsc() {
 5633   emit_int16(0x0F, 0x31);
 5634 }
 5635 




 5636 // copies data from [esi] to [edi] using rcx pointer sized words
 5637 // generic
 5638 void Assembler::rep_mov() {
 5639   // REP
 5640   // MOVSQ
 5641   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5642   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5643 }
 5644 
 5645 // sets rcx bytes with rax, value at [edi]
 5646 void Assembler::rep_stosb() {
 5647   // REP
 5648   // STOSB
 5649   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5650   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5651 }
 5652 
 5653 // sets rcx pointer sized words with rax, value at [edi]
 5654 // generic
 5655 void Assembler::rep_stos() {

 5616 }
 5617 
 5618 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5619   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5620   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5621   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5622   emit_int16(0x53, (0xC0 | encode));
 5623 }
 5624 
 5625 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5626   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5627   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5628   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5629   emit_int16(0x53, (0xC0 | encode));
 5630 }
 5631 
 5632 void Assembler::rdtsc() {
 5633   emit_int16(0x0F, 0x31);
 5634 }
 5635 
 5636 void Assembler::rdtscp() {
 5637   emit_int24(0x0F, 0x01, (unsigned char)0xF9);
 5638 }
 5639 
 5640 // copies data from [esi] to [edi] using rcx pointer sized words
 5641 // generic
 5642 void Assembler::rep_mov() {
 5643   // REP
 5644   // MOVSQ
 5645   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5646   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5647 }
 5648 
 5649 // sets rcx bytes with rax, value at [edi]
 5650 void Assembler::rep_stosb() {
 5651   // REP
 5652   // STOSB
 5653   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5654   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5655 }
 5656 
 5657 // sets rcx pointer sized words with rax, value at [edi]
 5658 // generic
 5659 void Assembler::rep_stos() {
< prev index next >