Comment 0 for bug 1695572

Revision history for this message
Dan Lewis (danielwlewis) wrote : VLDR pseudo instruction only works with integer constants

The pseudo-instruction (identified as a pseudo-instruction by the equals sign)

    VLDR S0,=constant

should be replaced by one of:

    VMOV S0,#constant // The "#" may be omitted if using the directive, ".syntax unified"

or:

    VLDR S0,label
    ...
label: .float constant

However, it only seems to work when "constant" is an integer (e.g., 3) and fails for any floating-point constant - even if the fractional part is zero (as in 3.0). For example, the assembler rejects the following:

    VLDR S0,=3.14159

and issue the error message: "Error: garbage following instruction -- 'vldr S0,=3.14159'

This is using toolchain version 5.4 and the gnu assembler (as) version 2.26.0.