< prev index next >

src/hotspot/cpu/x86/assembler_x86.cpp

Print this page

 5715 }
 5716 
 5717 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5718   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5719   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5720   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5721   emit_int16(0x53, (0xC0 | encode));
 5722 }
 5723 
 5724 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5725   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5726   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5727   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5728   emit_int16(0x53, (0xC0 | encode));
 5729 }
 5730 
 5731 void Assembler::rdtsc() {
 5732   emit_int16(0x0F, 0x31);
 5733 }
 5734 




 5735 // copies data from [esi] to [edi] using rcx pointer sized words
 5736 // generic
 5737 void Assembler::rep_mov() {
 5738   // REP
 5739   // MOVSQ
 5740   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5741   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5742 }
 5743 
 5744 // sets rcx bytes with rax, value at [edi]
 5745 void Assembler::rep_stosb() {
 5746   // REP
 5747   // STOSB
 5748   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5749   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5750 }
 5751 
 5752 // sets rcx pointer sized words with rax, value at [edi]
 5753 // generic
 5754 void Assembler::rep_stos() {

 5715 }
 5716 
 5717 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5718   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5719   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5720   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5721   emit_int16(0x53, (0xC0 | encode));
 5722 }
 5723 
 5724 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5725   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5726   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5727   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5728   emit_int16(0x53, (0xC0 | encode));
 5729 }
 5730 
 5731 void Assembler::rdtsc() {
 5732   emit_int16(0x0F, 0x31);
 5733 }
 5734 
 5735 void Assembler::rdtscp() {
 5736   emit_int24(0x0F, 0x01, (unsigned char)0xF9);
 5737 }
 5738 
 5739 // copies data from [esi] to [edi] using rcx pointer sized words
 5740 // generic
 5741 void Assembler::rep_mov() {
 5742   // REP
 5743   // MOVSQ
 5744   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5745   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5746 }
 5747 
 5748 // sets rcx bytes with rax, value at [edi]
 5749 void Assembler::rep_stosb() {
 5750   // REP
 5751   // STOSB
 5752   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5753   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5754 }
 5755 
 5756 // sets rcx pointer sized words with rax, value at [edi]
 5757 // generic
 5758 void Assembler::rep_stos() {
< prev index next >