< prev index next >

src/hotspot/cpu/x86/assembler_x86.cpp

Print this page

 5462 }
 5463 
 5464 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5465   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5466   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5467   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5468   emit_int16(0x53, (0xC0 | encode));
 5469 }
 5470 
 5471 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5472   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5473   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5474   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5475   emit_int16(0x53, (0xC0 | encode));
 5476 }
 5477 
 5478 void Assembler::rdtsc() {
 5479   emit_int16(0x0F, 0x31);
 5480 }
 5481 




 5482 // copies data from [esi] to [edi] using rcx pointer sized words
 5483 // generic
 5484 void Assembler::rep_mov() {
 5485   // REP
 5486   // MOVSQ
 5487   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5488   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5489 }
 5490 
 5491 // sets rcx bytes with rax, value at [edi]
 5492 void Assembler::rep_stosb() {
 5493   // REP
 5494   // STOSB
 5495   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5496   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5497 }
 5498 
 5499 // sets rcx pointer sized words with rax, value at [edi]
 5500 // generic
 5501 void Assembler::rep_stos() {

 5462 }
 5463 
 5464 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 5465   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5466   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5467   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 5468   emit_int16(0x53, (0xC0 | encode));
 5469 }
 5470 
 5471 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 5472   NOT_LP64(assert(VM_Version::supports_sse(), ""));
 5473   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 5474   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 5475   emit_int16(0x53, (0xC0 | encode));
 5476 }
 5477 
 5478 void Assembler::rdtsc() {
 5479   emit_int16(0x0F, 0x31);
 5480 }
 5481 
 5482 void Assembler::rdtscp() {
 5483   emit_int24(0x0F, 0x01, (unsigned char)0xF9);
 5484 }
 5485 
 5486 // copies data from [esi] to [edi] using rcx pointer sized words
 5487 // generic
 5488 void Assembler::rep_mov() {
 5489   // REP
 5490   // MOVSQ
 5491   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);)
 5492   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xA5);)
 5493 }
 5494 
 5495 // sets rcx bytes with rax, value at [edi]
 5496 void Assembler::rep_stosb() {
 5497   // REP
 5498   // STOSB
 5499   LP64_ONLY(emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);)
 5500   NOT_LP64( emit_int16((unsigned char)0xF3,        (unsigned char)0xAA);)
 5501 }
 5502 
 5503 // sets rcx pointer sized words with rax, value at [edi]
 5504 // generic
 5505 void Assembler::rep_stos() {
< prev index next >