Backport a fix for Neon immediate moves to the latest binutils

Bug #747873 reported by Ramana Radhakrishnan
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
binutils-armhf-cross (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

Binary package hint: binutils

That patch for http://sourceware.org/bugzilla/show_bug.cgi?id=11972 needs a backport into the Ubuntu binutils for armel

$> cat /tmp/tst.s

.cpu cortex-a9
.fpu neon
.text

vmov.i64 d9,#-4294967296

Native on pavo1 :

ramana@pavo1:~$ gcc -c /tmp/tst.s
/tmp/tst.s: Assembler messages:
/tmp/tst.s:5: Error: expected <Rm> or <Dm> or <Qm> operand -- `vmov.i64 d9,#-4294967296'
GNU assembler (GNU Binutils for Ubuntu) 2.20.51-system.20100908

Cross on Maverick from the Linaro toolchain maintainers PPA.

GNU assembler (GNU Binutils for Ubuntu) 2.21.0.20110302

amrad01@e102742:~$ arm-linux-gnueabi-gcc -c /tmp/tst.s
ramrad01@e102742:~$ arm-linux-gnueabi-objdump -d tst.o

tst.o: file format elf32-littlearm

Disassembly of section .text:

00000000 <.text>:
   0: f2809e30 vmov.i64 d9, #0x0000000000000000

Using FSF trunk.

ramrad01@e102742:~$ /work/cross-build/arm-none-linux-gnueabi/tools-gcc45branch/bin/arm-none-linux-gnueabi-as --version
GNU assembler (GNU Binutils) 2.21.51.20110303
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `arm-none-linux-gnueabi'.

tst.o: file format elf32-littlearm

Disassembly of section .text:

00000000 <.text>:
   0: f3879e30 vmov.i64 d9, #0xffffffff00000000

Revision history for this message
Michael Hope (michaelh1) wrote :

binutils 2.21.50 contains the fix. Ramana, do you know what revision this is fixed in? One option might be cherry picking it.

Revision history for this message
Ramana Radhakrishnan (ramana) wrote : Re: [Bug 747873] Re: Backport a fix for Neon immediate moves to the latest binutils

On 4 April 2011 03:16, Michael Hope <email address hidden> wrote:
> binutils 2.21.50 contains the fix.  Ramana, do you know what revision
> this is fixed in?  One option might be cherry picking it.

If we want to cherry pick this we want this patch here.

Patch:

http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/ChangeLog.diff?cvsroot=src&r1=1.4243&r2=1.4244
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-arm.c.diff?cvsroot=src&r1=1.455&r2=1.456

I do notice a few bug fixes around this time frame in the assembler so
it might be worth cherry picking some more bugfixes into the tools or
indeed moving up to binutils 2.21.50 .

cheers
Ramana

Revision history for this message
Michael Hope (michaelh1) wrote :

The problem doesn't exist in plain 2.21:

michaelh@crucis:~/linaro/bugs$ ../tmp/binutils-2.21/install/bin/arm-linux-gnueabi-as --version -o vmov.o vmov.s
GNU assembler (GNU Binutils) 2.21
Copyright 2010 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `arm-linux-gnueabi'.

michaelh@crucis:~/linaro/bugs$ ../tmp/binutils-2.21/install/bin/arm-linux-gnueabi-objdump -d vmov.o

vmov.o: file format elf32-littlearm

Disassembly of section .text:

00000000 <.text>:
   0: f3879e30 vmov.i64 d9, #0xffffffff00000000

Revision history for this message
Michael Hope (michaelh1) wrote :

I can't reproduce this on binutils_2.21.0.20110327-2ubuntu1 either. This was done on my x86_64 Maverick box by fetching the current source package from natty, extracting it, running dpkg-buildpackage -uc -us -b, stopping it post configure, configuring directly using ../configure --prefix=$PWD/../install --target=arm-linux-gnueabi, building, installing, then running the test.

The results are:

michaelh@crucis:~/linaro/bugs$ ../packages/binutils-2.21.0.20110327/install/bin/arm-linux-gnueabi-as --version
GNU assembler (GNU Binutils) 2.21.0.20110327
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `arm-linux-gnueabi'.

michaelh@crucis:~/linaro/bugs$ ../packages/binutils-2.21.0.20110327/install/bin/arm-linux-gnueabi-objdump -d vmov.o
vmov.o: file format elf32-littlearm
Disassembly of section .text:

00000000 <.text>:
   0: f3879e30 vmov.i64 d9, #0xffffffff00000000

Revision history for this message
Luke Kim (nereusuj) wrote :

I can reproduce this on my x86 ubuntu box with binutils-arm-linux-gnueabi-2.21.0.20110327-2ubuntu2cross1.62.

The results are:

ujkim@DO-ujkim04:~/work/toolchain-bug/as-2.21/neon-immediate-moves$ arm-linux-gnueabi-as vmov.s

ujkim@DO-ujkim04:~/work/toolchain-bug/as-2.21/neon-immediate-moves$ arm-linux-gnueabi-objdump -d a.out

a.out: file format elf32-littlearm

Disassembly of section .text:

00000000 <.text>:
   0: f2809e30 vmov.i64 d9, #0x0000000000000000

ujkim@DO-ujkim04:~/work/toolchain-bug/as-2.21/neon-immediate-moves$ arm-linux-gnueabi-as --versionGNU assembler (GNU Binutils for Ubuntu) 2.21.0.20110327
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `arm-linux-gnueabi'.

Revision history for this message
Luke Kim (nereusuj) wrote :

It seems that it is because of the configure option '--enable-targets=x86_64-linux-gnu' that is comes from rules file if the DEB_HOST_ARCH is i386.
It seems fine if I remove that configure option.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Matthias Klose (doko)
affects: binutils (Ubuntu) → binutils-armhf-cross (Ubuntu)
Changed in binutils-armhf-cross (Ubuntu):
status: New → Confirmed
Revision history for this message
Matthias Klose (doko) wrote :

won't fix this for maverick anymore, I can't see this is enabled in recent toolchain packages. please re-open if appropriate.

Changed in binutils-armhf-cross (Ubuntu):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.