void VM_Version::initialize() {
  ResourceMark rm;

  stub_blob = BufferBlob::create("getPsrInfo_stub", stub_size);
  if (stub_blob == NULL) {
    vm_exit_during_initialization("Unable to allocate getPsrInfo_stub");
  }

  CodeBuffer c(stub_blob);
  VM_Version_StubGenerator g(&c);
  getPsrInfo_stub = CAST_TO_FN_PTR(getPsrInfo_stub_t,
                                   g.generate_getPsrInfo());

  get_processor_features();
}
Exemple #2
0
void VM_Version::initialize() {
  ResourceMark rm;
  // Making this stub must be FIRST use of assembler

  stub_blob = BufferBlob::create("getPsrInfo_stub", stub_size);
  if (stub_blob == NULL) {
    vm_exit_during_initialization("Unable to allocate getPsrInfo_stub");
  }
  CodeBuffer c(stub_blob->instructions_begin(),
               stub_blob->instructions_size());
  VM_Version_StubGenerator g(&c);
  getPsrInfo_stub = CAST_TO_FN_PTR(getPsrInfo_stub_t,
                                   g.generate_getPsrInfo());

  get_processor_features();
}
void JDK_Version::initialize() {
  void *lib_handle = os::native_java_library();
  jdk_version_info_fn_t func = 
    CAST_TO_FN_PTR(jdk_version_info_fn_t, hpi::dll_lookup(lib_handle, "JDK_GetVersionInfo0"));

  if (func == NULL) {
    // JDK older than 1.6
    _pre_jdk16_version = true;
    return;
  }

  if (func != NULL) {
    (*func)(&_version_info, sizeof(_version_info));
  }
  if (jdk_major_version() == 1) {
    _jdk_version = jdk_minor_version();
  } else {
    // If the release version string is changed to n.x.x (e.g. 7.0.0) in a future release
    _jdk_version = jdk_major_version();
  }
}
void VM_Version::initialize() {
  ResourceMark rm;

  // Create the processor info stub
  BufferBlob* blob = BufferBlob::create("getPsrInfo stub", 160);
  if (blob == NULL) {
    vm_exit_during_initialization("Unable to allocate getPsrInfo stub");
  }
  CodeBuffer* buffer = new CodeBuffer(blob->instructions_begin(),
                                      blob->instructions_size());
  VM_Version_StubGenerator g(buffer);
  getPsrInfo_stub = CAST_TO_FN_PTR(getPsrInfo_stub_t, g.generate_getPsrInfo());

  // Get raw processor info
  getPsrInfo_stub(&_cpuid_info);

  // We know 64-bit x86's support cmpxchg8
  _supports_cx8 = true;

  // Prefetch settings
  PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
  PrefetchCopyIntervalInBytes = prefetch_scan_interval_in_bytes();
  PrefetchFieldsAhead         = prefetch_fields_ahead();
}
 static CallStub call_stub()                              { return CAST_TO_FN_PTR(CallStub, _call_stub_entry); }
Exemple #6
0
 static SafeFetchNStub  SafeFetchN_stub()  { return CAST_TO_FN_PTR(SafeFetchNStub,  _safefetchN_entry); }