< prev index next >

src/hotspot/cpu/x86/assembler_x86.cpp

Print this page

 5677 }
 5678 
 5679 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5680   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5681   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5682   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5683   emit_int16(0x53, (0xC0 | encode));
 5684 }
 5685 
 5686 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5687   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5688   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5689   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5690   emit_int16(0x53, (0xC0 | encode));
 5691 }
 5692 
 5693 void Assembler::rdtsc() {
 5694   emit_int16(0x0F, 0x31);
 5695 }
 5696 




 5697 // copies data from [esi] to [edi] using rcx pointer sized words
 5698 // generic
 5699 void Assembler::rep_mov() {
 5700   // REP
 5701   // MOVSQ
 5702   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5703   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5704 }
 5705 
 5706 // sets rcx bytes with rax, value at [edi]
 5707 void Assembler::rep_stosb() {
 5708   // REP
 5709   // STOSB
 5710   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5711   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5712 }
 5713 
 5714 // sets rcx pointer sized words with rax, value at [edi]
 5715 // generic
 5716 void Assembler::rep_stos() {

 5677 }
 5678 
 5679 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5680   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5681   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5682   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5683   emit_int16(0x53, (0xC0 | encode));
 5684 }
 5685 
 5686 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5687   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5688   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5689   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5690   emit_int16(0x53, (0xC0 | encode));
 5691 }
 5692 
 5693 void Assembler::rdtsc() {
 5694   emit_int16(0x0F, 0x31);
 5695 }
 5696 
 5697 void Assembler::rdtscp() {
 5698   emit_int24(0x0F, 0x01, (unsigned char)0xF9);
 5699 }
 5700 
 5701 // copies data from [esi] to [edi] using rcx pointer sized words
 5702 // generic
 5703 void Assembler::rep_mov() {
 5704   // REP
 5705   // MOVSQ
 5706   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5707   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5708 }
 5709 
 5710 // sets rcx bytes with rax, value at [edi]
 5711 void Assembler::rep_stosb() {
 5712   // REP
 5713   // STOSB
 5714   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5715   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5716 }
 5717 
 5718 // sets rcx pointer sized words with rax, value at [edi]
 5719 // generic
 5720 void Assembler::rep_stos() {
< prev index next >