Since there is no official document regarding the Aarch64  instruction
encoding available (at least I couldn't find any) I'm studying the binutils
code instead.

I don't understand how the following code in aarch64_logical_immediate_p
works:

  if (is32)
    {
      /* Allow all zeros or all ones in top 32-bits, so that
 constant expressions like ~1 are permitted.  */
      if (value >> 32 != 0 && value >> 32 != 0xffffffff)
return 0xffffffff;

Why are we returning a true value here? (and why such a strange choice?)
And that without even setting the aarch64_insn *encoding - this seems like
a bug to me or I'm misunderstanding the code.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to