[PATCH] Upgrade arm-sflt minimum architecture to ARMv5TE (original) (raw)

David Holmes david.holmes at oracle.com
Mon Nov 26 07:36:26 UTC 2018


Hi Jakub,

On 26/11/2018 1:53 am, Jakub Vaněk wrote:

Hi,

This patch raises the minimum architectural level for ARM CPUs to ARMv5TE. It is done through changing the -march flag in the current CPU-specific CFLAGS and ASFLAGS. This patch depends on "Append assembler flags on ARM targets" patch for ASFLAGS handling. Reason for this change: assembler code in linuxarm32.s uses PLD instructions. ARM ISA manual mentions this: "This instruction is available in E variants of ARM architecture v5 and above." (thanks to David Holmes for noticing this).

FYI I did a bit of digging and we tried to make this change back in 2010 and ran into problems:

"It appears that gcc assumes that if you choose the armv5te architecture option, it can use the "E" instruction extensions which provide 64 bit load and stores to 4 byte aligned addresses. I tried two different compiler versions 4.1.2 and 4.2.3 and they both had the same problem. The does support ldrd/strd but they do not support 4 byte aligned operations. The addresses must be 8 byte aligned."

How things stand today I can not say.

Cheers, David

This patch was successfully built here: https://ci.adoptopenjdk.net/view/ev3dev/job/openjdk12buildev3linux/21/

Thanks, Jakub Vanek # HG changeset patch # User Jakub Vaněk <linuxtardis at gmail.com> # Date 1543065765 -3600 # Sat Nov 24 14:22:45 2018 +0100 # Node ID 1876e24fad75579f76e3106121e61f7951b03fc8 # Parent c5ff4e346842d9025e8abdde0cf8c7d33dfd8d82 Upgrade arm-sflt minimum architecture to ARMv5TE diff --git a/make/autoconf/flags.m4 b/make/autoconf/flags.m4 --- a/make/autoconf/flags.m4 +++ b/make/autoconf/flags.m4 @@ -56,12 +56,12 @@ ARMARCHTYPEASFLAGS='-march=armv7-a -mthumb' elif test "x$OPENJDKTARGETABIPROFILE" = xarm-sflt; then ARMFLOATTYPE=sflt - ARMARCHTYPEFLAGS='-march=armv5t -marm' - ARMARCHTYPEASFLAGS='-march=armv5t' + ARMARCHTYPEFLAGS='-march=armv5te -marm' + ARMARCHTYPEASFLAGS='-march=armv5te' elif test "x$OPENJDKTARGETABIPROFILE" = xarmv5-vfp-sflt; then ARMFLOATTYPE=vfp-sflt - ARMARCHTYPEFLAGS='-march=armv5t -marm' - ARMARCHTYPEASFLAGS='-march=armv5t' + ARMARCHTYPEFLAGS='-march=armv5te -marm' + ARMARCHTYPEASFLAGS='-march=armv5te' elif test "x$OPENJDKTARGETABIPROFILE" = xarmv6-vfp-hflt; then ARMFLOATTYPE=vfp-hflt ARMARCHTYPEFLAGS='-march=armv6 -marm'



More information about the build-dev mailing list