src/cpu/x86/vm/assembler_x86.cpp

changeset 2356
4de5f4101cfd
parent 2318
0fc262af204f
parent 2350
2f644f85485d
child 2423
b1a2afa37ec4
     1.1 --- a/src/cpu/x86/vm/assembler_x86.cpp	Wed Dec 08 04:50:35 2010 -0800
     1.2 +++ b/src/cpu/x86/vm/assembler_x86.cpp	Wed Dec 08 17:50:49 2010 -0800
     1.3 @@ -2649,6 +2649,37 @@
     1.4    emit_byte(0xC0 | encode);
     1.5  }
     1.6  
     1.7 +void Assembler::sqrtsd(XMMRegister dst, Address src) {
     1.8 +  NOT_LP64(assert(VM_Version::supports_sse2(), ""));
     1.9 +  InstructionMark im(this);
    1.10 +  emit_byte(0xF2);
    1.11 +  prefix(src, dst);
    1.12 +  emit_byte(0x0F);
    1.13 +  emit_byte(0x51);
    1.14 +  emit_operand(dst, src);
    1.15 +}
    1.16 +
    1.17 +void Assembler::sqrtss(XMMRegister dst, XMMRegister src) {
    1.18 +  // HMM Table D-1 says sse2
    1.19 +  // NOT_LP64(assert(VM_Version::supports_sse(), ""));
    1.20 +  NOT_LP64(assert(VM_Version::supports_sse2(), ""));
    1.21 +  emit_byte(0xF3);
    1.22 +  int encode = prefix_and_encode(dst->encoding(), src->encoding());
    1.23 +  emit_byte(0x0F);
    1.24 +  emit_byte(0x51);
    1.25 +  emit_byte(0xC0 | encode);
    1.26 +}
    1.27 +
    1.28 +void Assembler::sqrtss(XMMRegister dst, Address src) {
    1.29 +  NOT_LP64(assert(VM_Version::supports_sse2(), ""));
    1.30 +  InstructionMark im(this);
    1.31 +  emit_byte(0xF3);
    1.32 +  prefix(src, dst);
    1.33 +  emit_byte(0x0F);
    1.34 +  emit_byte(0x51);
    1.35 +  emit_operand(dst, src);
    1.36 +}
    1.37 +
    1.38  void Assembler::stmxcsr( Address dst) {
    1.39    NOT_LP64(assert(VM_Version::supports_sse(), ""));
    1.40    InstructionMark im(this);
    1.41 @@ -4358,16 +4389,6 @@
    1.42    emit_byte(0xE8 | encode);
    1.43  }
    1.44  
    1.45 -void Assembler::sqrtsd(XMMRegister dst, Address src) {
    1.46 -  NOT_LP64(assert(VM_Version::supports_sse2(), ""));
    1.47 -  InstructionMark im(this);
    1.48 -  emit_byte(0xF2);
    1.49 -  prefix(src, dst);
    1.50 -  emit_byte(0x0F);
    1.51 -  emit_byte(0x51);
    1.52 -  emit_operand(dst, src);
    1.53 -}
    1.54 -
    1.55  void Assembler::subq(Address dst, int32_t imm32) {
    1.56    InstructionMark im(this);
    1.57    prefixq(dst);
    1.58 @@ -4929,10 +4950,6 @@
    1.59  }
    1.60  
    1.61  
    1.62 -void MacroAssembler::movsd(XMMRegister dst, AddressLiteral src) {
    1.63 -  movsd(dst, as_Address(src));
    1.64 -}
    1.65 -
    1.66  void MacroAssembler::pop_callee_saved_registers() {
    1.67    pop(rcx);
    1.68    pop(rdx);

mercurial