|
| 1 | +diff -r b09e56145e11 make/autoconf/flags.m4 |
| 2 | +--- a/make/autoconf/flags.m4 Thu Mar 08 04:23:31 2018 +0000 |
| 3 | ++++ b/make/autoconf/flags.m4 Wed Mar 28 01:46:33 2018 +0200 |
| 4 | +@@ -30,7 +30,7 @@ |
| 5 | + AC_DEFUN([FLAGS_SETUP_ABI_PROFILE], |
| 6 | + [ |
| 7 | + AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile], |
| 8 | +- [specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])]) |
| 9 | ++ [specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt,arm-ev3,armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])]) |
| 10 | + |
| 11 | + if test "x$with_abi_profile" != x; then |
| 12 | + if test "x$OPENJDK_TARGET_CPU" != xarm && \ |
| 13 | +@@ -51,6 +51,9 @@ |
| 14 | + elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then |
| 15 | + ARM_FLOAT_TYPE=sflt |
| 16 | + ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm' |
| 17 | ++ elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-ev3; then |
| 18 | ++ ARM_FLOAT_TYPE=sflt |
| 19 | ++ ARM_ARCH_TYPE_FLAGS='-mcpu=arm926ej-s -marm' |
| 20 | + elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then |
| 21 | + ARM_FLOAT_TYPE=vfp-sflt |
| 22 | + ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm' |
| 23 | +@@ -1378,6 +1381,8 @@ |
| 24 | + if test "x$OPENJDK_$1_OS" = xlinux; then |
| 25 | + if test "x$OPENJDK_$1_CPU" = xx86; then |
| 26 | + $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -march=i586" |
| 27 | ++ elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-ev3; then |
| 28 | ++ $2JVM_ASFLAGS="-mcpu=arm926ej-s" |
| 29 | + fi |
| 30 | + elif test "x$OPENJDK_$1_OS" = xmacosx; then |
| 31 | + $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16" |
| 32 | +diff -r b09e56145e11 src/hotspot/cpu/arm/assembler_arm_32.hpp |
| 33 | +--- a/src/hotspot/cpu/arm/assembler_arm_32.hpp Thu Mar 08 04:23:31 2018 +0000 |
| 34 | ++++ b/src/hotspot/cpu/arm/assembler_arm_32.hpp Wed Mar 28 01:46:33 2018 +0200 |
| 35 | +@@ -498,7 +498,7 @@ |
| 36 | + void dmb(DMB_Opt opt, Register reg) { |
| 37 | + if (VM_Version::arm_arch() >= 7) { |
| 38 | + emit_int32(0xF57FF050 | opt); |
| 39 | +- } else { |
| 40 | ++ } else if (VM_Version::arm_arch() == 6) { |
| 41 | + bool preserve_tmp = (reg == noreg); |
| 42 | + if(preserve_tmp) { |
| 43 | + reg = Rtemp; |
| 44 | +@@ -1239,10 +1239,17 @@ |
| 45 | + |
| 46 | + // Imported code from glibc soft-fp bundle for |
| 47 | + // calculation accuracy improvement. See CR 6757269. |
| 48 | +-extern double __aeabi_fadd_glibc(float, float); |
| 49 | +-extern double __aeabi_fsub_glibc(float, float); |
| 50 | +-extern double __aeabi_dadd_glibc(double, double); |
| 51 | +-extern double __aeabi_dsub_glibc(double, double); |
| 52 | ++ |
| 53 | ++//extern double __aeabi_fadd_glibc(float, float); |
| 54 | ++//extern double __aeabi_fsub_glibc(float, float); |
| 55 | ++//extern double __aeabi_dadd_glibc(double, double); |
| 56 | ++//extern double __aeabi_dsub_glibc(double, double); |
| 57 | ++ |
| 58 | ++// We don't need very accurate floating point math. |
| 59 | ++#define __aeabi_fadd_glibc __aeabi_fadd |
| 60 | ++#define __aeabi_fsub_glibc __aeabi_fsub |
| 61 | ++#define __aeabi_dadd_glibc __aeabi_dadd |
| 62 | ++#define __aeabi_dsub_glibc __aeabi_dsub |
| 63 | + }; |
| 64 | + #endif // __SOFTFP__ |
| 65 | + |
| 66 | +diff -r b09e56145e11 src/hotspot/os_cpu/linux_arm/orderAccess_linux_arm.inline.hpp |
| 67 | +--- a/src/hotspot/os_cpu/linux_arm/orderAccess_linux_arm.inline.hpp Thu Mar 08 04:23:31 2018 +0000 |
| 68 | ++++ b/src/hotspot/os_cpu/linux_arm/orderAccess_linux_arm.inline.hpp Wed Mar 28 01:46:33 2018 +0200 |
| 69 | +@@ -71,7 +71,7 @@ |
| 70 | + __asm__ volatile ( |
| 71 | + ".word 0xF57FF050 | 0xf" : : : "memory"); |
| 72 | + #endif |
| 73 | +- } else { |
| 74 | ++ } else if (VM_Version::arm_arch() == 6) { |
| 75 | + intptr_t zero = 0; |
| 76 | + __asm__ volatile ( |
| 77 | + "mcr p15, 0, %0, c7, c10, 5" |
| 78 | +@@ -95,7 +95,7 @@ |
| 79 | + __asm__ volatile ( |
| 80 | + ".word 0xF57FF050 | 0xe" : : : "memory"); |
| 81 | + #endif |
| 82 | +- } else { |
| 83 | ++ } else if (VM_Version::arm_arch() == 6) { |
| 84 | + intptr_t zero = 0; |
| 85 | + __asm__ volatile ( |
| 86 | + "mcr p15, 0, %0, c7, c10, 5" |
0 commit comments