Hi Jakub,

Build file changes have to be reviewed on build-dev - cc'd.

Thanks,
David

On 13/11/2018 8:57 AM, Jakub Vaněk wrote:
Hi,

This patch adds a new ARM ABI option for ARM926EJ-S. The reason is not
because of ABI breakage, but it is because of GCC -mcpu flags
specifically for this CPU. We think that this might increase
performance a little bit. However, we do not have numbers for this.
Alternatively, we may just stick to the arm-sflt ABI option.

This patch was successfully built with a few other independent patches
here: https://ci.adoptopenjdk.net/view/ev3dev/ ;
https://github.com/ev3dev-lang-java/openjdk-ev3
We haven't run full jtreg tests on the target platform yet, but Juan
Antonio Brena Moral invested his time into Adopt's openjdktests in
QEMU. Also, the JVM seems to run fine on the ARM board itself.

Regards,

Jakub Vanek (with credit to Juan Antonio)

# HG changeset patch
# User Jakub Vaněk <linuxtar...@gmail.com>
# Date 1542060149 -3600
#      Mon Nov 12 23:02:29 2018 +0100
# Node ID 82c5c630ee8f9237b533ba6414143d109dec0180
# Parent  a609d549992a4d094a514a6c0f5b79443192d8bf
Add optimization flags for ARM926EJ-S

diff --git a/make/autoconf/flags-other.m4 b/make/autoconf/flags-other.m4
--- a/make/autoconf/flags-other.m4
+++ b/make/autoconf/flags-other.m4
@@ -119,6 +119,10 @@
    # Misuse EXTRA_CFLAGS to mimic old behavior
    $2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"

+  if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm926ejs; then
+    $2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS -mcpu=arm926ej-s"
+  fi
+
    AC_SUBST($2JVM_ASFLAGS)
  ])

diff --git a/make/autoconf/flags.m4 b/make/autoconf/flags.m4
--- a/make/autoconf/flags.m4
+++ b/make/autoconf/flags.m4
@@ -34,7 +34,7 @@
  AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
  [
    AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
-      [specify ABI profile for ARM builds
(arm-vfp-sflt,arm-vfp-hflt,arm-sflt,
armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain dependent@:>@
])])
+      [specify ABI profile for ARM builds
(arm-vfp-sflt,arm-vfp-hflt,arm-sflt,
arm926ejs,armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain
dependent@:>@ ])])

    if test "x$with_abi_profile" != x; then
      if test "x$OPENJDK_TARGET_CPU" != xarm && \
@@ -55,6 +55,9 @@
      elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
        ARM_FLOAT_TYPE=sflt
        ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
+    elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm926ejs; then
+      ARM_FLOAT_TYPE=sflt
+      ARM_ARCH_TYPE_FLAGS='-mcpu=arm926ej-s -marm'
      elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
        ARM_FLOAT_TYPE=vfp-sflt
        ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'

Reply via email to