< prev index next >

src/hotspot/cpu/x86/assembler_x86.cpp

Print this page

 6311     emit_int24((unsigned char)0xC1, (0xD0 | encode), imm8);
 6312   }
 6313 }
 6314 
 6315 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 6316   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 6317   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 6318   emit_int16(0x53, (0xC0 | encode));
 6319 }
 6320 
 6321 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 6322   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 6323   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 6324   emit_int16(0x53, (0xC0 | encode));
 6325 }
 6326 
 6327 void Assembler::rdtsc() {
 6328   emit_int16(0x0F, 0x31);
 6329 }
 6330 




 6331 // copies data from [esi] to [edi] using rcx pointer sized words
 6332 // generic
 6333 void Assembler::rep_mov() {
 6334   // REP
 6335   // MOVSQ
 6336   emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);
 6337 }
 6338 
 6339 // sets rcx bytes with rax, value at [edi]
 6340 void Assembler::rep_stosb() {
 6341   // REP
 6342   // STOSB
 6343   emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);
 6344 }
 6345 
 6346 // sets rcx pointer sized words with rax, value at [edi]
 6347 // generic
 6348 void Assembler::rep_stos() {
 6349   // REP
 6350   // STOSQ

 6311     emit_int24((unsigned char)0xC1, (0xD0 | encode), imm8);
 6312   }
 6313 }
 6314 
 6315 void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
 6316   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 6317   int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
 6318   emit_int16(0x53, (0xC0 | encode));
 6319 }
 6320 
 6321 void Assembler::rcpss(XMMRegister dst, XMMRegister src) {
 6322   InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ false);
 6323   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
 6324   emit_int16(0x53, (0xC0 | encode));
 6325 }
 6326 
 6327 void Assembler::rdtsc() {
 6328   emit_int16(0x0F, 0x31);
 6329 }
 6330 
 6331 void Assembler::rdtscp() {
 6332   emit_int24(0x0F, 0x01, (unsigned char)0xF9);
 6333 }
 6334 
 6335 // copies data from [esi] to [edi] using rcx pointer sized words
 6336 // generic
 6337 void Assembler::rep_mov() {
 6338   // REP
 6339   // MOVSQ
 6340   emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xA5);
 6341 }
 6342 
 6343 // sets rcx bytes with rax, value at [edi]
 6344 void Assembler::rep_stosb() {
 6345   // REP
 6346   // STOSB
 6347   emit_int24((unsigned char)0xF3, REX_W, (unsigned char)0xAA);
 6348 }
 6349 
 6350 // sets rcx pointer sized words with rax, value at [edi]
 6351 // generic
 6352 void Assembler::rep_stos() {
 6353   // REP
 6354   // STOSQ
< prev index next >