So that constant expressions like the following are permitted:
and w0, w0, #~(0xfe<<24)
and w1, w1, #~(0xff<<24)
The behavior matches GNU as (opcodes/aarch64-opc.c:aarch64_logical_immediate_p).
Differential D75885
[AArch64] Allow logical immediates to have all-1 in top bits MaskRay on Mar 9 2020, 5:52 PM. Authored by
Details So that constant expressions like the following are permitted: and w0, w0, #~(0xfe<<24) The behavior matches GNU as (opcodes/aarch64-opc.c:aarch64_logical_immediate_p).
Diff Detail
Unit Tests
Event TimelineComment Actions It seems a bit odd to add assembly support for something which we also can't disassemble? It seems like a basic self-test that we should have. Comment Actions Not odd. We can't assemble and w0, w0, #~(0xfe<<24) and w1, w1, #~(0xff<<24) This patch teaches MC to assemble them. It is just that the disassembly is not a round trip. For dupm z0.h, #0x7f00, it is indeed odd. GNU as behaves the same, though. I know too little about SVE to fix it properly by myself. I hope more experienced contributors can do that as a follow-up. Comment Actions I think you should try to figure what the issue is with SVE... It's not good practise to scratch your particular itch and then not fix the bug it exposes too. Comment Actions May I say that this suggests a quality of implementation issue of the SVE patches themselves? GNU as has the same problem... The organization of code makes is sorta clear that if we intend to fix SVE, it will be a separate patch. Comment Actions Ping:) As I said, I think the SVE problem is very likely its own QoI problem (GNU as has the same issue). I hope an experienced contributor can fix that in a subsequent change, but it should not block this change.
Comment Actions Delete FIXME. According to sdesmalen, "Disassembling to dupm z0.h, #0x7f00 makes sense here."
|
clang-format-diff not found in user's PATH; not linting file.