.syntax unified - VCMP immediate still requires #

Bug #1641333 reported by Dan Lewis on 2016-11-12
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
GNU Arm Embedded Toolchain
Undecided
Unassigned

Bug Description

The assembler directive, ".syntax unified" allows immediate constants to be written without a leading "#". However, I've found one exception:

VCMP.F32 S0,0.0

which causes a syntax error, while adding the "#" eliminates the error:

VCMP.F32 S0,#0.0

This apparently does not affect ALL of the floating-point instructions, since the VMOV immediates work fine without the leading "#":

VMOV S0,0.0

Hi Dan,

The # sign is mandatory for immediate constants. The fact that the assembler is more lax in some cases is a bug and should not be relied upon.

Best regards.

Changed in gcc-arm-embedded:
status: New → Invalid
Dan Lewis (danielwlewis) wrote :

Thomas,

It's not a matter of being lax. It's permitted by .syntax unified:

https://sourceware.org/binutils/docs/as/ARM_002dInstruction_002dSet.html#ARM_002dInstruction_002dSet

Best,

Dan

Carlos Antunes (cmantunes) wrote :

Thomas,

With all due respect, I believe you are wrong as shown in the link provided by Dan.

Carlos

Changed in gcc-arm-embedded:
status: Invalid → New

My apologize. I was checking the ARM Architecture Reference Manual. Indeed the documentation does allow it.

Dan Lewis (danielwlewis) wrote :

No problem. :-)

Have a nice day!

Dan

Changed in gcc-arm-embedded:
status: New → Fix Committed
milestone: none → 6-2017-q1-update
Changed in gcc-arm-embedded:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers