I take back my bug report of 28 July

Jacob Navia <[email protected]> Fri, 30 Jul 2021 18:03:45 +0200
Newsgroups gmane.comp.gnu.utils.bugs
Message-ID <[email protected]>
Dear friends
I sent you a bug report (attached) 28 July, but it is NOT a bug in your =
software =C2=AB as =C2=AB . Apparently the pool must be aligned to a 8 =
byte boundary to be loaded into a floating point register.

Sorry for this noise. Attached the =C2=AB bug =C2=BB report I sent you =
on July 28th

=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=
=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=
=94=E2=80=94=E2=80=94
Dear Friends:

The instruction:

	ldr d15,=3D0x401acccccccc

will be assembled without any warnings. The pool will be correctly =
constructed and linked, and the correct value is stored in the pool =
after the current function. The value 0x401acccccccc corresponds to 6.7

At run-time it will not work, the register d15 is loaded with some value =
that doesn=E2=80=99t correspond at all to the given one.

If I write however

	ldr x15,=3D0x401acccccccc

The 64 bit value value will be correctly loaded into x15.Both pools are =
exactly the same.

The clang compiler does NOT assemble that instruction and emits an =
error:

 error: Immediate too large for register

If I change it to x15, both gas and clang agree, and the result is =
correct.

Note that the address of the pool appears correct under gdb =
disassembler: it is just at the position of the .ltorg pseudo =
instruction. I verified this by displaying the contents of the pool.

as -v

GNU assembler version 2.28 (aarch64-linux-gnu) using BFD version (GNU =
Binutils for Debian) 2.28

uname -a
Linux rock64 4.4.152-rockchip64 #1 SMP Sun Aug 26 14:40:54 CEST 2018 =
aarch64 GNU/Linux

Thanks in advance for your help.

jacob navia=