< prev index next >

src/hotspot/share/runtime/arguments.cpp

Print this page
*** 1971,10 ***
--- 1971,20 ---
      FLAG_SET_CMDLINE(StackReservedPages, 0);
      warning("Reserved Stack Area not supported on this platform");
    }
  #endif
  
+   if (AMD64_ONLY(false &&) AARCH64_ONLY(false &&) !FLAG_IS_DEFAULT(InlineTypePassFieldsAsArgs)) {
+     FLAG_SET_CMDLINE(InlineTypePassFieldsAsArgs, false);
+     warning("InlineTypePassFieldsAsArgs is not supported on this platform");
+   }
+ 
+   if (AMD64_ONLY(false &&) AARCH64_ONLY(false &&) !FLAG_IS_DEFAULT(InlineTypeReturnedAsFields)) {
+     FLAG_SET_CMDLINE(InlineTypeReturnedAsFields, false);
+     warning("InlineTypeReturnedAsFields is not supported on this platform");
+   }
+ 
  #if !defined(X86) && !defined(AARCH64) && !defined(PPC64) && !defined(RISCV64)
    if (UseHeavyMonitors) {
      jio_fprintf(defaultStream::error_stream(),
                  "UseHeavyMonitors is not fully implemented on this architecture");
      return false;

*** 2928,10 ***
--- 2938,16 ---
      } else if (is_bad_option(option, args->ignoreUnrecognized)) {
        return JNI_ERR;
      }
    }
  
+   if (!EnableValhalla && EnablePrimitiveClasses) {
+     jio_fprintf(defaultStream::error_stream(),
+                 "Cannot specify -XX:+EnablePrimitiveClasses without -XX:+EnableValhalla");
+     return JNI_EINVAL;
+   }
+ 
    // PrintSharedArchiveAndExit will turn on
    //   -Xshare:on
    //   -Xlog:class+path=info
    if (PrintSharedArchiveAndExit) {
      UseSharedSpaces = true;

*** 4072,10 ***
--- 4088,17 ---
    // verification is not as if both were enabled.
    if (BytecodeVerificationLocal && !BytecodeVerificationRemote) {
      log_info(verification)("Turning on remote verification because local verification is on");
      FLAG_SET_DEFAULT(BytecodeVerificationRemote, true);
    }
+   if (!EnableValhalla || (is_interpreter_only() && !is_dumping_archive() && !UseSharedSpaces)) {
+     // Disable calling convention optimizations if inline types are not supported.
+     // Also these aren't useful in -Xint. However, don't disable them when dumping or using
+     // the CDS archive, as the values must match between dumptime and runtime.
+     InlineTypePassFieldsAsArgs = false;
+     InlineTypeReturnedAsFields = false;
+   }
  
  #ifndef PRODUCT
    if (!LogVMOutput && FLAG_IS_DEFAULT(LogVMOutput)) {
      if (use_vm_log()) {
        LogVMOutput = true;
< prev index next >