2017-06-03 03:51:45 |
Dan Lewis |
bug |
|
|
added bug |
2017-06-03 03:54:02 |
Dan Lewis |
description |
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. |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using 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. |
|
2017-06-03 03:54:46 |
Dan Lewis |
description |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using 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. |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using 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 issues 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. |
|
2019-06-01 15:43:37 |
Dan Lewis |
description |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using 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 issues 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. |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1". However the latter does NOT load the floating-point equivalent (1.0) into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
|
2019-06-01 15:45:51 |
Dan Lewis |
summary |
VLDR pseudo instruction only works with integer constants |
VLDR pseudo instruction accepts integers but generates incorrect code; does NOT accept f.p. constants. |
|
2019-06-01 15:47:26 |
Dan Lewis |
summary |
VLDR pseudo instruction accepts integers but generates incorrect code; does NOT accept f.p. constants. |
"VLDR S0,=1.0" rejected, but "VLDR S0,=1" accepted but generates incorrect code. |
|
2019-06-01 15:48:13 |
Dan Lewis |
summary |
"VLDR S0,=1.0" rejected, but "VLDR S0,=1" accepted but generates incorrect code. |
"VLDR S0,=1.0" rejected, but "VLDR S0,=1" accepted but generates bad code. |
|
2019-06-01 15:49:07 |
Dan Lewis |
summary |
"VLDR S0,=1.0" rejected, but "VLDR S0,=1" accepted but generates bad code. |
"VLDR S0,=1.0" rejected, but "VLDR S0,=1" accepted and generates bad code. |
|
2019-06-01 15:50:43 |
Dan Lewis |
summary |
"VLDR S0,=1.0" rejected, but "VLDR S0,=1" accepted and generates bad code. |
"VLDR S0,=1.0" rejected, but accepts "VLDR S0,=1" and generates bad code. |
|
2019-06-01 15:51:31 |
Dan Lewis |
description |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1". However the latter does NOT load the floating-point equivalent (1.0) into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1". However the latter does NOT load the floating-point equivalent (1.0) into S0. It loads 0.0 into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
|
2019-06-01 16:44:57 |
Dan Lewis |
description |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1". However the latter does NOT load the floating-point equivalent (1.0) into S0. It loads 0.0 into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1". However the latter does NOT load the floating-point representation of 1.0 (0x3F800000) into S0. It loads the integer representation of 1 (0x00000001) into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
|
2021-03-05 17:12:42 |
Dan Lewis |
description |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1". However the latter does NOT load the floating-point representation of 1.0 (0x3F800000) into S0. It loads the integer representation of 1 (0x00000001) into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
The pseudo-instruction (identified as a pseudo-instruction by the equals sign)
VLDR S0,=constant
should be replaced by one of:
VMOV S0,#constant // "#" may be omitted using directive, ".syntax unified"
or:
VLDR S0,label
...
label: .float constant
However, it only "seems" to work when the constant is an integer. The assembler rejects "VLDR S0,=1.0" with the error message:
"Error: garbage following instruction -- 'vldr S0,=1.0'
but happily accepts "VLDR S0,=1" (Note: It also happily accepts "VLDR S0,=label", where "label" is the label on a .float directive, and is apparently loading the address of the label into S0!) However the latter does NOT load the floating-point representation of 1.0 (0x3F800000) into S0. It loads the integer representation of 1 (0x00000001) into S0.
This is using the 8-2018-q4-update of GNU ARM Embedded Toolchain. |
|