< prev index next >

src/cpu/x86/vm/stubGenerator_x86_64.cpp

Print this page

        

@@ -5130,10 +5130,13 @@
       StubRoutines::x86::generate_CRC32C_table(supports_clmul);
       StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
       StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
     }
     if (VM_Version::supports_sse2() && UseLibmIntrinsic) {
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dsin) ||
+          vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dcos) ||
+          vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dtan)) {
       StubRoutines::x86::_ONEHALF_adr = (address)StubRoutines::x86::_ONEHALF;
       StubRoutines::x86::_P_2_adr = (address)StubRoutines::x86::_P_2;
       StubRoutines::x86::_SC_4_adr = (address)StubRoutines::x86::_SC_4;
       StubRoutines::x86::_Ctable_adr = (address)StubRoutines::x86::_Ctable;
       StubRoutines::x86::_SC_2_adr = (address)StubRoutines::x86::_SC_2;

@@ -5144,18 +5147,33 @@
       StubRoutines::x86::_PI32INV_adr = (address)StubRoutines::x86::_PI32INV;
       StubRoutines::x86::_SIGN_MASK_adr = (address)StubRoutines::x86::_SIGN_MASK;
       StubRoutines::x86::_P_1_adr = (address)StubRoutines::x86::_P_1;
       StubRoutines::x86::_P_3_adr = (address)StubRoutines::x86::_P_3;
       StubRoutines::x86::_NEG_ZERO_adr = (address)StubRoutines::x86::_NEG_ZERO;
+      }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dexp)) {
       StubRoutines::_dexp = generate_libmExp();
+      }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dlog)) {
       StubRoutines::_dlog = generate_libmLog();
+      }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dlog10)) {
       StubRoutines::_dlog10 = generate_libmLog10();
+      }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dpow)) {
       StubRoutines::_dpow = generate_libmPow();
-      StubRoutines::_dtan = generate_libmTan();
+      }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dsin)) {
       StubRoutines::_dsin = generate_libmSin();
+      }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dcos)) {
       StubRoutines::_dcos = generate_libmCos();
     }
+      if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dtan)) {
+        StubRoutines::_dtan = generate_libmTan();
+      }
+    }
   }
 
   void generate_all() {
     // Generates all stubs and initializes the entry points
 
< prev index next >